2.10 emacsvox-agent-shell

agent-shell provides native agentic integrations for AI agents like Claude Code, Gemini CLI, Goose, Cursor, and others. It is built on shell-maker and provides a comint-based interface.

This module speech-enables agent-shell, providing: - Semantic response, thought, and plan speech at turn-completion boundaries - On-demand full and structural-overview speech for the latest agent answer - Permission, lifecycle, error, and tool-status feedback - Focus-aware foreground and background speech levels - Semantic header and face-to-voice support - Typed transcript and fenced source-block navigation - Two-dimensional rendered Markdown table navigation and copying - Viewport mode integration and reload-safe buffer teardown

Customize ‘emacsvox-agent-shell’ for speech levels, table feedback, and lifecycle announcements. See the Agent Shell chapter in the Emacsvox manual for setup, keys, privacy boundaries, inspection, and recovery; the generated emacsvox-agent-shell section is the exhaustive command and option reference. See https://github.com/xenodium/agent-shell for agent-shell itself.

2.10.1 Emacsvox-Agent-Shell Commands

2.10.1.1 emacsvox-agent-shell-copy-source-block

Command: emacsvox-agent-shell-copy-source-block
Copy the rendered Markdown source block at point using agent-shell.

2.10.1.2 emacsvox-agent-shell-cycle-speech-level

Command: emacsvox-agent-shell-cycle-speech-level (&optional reset)
Cycle automatic speech for the current agent-shell session.
Cycle from the effective level toward less speech: full, response, notify,
quiet, then full again.  With prefix argument RESET, restore ‘auto’ so focus
selects the configured foreground or background level.

(fn &optional RESET)

2.10.1.3 emacsvox-agent-shell-disable

Command: emacsvox-agent-shell-disable
Disable Emacsvox support for agent-shell.

2.10.1.4 emacsvox-agent-shell-enable

Command: emacsvox-agent-shell-enable
Enable Emacsvox support for agent-shell.

2.10.1.5 emacsvox-agent-shell-next-block-at-point

Command: emacsvox-agent-shell-next-block-at-point
Move to the next block matching the semantic block at point.
When invoked by ‘]’ at an editable prompt, insert that character instead.

2.10.1.6 emacsvox-agent-shell-next-block-of-type

Command: emacsvox-agent-shell-next-block-of-type
Select a semantic block type and move to its next occurrence.

2.10.1.7 emacsvox-agent-shell-previous-block-at-point

Command: emacsvox-agent-shell-previous-block-at-point
Move to the previous block matching the semantic block at point.
When invoked by ‘[’ at an editable prompt, insert that character instead.

2.10.1.8 emacsvox-agent-shell-previous-block-of-type

Command: emacsvox-agent-shell-previous-block-of-type
Select a semantic block type and move to its previous occurrence.

2.10.1.9 emacsvox-agent-shell-repeat-next-block

Command: emacsvox-agent-shell-repeat-next-block
Move to the next occurrence of the selected semantic block type.

2.10.1.10 emacsvox-agent-shell-repeat-previous-block

Command: emacsvox-agent-shell-repeat-previous-block
Move to the previous occurrence of the selected semantic block type.

2.10.1.11 emacsvox-agent-shell-select-background-speech-level

Command: emacsvox-agent-shell-select-background-speech-level
Select the automatic speech level shared by background sessions.

2.10.1.12 emacsvox-agent-shell-select-speech-level

Command: emacsvox-agent-shell-select-speech-level
Select the automatic speech level for the current agent-shell session.

2.10.1.13 emacsvox-agent-shell-speak-header

Command: emacsvox-agent-shell-speak-header
Speak the full semantic header for the current agent-shell session.

2.10.1.14 emacsvox-agent-shell-speak-last-response

Command: emacsvox-agent-shell-speak-last-response
Speak the latest completed agent answer in full without moving point.

2.10.1.15 emacsvox-agent-shell-speak-response-overview

Command: emacsvox-agent-shell-speak-response-overview
Speak a concise overview of the latest completed agent answer.

2.10.1.16 emacsvox-agent-shell-speak-source-block

Command: emacsvox-agent-shell-speak-source-block
Read the complete rendered Markdown source block at point.

2.10.1.17 emacsvox-agent-shell-table-copy-cell

Command: emacsvox-agent-shell-table-copy-cell
Copy the logical Markdown table cell at point to the kill ring.
Remove renderer padding, borders, and text properties.  Preserve the complete
logical value of a wrapped cell.

2.10.1.18 emacsvox-agent-shell-table-copy-column

Command: emacsvox-agent-shell-table-copy-column
Copy the logical Markdown table column at point to the kill ring.
Separate cells with newlines and omit Markdown separator syntax.

2.10.1.19 emacsvox-agent-shell-table-copy-row

Command: emacsvox-agent-shell-table-copy-row
Copy the logical Markdown table row at point to the kill ring.
Separate cells with tabs and omit Markdown separator syntax.

2.10.1.20 emacsvox-agent-shell-table-exit-backward

Command: emacsvox-agent-shell-table-exit-backward
Leave the current Markdown table and move to preceding content.

2.10.1.21 emacsvox-agent-shell-table-exit-forward

Command: emacsvox-agent-shell-table-exit-forward
Leave the current Markdown table and move to following content.

2.10.1.22 emacsvox-agent-shell-table-next-column

Command: emacsvox-agent-shell-table-next-column (&optional count)
Move COUNT columns right in the current logical Markdown table row.

(fn &optional COUNT)

2.10.1.23 emacsvox-agent-shell-table-next-row

Command: emacsvox-agent-shell-table-next-row (&optional count)
Move COUNT logical Markdown table rows down, retaining the column.

(fn &optional COUNT)

2.10.1.24 emacsvox-agent-shell-table-previous-column

Command: emacsvox-agent-shell-table-previous-column (&optional count)
Move COUNT columns left in the current logical Markdown table row.

(fn &optional COUNT)

2.10.1.25 emacsvox-agent-shell-table-previous-row

Command: emacsvox-agent-shell-table-previous-row (&optional count)
Move COUNT logical Markdown table rows up, retaining the column.

(fn &optional COUNT)

2.10.1.26 emacsvox-agent-shell-table-select-speaking-method

Command: emacsvox-agent-shell-table-select-speaking-method
Interactively change automatic Markdown table cell speech.
Press c to toggle column titles, r to toggle row titles, or o to
switch between data-first and title-first ordering.  Speak the complete
resulting configuration after the change.

2.10.1.27 emacsvox-agent-shell-table-speak-cell

Command: emacsvox-agent-shell-table-speak-cell
Speak the logical Markdown table cell at point.

2.10.1.28 emacsvox-agent-shell-table-speak-column

Command: emacsvox-agent-shell-table-speak-column
Speak the logical Markdown table column at point.

2.10.1.29 emacsvox-agent-shell-table-speak-context

Command: emacsvox-agent-shell-table-speak-context
Speak current Markdown table position and dimensions.

2.10.1.30 emacsvox-agent-shell-table-speak-dimensions

Command: emacsvox-agent-shell-table-speak-dimensions
Speak the dimensions of the Markdown table at point.

2.10.1.31 emacsvox-agent-shell-table-speak-row

Command: emacsvox-agent-shell-table-speak-row
Speak the logical Markdown table row at point.

2.10.2 emacsvox-agent-shell Options

Variable: User Option emacsvox-agent-shell-automatic-content-max-characters
Maximum characters submitted for automatic Agent Shell speech.

Long responses, tool output, errors, permissions, and other unsolicited
content are shortened before Aural compiles them.  The spoken preview includes
exact omitted character and line counts plus an appropriate inspection hint.
This limit does not apply to explicit inspection commands such as
‘emacsvox-agent-shell-speak-last-response’.  Set this to nil, or to a
non-positive value, to allow complete automatic response and output bodies;
provider-controlled permission fields and tool labels remain concise.

Default Value:

2000

Variable: User Option emacsvox-agent-shell-background-speech-level
Automatic speech level for an unfocused agent-shell session.
The available levels have the same meaning as
‘emacsvox-agent-shell-foreground-speech-level’.  Background completion uses
Emacsvox’s notification stream and includes the session buffer name.

Default Value:

notify

Variable: User Option emacsvox-agent-shell-block-navigation-max-characters
Maximum body characters spoken after Agent Shell block navigation.

When a normalized block body is longer, navigation stops at a word boundary
where possible and announces the number of omitted characters.  Set this to
nil, or to a non-positive value, to speak the complete body.  This option does
not change concise block labels or the specialized table and source-block
navigation presentations.

Default Value:

4096

Variable: User Option emacsvox-agent-shell-foreground-speech-level
Automatic speech level for the focused agent-shell session.
The focused session is the selected agent-shell buffer or the shell associated
with the selected viewport.  ‘full’ preserves configured response, thought,
plan, tool, and lifecycle feedback.  ‘response’ speaks agent responses and
completion feedback while suppressing routine thought, plan, and tool chatter.
‘notify’ only signals completion, and ‘quiet’ suppresses routine feedback.
Permissions and errors remain controlled separately because they may require
action.

Default Value:

response

Variable: User Option emacsvox-agent-shell-line-speech-max-characters
Maximum Agent Shell characters compiled for line-navigation speech.

When a physical or visual line is longer, navigation speaks its first
characters and a count of the omitted remainder.  This prevents rendered tool
and search output from opening the core long-line prompt or building an
unnecessarily large presentation.  Set this to nil to restore the core
long-line policy.  Explicit Agent Shell response and block-reading commands are
not truncated.

Default Value:

512

Variable: User Option emacsvox-agent-shell-processing-end-icon
Auditory icon played when the model finishes processing.

Default Value:

task-done

Variable: User Option emacsvox-agent-shell-processing-start-icon
Auditory icon played when the model starts processing a prompt.

Default Value:

progress

Variable: User Option emacsvox-agent-shell-signal-processing
Whether to announce the agent’s processing lifecycle.
When non-nil, public agent-shell events produce start and completion
icons.  Exceptional completion and error events also produce a brief
spoken explanation.  Initialization has its own start and completion
cues.

Default Value:

t

Variable: User Option emacsvox-agent-shell-speak-permissions
Whether to speak permission requests immediately.
When t, permission requests are spoken as soon as they appear.

Default Value:

t

Variable: User Option emacsvox-agent-shell-speak-thought-process
How to handle agent thought process chunks.
- 'speak: Speak the thought process content
- 'icon: Play an auditory icon only (default)
- nil: Silent, no feedback

Default Value:

icon

Variable: User Option emacsvox-agent-shell-speak-tool-calls
Whether to announce tool calls as they happen.

Default Value:

t

Variable: User Option emacsvox-agent-shell-speech-delay
Delay used to coalesce streamed out-of-turn agent messages.
Normal response completion follows agent-shell’s public ‘turn-complete’ event,
so this value never determines when a submitted turn is spoken.

Default Value:

0.5

Variable: User Option emacsvox-agent-shell-status-speech-labels
Words spoken for agent-shell’s rendered status icons.
These substitutions affect only speech copies in agent-shell and its viewport;
the visual icons remain unchanged.  Remove an entry to leave that status icon
for the active speech server to interpret.

Default Value:

((pending . "pending")
 (in-progress . "in progress")
 (completed . "completed")
 (failed . "failed"))

Variable: User Option emacsvox-agent-shell-table-data-position
Whether table cell data is spoken before or after its titles.

Default Value:

first

Variable: User Option emacsvox-agent-shell-table-titles
Table titles spoken with the current Markdown table cell.
Column titles come from the first row when the Markdown source has a
separator row.  Row titles come from the first column, following
Emacsvox’s table convention.  Customize this set to enable either,
both, or neither kind of title.

Default Value:

(column)

Variable: User Option emacsvox-agent-shell-tool-output-verbosity
Verbosity level for tool call output.
- 'full: Speak the complete tool output
- 'summary: Speak a summary (status and title)
- 'status: Only speak the final status

Default Value:

summary