Voice behavior
Tool calls and sub-agents
The selected agent runs tools and delegates work. Sleeptalk turns the events it receives into call status and spoken updates.
Sleeptalk workers and native sub-agents
Sleeptalk can hand long work to fresh sessions of your configured agent while the conversation continues. Several of these jobs can run on eligible Cascade calls and the GPT Live browser preview. You can name a job to ask for progress, add instructions, or cancel it. Start with background workers.
The native sub-agent roster described below is a separate mechanism: it observes child work reported by the agent itself. Its visibility and controls depend on the adapter.
Tool calls during a conversation
Adapters can report when a tool starts, completes, or fails. Sleeptalk uses these events for progress and narration while the agent continues working. The adapter's permissions and workspace rules still govern the tool execution.
In narrated mode, tool activity produces short descriptions such as "Reading a file" or "Running a command." The narration helper avoids reading raw shell invocations and suppresses repeated updates. Narration is a status cue, not proof that a tool succeeded.
Choose silence to suppress tool narration or keyboard for typing sounds while tools run. The keyboard sounds ship with the package. If a transport cannot play the clip, the tool runs without the sound. These choices do not change whether the tool runs.
| Profile value | Call page and terminal menu | Settings page |
|---|---|---|
narrated (default) | Narrated | Spoken |
silence | Silent | Silent |
keyboard | Keyboard sounds | Keyboard sounds |
Change it during a call from the call page's gear menu, the terminal's s menu, or /<profile> settings in Discord. The saved value is policy.narration_style in the profile, which the settings page edits under Behavior.
Permissions and questions
When an adapter supports structured permission or clarification requests, Sleeptalk can handle those events through the active conversation. Coverage differs by adapter and authentication mode. Some runtimes keep approval in their own UI or do not expose that interaction through the adapter.
Starting a voice call does not grant additional tool permissions. If the agent is waiting for approval, follow its explicit prompt. Silence or an audible progress cue is not approval.
For agents connected over ACP, a permission answer follows the kind of option the agent offered, so "no" can never select an allow option. In Discord, only users listed in operator_ids can answer a permission request. See Discord setup.
Identifying sub-agents
A tool call and a sub-agent are different records. Sleeptalk adds workers to the session roster only when an adapter identifies them and declares worker support. It does not infer a running worker from arbitrary text or treat every tool as a child agent.
The roster tracks a worker's identity, label, status, and summary across conversation turns. A completion that arrives later remains attached to that worker instead of being assigned to whichever question you are asking now.
| Adapter reporting | What Sleeptalk can know |
|---|---|
| Native worker lifecycle | Explicit start, progress, and completion events for a worker. |
| Correlated child activity | Child work tied to an identity supplied by the adapter. |
| Named tool evidence only | Limited identification, without worker steering or targeted cancellation. |
| No worker support | No reliable roster. Ordinary tool progress can still be available. |
Current implementations include worker reporting in Claude Code, oh-my-pi, and selected Hermes and Cursor paths. Some connection modes disable it. The adapter's active capability declaration is authoritative; an agent brand alone does not establish support.
One voice reports background work
The primary assistant speaks worker updates. Child agents do not get separate microphones or speak over one another.
For a reported detached worker, the primary voice can acknowledge that work has started while the conversation continues. Progress stays quiet unless there is a material update or an extended quiet interval. Completion, failure, and cancellation produce a short status update.
Updates wait while you are speaking. Completion and progress updates also wait behind an existing spoken reply. You can ask "What's still running?" when the adapter exposes worker state. An unsupported roster means the runtime lacks that visibility, not that nothing is running.
Current control limits
Inspection, steering, and targeted cancellation depend on the worker evidence and the adapter's capabilities. Follow-up to a specific worker is not supported by the current roster contract. Do not assume a generic voice command can control every child process.
Interrupting the primary voice is separate from cancelling a worker. The end of audible output does not prove that an external command or detached task has stopped.
See the sub-agent roster and the custom adapter guide for event and capability requirements.