whoami
Gate: ungated · no kind, zero authority
Who is talking. Ungated and belonging to no kind: it reaches nothing, hands over no authority, and reports only what the microphone already established — the model could equally have asked the person. Zero authority, so nothing to decide.
It exists because a live spoken session cannot be told anything after it opens: the system instruction travels in the setup frame, and the only channel that stays open mid-conversation is a tool result. Asking is therefore the way the model learns this, and it means nobody waits at the start of a session for an answer not needed until somebody asks something personal.
Input
None.
Output
The recognised speaker, or an empty name when nobody is recognised:
{ "name": "oliver", "confidence": 0.71 }{ "name": "" }From JavaScript
const me = nocturn.whoami();console.log(me.name || "nobody I know");const me = JSON.parse(nocturn.call("whoami", {}));Notes
An empty name means unrecognised, and is a legitimate answer. It is not an invitation to fall back on the most likely household member — say so, or ask. Outside a spoken session (a typed chat, an agent run) the name is always empty, because nothing there is listening.
Most uses should not go through this tool. A tool acting on somebody's behalf reads the speaker off the request context itself, so the model never learns whose mailbox it read and cannot name the wrong one. What is left here is what the model genuinely has to know: how to address someone, and whether it knows them at all.
This tool only exists where recognition does. Without NOCTURN_SPEAKER_MODEL pointing at a model, the server does not register it at all — and neither does the terminal chat, which has no microphone in the first place. A tool that could answer nothing but "unknown" for the life of the process is worse than a missing one: it costs a slot in every prompt and invites a question whose answer is always no.
A recognised voice chooses context and address, never permission. Speech is a channel like the chat, where nobody authenticates the typist either, and a gated action is confirmed out of band on a second device in both. See the voice satellite.