ACP Editor Integration
ACP Editor Integration
Section titled “ACP Editor Integration”Hermes Agent can run as an ACP server, letting ACP-compatible editors talk to Hermes over stdio and render:
- chat messages
- tool activity
- file diffs
- terminal commands
- approval prompts
- streamed thinking / response chunks
ACP is a good fit when you want Hermes to behave like an editor-native coding agent instead of a standalone CLI or messaging bot.
What Hermes exposes in ACP mode
Section titled “What Hermes exposes in ACP mode”Hermes runs with a curated hermes-acp toolset designed for editor workflows. It includes:
- file tools:
read_file,write_file,patch,search_files - terminal tools:
terminal,process - web/browser tools
- memory, todo, session search
- skills
- execute_code and delegate_task
- vision
It intentionally excludes things that do not fit typical editor UX, such as messaging delivery and cronjob management.
Installation
Section titled “Installation”Install Hermes normally, then add the ACP extra:
pip install -e '.[acp]'This installs the agent-client-protocol dependency and enables:
hermes acphermes-acppython -m acp_adapter
Launching the ACP server
Section titled “Launching the ACP server”Any of the following starts Hermes in ACP mode:
hermes acphermes-acppython -m acp_adapterHermes logs to stderr so stdout remains reserved for ACP JSON-RPC traffic.
Editor setup
Section titled “Editor setup”VS Code
Section titled “VS Code”Install the ACP Client extension.
To connect:
- Open the ACP Client panel from the Activity Bar.
- Select Hermes Agent from the built-in agent list.
- Connect and start chatting.
If you want to define Hermes manually, add it through VS Code settings under acp.agents:
{ "acp.agents": { "Hermes Agent": { "command": "hermes", "args": ["acp"] } }}Example settings snippet:
{ "agent_servers": { "hermes-agent": { "type": "custom", "command": "hermes", "args": ["acp"], }, },}JetBrains
Section titled “JetBrains”Use an ACP-compatible plugin and point it at:
/path/to/hermes-agent/acp_registryRegistry manifest
Section titled “Registry manifest”The ACP registry manifest lives at:
acp_registry/agent.jsonIt advertises a command-based agent whose launch command is:
hermes acpConfiguration and credentials
Section titled “Configuration and credentials”ACP mode uses the same Hermes configuration as the CLI:
~/.hermes/.env~/.hermes/config.yaml~/.hermes/skills/~/.hermes/state.db
Provider resolution uses Hermes’ normal runtime resolver, so ACP inherits the currently configured provider and credentials.
Session behavior
Section titled “Session behavior”ACP sessions are tracked by the ACP adapter’s in-memory session manager while the server is running.
Each session stores:
- session ID
- working directory
- selected model
- current conversation history
- cancel event
The underlying AIAgent still uses Hermes’ normal persistence/logging paths, but ACP list/load/resume/fork are scoped to the currently running ACP server process.
Working directory behavior
Section titled “Working directory behavior”ACP sessions bind the editor’s cwd to the Hermes task ID so file and terminal tools run relative to the editor workspace, not the server process cwd.
Approvals
Section titled “Approvals”Dangerous terminal commands can be routed back to the editor as approval prompts. ACP approval options are simpler than the CLI flow:
- allow once
- allow always
- deny
On timeout or error, the approval bridge denies the request.
Troubleshooting
Section titled “Troubleshooting”ACP agent does not appear in the editor
Section titled “ACP agent does not appear in the editor”Check:
- the editor is pointed at the correct
acp_registry/path - Hermes is installed and on your PATH
- the ACP extra is installed (
pip install -e '.[acp]')
ACP starts but immediately errors
Section titled “ACP starts but immediately errors”Try these checks:
hermes doctorhermes statushermes acpMissing credentials
Section titled “Missing credentials”ACP mode does not have its own login flow. It uses Hermes’ existing provider setup. Configure credentials with:
hermes modelor by editing ~/.hermes/.env.