Agent Client Protocol
Parent: Integrations.
rho acp is a stdio JSON-RPC Agent Client Protocol agent. An editor host such as Zed starts the process and drives sessions over ACP.
Launch
rho acpThe process uses the model, provider, and other flags from the command line and config. There is no extra host plugin inside Rho.
stdout is protocol only. Logs go to stderr. Do not write other text to stdout, and do not point a logger at stdout while a host is connected.
Sessions
ACP sessions persist under ~/.rho/sessions. They appear in rho sessions list and you can resume them with rho -R. See Sessions.
Permissions
New sessions advertise Rho permission modes: bypass, auto, allow_edits, plan, and supervised. session/set_mode is not supported yet.
When a tool needs approval, Rho asks the host. The host choices map to allow once, allow for this session, and reject.
rho acp can prompt the host for approvals. Headless rho run cannot.
Model
session/new and session/load advertise a configOptions select with id model and category model. Options are the same catalog list the TUI picker uses: favorites first, value ids provider/model.
Hosts switch with session/set_config_option. The value id is provider/model. A switch is rejected while a prompt is in flight. Re-selecting the current value, including an off-catalog current model, is a no-op success. The swap uses the same conversation-switch path as the TUI: it renegotiates reasoning, rebuilds compaction, updates later delegated agents, and appends the model-switch context line when history is not empty. The new model applies to later prompts in that ACP session. It does not rewrite config.toml. session/load always resumes on the process default from config and flags, not on a model chosen earlier in that session. History restored on load may still mention a prior switch.
Reasoning
When the current model exposes configurable reasoning, new and loaded sessions also advertise a thought_level select. Hosts that support session/set_config_option can change it while the session is idle. Values are Rho reasoning ids: off, minimal, low, medium, high, xhigh, and max, filtered to what the current model advertises. Models that do not expose configurable reasoning omit the option so hosts show no control.
The change applies to later turns in that ACP session. It does not rewrite config.toml. Launch still honors --reasoning and config as the starting value. A prompt already in flight rejects the change as a busy session. After a model switch, the advertised thought_level list follows the new model.
MCP
Rho still starts MCP servers from its own config. Host-supplied mcpServers are ignored. rho acp is not an MCP server. See Model Context Protocol.
Automation
rho acp does not change rho run --output jsonl. Use Automation and CLI for one-shot scripts.