11.1 Start and control a session

Load Emacsvox and start Agent Shell with M-x agent-shell. Emacsvox loads its integration after Agent Shell and activates both new and already existing shell buffers. Run M-x emacsvox-agent-shell-enable only when manually re-enabling support after it was disabled or while diagnosing a live reload.

11.1.1 Write and edit prompts

Compose and submit prompts with Agent Shell’s normal editing commands. The live prompt retains Emacs undo. Interactive text yanks speak the inserted text, including when a prefix argument selects a different kill-ring entry. Image attachment keeps Agent Shell’s existing feedback. Submitted transcript text is history rather than editable prompt input. Press C-c C-c to ask Agent Shell to interrupt an active request; its normal confirmation setting still applies.

With Agent Shell’s persistent prompt enabled, you can keep typing while the agent works. Brackets and navigation letters remain ordinary input at that prompt. Reading the live prompt says “Agent busy” while the agent works. A pending permission is announced as “Waiting for permission”; a pending question says “Waiting for an answer.” These cues also precede the first line of a draft; later lines keep ordinary reading feedback. “Ready for input” is reserved for an empty prompt when the agent is idle.

Quoting a selected region, sending source context, dropping files, and inserting shell-command output can add to that live draft while the agent works. These insertions do not submit the draft. If there is no live prompt while busy, Agent Shell offers its queue editor instead. Use M-x yank-media to attach a clipboard image on a display that supports native clipboard access. Image previews survive queueing and steering. The animated busy marker does not add repeated speech; reading the prompt continues to give its current state.

In the viewport prompt editor, continuing a list announces its bullet or next number and indentation. Indenting and dedenting announce the new indentation; leaving an empty list item announces that the list ended.

11.1.2 Follow a response and steer a running turn

Emacsvox speaks routine content only at complete turn boundaries. A network pause does not make a partial answer sound complete. A cancelled, refused, or failed turn reports its outcome without replacing the last successfully completed response.

In the viewport editor, Emacsvox announces whether a prompt was submitted, queued, or sent for steering, and whether the editor stays open. The normal and override send commands follow Agent Shell’s configured busy routes, including queueing when the provider does not support steering. “Steering sent” confirms dispatch; the agent’s acceptance or refusal follows separately.

When you use M-x agent-shell-prompt-steer, Emacsvox confirms whether the agent accepted the steer, declined it, or started a separate turn. A separate turn is announced as still in progress; it is not reported as complete until Agent Shell supplies a completion boundary. Server-pushed turns, when supported by the provider, follow the same completed-response speech policy.

11.1.3 Work with queued prompts

Queued prompts announce when they start and how many remain. Recent Agent Shell versions merge queued prompts into one turn by default; Emacsvox announces how many prompts started together. Set agent-shell-prompt-queue-merge to nil to send them one turn at a time. After cancellation, Agent Shell asks whether to continue with the queue. If you decline, or a failed turn leaves prompts waiting, the queue announcement gives its count and the command M-x agent-shell-prompt-queue-resume. Queue-start feedback follows the session’s speech level; paused-queue warnings follow emacsvox-agent-shell-signal-processing. Agent Shell also asks before killing a shell or exiting Emacs when queued prompts would be lost. Declining that question keeps the prompts available.

11.1.4 Check session settings and status

Model, mode, thought-level, and other session setting changes announce their confirmed values. Background setting announcements identify the session. When grouped choices share a name, confirmation includes the group shown by Agent Shell’s completion menu.

Use M-x emacsvox-agent-shell-speak-header to hear the full session header. When agent-shell-show-cost-indicator is enabled and the provider reports a positive cost, this includes the cumulative cost with Agent Shell’s currency and rounding. Brief announcements when entering a session stay concise.