Your terminal, available to your agents.
Chau7 exposes a local MCP server for terminal control, telemetry, runtime inspection and repository metadata.
Stable interface
Download links serve stable v0.5.1 for macOS. The Rust/GPUI 0.6.0-rc.1 candidate is unreleased. Release status and migration plan.
The v0.5.1 registry declares 34 tools and 3 static resources. Resources are separate from tools; individual run resources are also readable by URI.
Tool directory
Search or group the tools. Each entry explains what it returns or changes, its control boundary, and a small input example.
All 34 tools are listed below. Open an entry for its purpose, boundary, and example.
Telemetry history
Look up recorded runs and sessions. These tools read history; they do not discover live tabs.
run_getGet one telemetry run by ID.Read only
Returns the stored summary for a single run.
Boundary: The result may contain repository and provider metadata.
Example parameters
{
"run_id": "<run-id>"
}run_listList telemetry runs with optional filters.Read only
Filter by repository, session, provider, parent run, dates, or tags; use limit and offset to page through results.
Boundary: This is recorded telemetry, not live tab discovery.
Example parameters
{
"repo_path": "/path/to/repo",
"limit": 10
}run_tool_callsRead the tool calls recorded for a run.Read only
Returns the run's tool-call history.
Boundary: Tool names, arguments, or results can contain project data.
Example parameters
{
"run_id": "<run-id>"
}run_transcriptRead the full conversation transcript for a run.Read only
Returns the recorded conversation turns for one run.
Boundary: Transcripts can include prompts and agent responses. Treat returned text as potentially sensitive.
Example parameters
{
"run_id": "<run-id>"
}run_tagSet tags on a telemetry run.
Writes the supplied tag list to the selected run.
Boundary: Changes telemetry metadata; it does not execute a terminal command.
Example parameters
{
"run_id": "<run-id>",
"tags": [
"reviewed"
]
}run_latest_for_repoFind the most recent run for a repository.Read only
Optionally narrow the lookup to a provider.
Boundary: Returns recorded history, not a live terminal session.
Example parameters
{
"repo_path": "/path/to/repo",
"provider": "Claude Code"
}session_listList telemetry-backed AI sessions and run counts.Read only
Optionally filter by repository or active telemetry sessions.
Boundary: This is a telemetry/history view. Use tab_list and tab_status to discover live tabs.
Example parameters
{
"repo_path": "/path/to/repo",
"active_only": true
}session_currentRead currently active telemetry-backed sessions.Read only
Returns the current session view derived from available telemetry.
Boundary: Not the authoritative live tab list; use tab_list and tab_status for control.
Example parameters
{}Runtime state & diagnostics
Inspect current Chau7 state or subscribe to changes on this MCP connection.
chau7_runtime_infoInspect Chau7 build and process identity.Read only
Returns version, build metadata, process ID, launch time, and observability schema version.
Boundary: The documented payload is runtime identity, not a credentials interface.
Example parameters
{}chau7_mcp_session_infoInspect MCP startup diagnostics for this connection.Read only
Returns client/server identity, bridge and socket paths, negotiated protocol, startup status, and error class.
Boundary: Diagnostics include local filesystem paths; the documented payload excludes secrets.
Example parameters
{}chau7_runtime_eventsRead recent Chau7 and AI lifecycle events.Read only
Filter recent events by Unix timestamp and result limit; events include stable IDs and timestamps.
Boundary: Event messages and scopes can reveal activity or project context.
Example parameters
{
"limit": 50
}chau7_timer_inventoryInspect Chau7-owned timers and display links.Read only
Returns timer IDs, kinds, subsystems, queues, cadence, and active state.
Boundary: Diagnostic inventory only; it does not change timer state.
Example parameters
{}chau7_state_snapshotRead one aggregated Chau7 state snapshot.Read only
Combines runtime identity, live tabs, pending approvals, repository event summaries, telemetry, timers, and a monotonic change sequence.
Boundary: The snapshot can include workspace and session information visible to the connected client.
Example parameters
{}chau7_subscribeOpen a live state feed on this MCP connection.Opens feed
Optionally select topics, replay changes from a cursor, and set heartbeat timing. Later deltas arrive as JSON-RPC notifications.
Boundary: Changes the connection's subscription state and streams requested state; it is not an app-setting change.
Example parameters
{
"topics": [
"tab-state",
"approval-state"
],
"heartbeat_interval_ms": 15000
}chau7_unsubscribeStop a state feed on this MCP connection.Stops feed
Stop the current subscription, optionally identifying it by subscription ID.
Boundary: Ends this connection's feed; it does not close Chau7 or alter the underlying tabs.
Example parameters
{
"subscription_id": "<subscription-id>"
}Tabs & agents
Discover tabs, create MCP tabs, and perform explicitly scoped terminal actions.
tab_listList live Chau7 tabs across windows.Read only
Use this as the primary live discovery call before addressing a tab.
Boundary: Lists tabs without sending input or changing ownership.
Example parameters
{}tab_createCreate a new terminal tab in Chau7.Creates tab
Choose a working directory and optional target window. The returned tab ID can be passed to later tab calls.
Boundary: Creates a local shell tab. The optional Require Approval setting applies to new-tab creation and is off by default.
Example parameters
{
"directory": "/path/to/repo",
"window_id": 0
}tab_request_controlRequest control of an existing user-opened tab.Requires approval
Pass a tab ID from tab_list. Chau7 presents a local confirmation before granting control.
Boundary: Always requires explicit confirmation in Chau7; the request itself does not inject terminal input.
Example parameters
{
"tab_id": "<tab-id>"
}tab_release_controlRevoke MCP control of a tab.Releases control
The tab remains open, but later mutating calls require a new grant.
Boundary: Revokes the process-local control grant without closing the tab.
Example parameters
{
"tab_id": "<mcp-tab-id>"
}tab_execRun a shell command in an MCP-controlled tab.Runs command
Commands can be queued while the shell starts. Readiness fields or tab_wait_ready can coordinate prompt-ready execution.
Boundary: Runs with the local user's environment in an MCP-controlled or explicitly authorized tab. Command permission rules still apply; this is not a shell sandbox.
Example parameters
{
"tab_id": "<mcp-tab-id>",
"command": "pwd"
}tab_statusRead a tab's current status and control/readiness fields.Read only
Use it to understand a tab before sending input or waiting for readiness.
Boundary: Returns status; it does not start a process or grant control.
Example parameters
{
"tab_id": "<tab-id>"
}tab_wait_readyWait for an MCP-controlled tab to accept execution.Waits, no write
Set a timeout in milliseconds to wait for deterministic command acceptance.
Boundary: Waits for readiness; it does not grant permission or submit a command.
Example parameters
{
"tab_id": "<mcp-tab-id>",
"timeout_ms": 10000
}tab_send_inputSend raw text to a terminal tab.Terminal input
Sends the supplied text as terminal input; use tab_press_key or tab_submit_prompt when a key press is required.
Boundary: Can change or submit shell input. Mutating tab tools are limited to MCP-controlled or explicitly authorized tabs.
Example parameters
{
"tab_id": "<mcp-tab-id>",
"input": "git status"
}tab_press_keySend a key press to a terminal tab.Terminal input
Supports named keys and optional modifiers for interactive terminal applications.
Boundary: A key can submit or alter a command. Mutating tab tools are limited to MCP-controlled or explicitly authorized tabs.
Example parameters
{
"tab_id": "<mcp-tab-id>",
"key": "escape"
}tab_submit_promptSubmit the current prompt in an interactive terminal.Submits prompt
Sends Enter to the selected tab, such as to submit a queued task to a running agent.
Boundary: Submits whatever is currently at the prompt. Mutating tab tools are limited to MCP-controlled or explicitly authorized tabs.
Example parameters
{
"tab_id": "<mcp-tab-id>"
}tab_closeClose an MCP-controlled tab.Closes tab
A running process prevents normal closure unless force is explicitly set.
Boundary: Closing a tab interrupts its session; force=true can close it while processes are running.
Example parameters
{
"tab_id": "<mcp-tab-id>"
}tab_outputRead recent terminal output from a tab.Read only
Read the scrollback buffer by default, or select the ANSI-stripped PTY log for full output including alternate-screen content.
Boundary: Terminal output can contain prompts, commands, credentials, or other project data.
Example parameters
{
"tab_id": "<mcp-tab-id>",
"lines": 50
}agent_launchLaunch one or more coding agents in fresh Chau7 tabs.Starts agent
Starts a local CLI, waits for readiness, and can optionally submit a task prompt. The result reports per-agent launch checks.
Boundary: Starts local processes and may submit a prompt. Launched agents have the permissions of their local environment; the MCP tool is not a sandbox.
Example parameters
{
"directory": "/path/to/repo",
"agent_command": "claude",
"count": 1
}tab_set_ctoSet a tab's Command Token Optimization override.Changes tab setting
Choose default, forceOn, or forceOff for the selected tab.
Boundary: Updates the per-tab CTO override.
Example parameters
{
"tab_id": "<mcp-tab-id>",
"override": "default"
}tab_renameSet or clear a tab's custom title.Changes tab setting
Pass an empty title to remove the custom title.
Boundary: Changes tab display metadata; it does not rename a repository or process.
Example parameters
{
"tab_id": "<mcp-tab-id>",
"title": "Build log"
}Repository context
Read or update Chau7's local notes and event summaries for a repository.
repo_get_metadataRead Chau7 metadata for a repository.Read only
Returns the saved description, labels, favorite files, and frequent commands.
Boundary: May reveal local project notes and paths.
Example parameters
{
"repo_path": "/path/to/repo"
}repo_set_metadataUpdate Chau7 metadata for a repository.Updates repo metadata
Only the provided description, labels, or favorite-file fields are changed.
Boundary: Writes local repository metadata; it does not edit files in the repository.
Example parameters
{
"repo_path": "/path/to/repo",
"labels": [
"website"
]
}repo_frequent_commandsRead frequently used commands for a repository.Read only
Returns commands sorted by frecency and can be limited to a requested number.
Boundary: Command history can reveal project workflows or sensitive command text.
Example parameters
{
"repo_path": "/path/to/repo",
"limit": 10
}repo_get_eventsRead recent AI tool events scoped to a repository.Read only
Optionally filter by tab, event type, tool/provider, producer, or session.
Boundary: Event messages can contain project context; messages are truncated by default.
Example parameters
{
"repo_path": "/path/to/repo",
"limit": 20,
"truncate_messages": true
}No tools match those filters.
Telemetry resources
chau7://telemetry/runschau7://telemetry/sessionschau7://telemetry/sessions/current- Dynamic run reads:
chau7://telemetry/runs/<run_id>
Local transport and registration
The server uses an owner-only Unix socket. A bundled bridge exposes the MCP stdio transport used by supported clients. Integration code supports Claude Code, Codex, Cursor, Windsurf and Gemini CLI; registration depends on client configuration, app settings and helper availability. Inspect the resulting client configuration if a server does not appear.
Local transport does not constrain what a client does with returned output. A connected AI client may send the terminal content it reads to its configured provider.
Control and approvals
Terminal mutation uses control claims and command permission policies. The optional Require Approval setting applies to new-tab creation and is off by default. Requesting control of an existing user tab always asks for explicit consent. Command allow/deny rules and protected input are separate controls. Tab limits apply according to configuration. Inspect MCP control and approval settings before granting terminal control. The separate Permission Center describes macOS access such as protected paths and notifications. Local socket permissions reduce access; they do not make every same-user client trustworthy.
Questions and answers
Can any script send arbitrary JSON-RPC commands?
Use the documented MCP tools through a compatible client and bridge. Chau7 also has a separate, narrower scripting socket; it is not interchangeable with MCP.
Does every AI session have complete telemetry?
No. Available fields depend on provider transcripts, hooks, attribution and proxy routing. Missing measurements should not be read as zero usage.