The ACP Registry schema supports uvx as a first-class distribution method alongside npx and binary. Pointing the registry directly at the existing hermes-agent PyPI release removes: - the @nousresearch npm scope (we don't own it) - a separate npm publish step on every weekly release - 90 lines of Node launcher + tests in packages/hermes-agent-acp/ The Zed registry now installs Hermes via: uvx --from 'hermes-agent[acp]==<version>' hermes-acp This is the same command the npm launcher was shelling out to anyway, so end-user behavior is unchanged. Registry CI validates the PyPI URL + version-pin exact match automatically. Changes: - acp_registry/agent.json: distribution.npx -> distribution.uvx - delete packages/hermes-agent-acp/ entirely - scripts/release.py: drop npm-launcher bump paths, keep manifest lockstep - tests/acp/test_registry_manifest.py: assert uvx shape + version pin - tests/scripts/test_release_acp_registry.py: rewrite for uvx-only shape - docs (user-guide + dev-guide): drop all npm-launcher references - delete docs/plans/acp-registry-zed-integration.md (stale, npm-shaped) Validated against agentclientprotocol/registry agent.schema.json via jsonschema. hermes-agent==0.13.0 is already live on PyPI.
6.2 KiB
| sidebar_position | title | description |
|---|---|---|
| 11 | ACP Editor Integration | Use Hermes Agent inside ACP-compatible editors such as VS Code, Zed, and JetBrains |
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
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
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
For Zed registry installs, Zed launches Hermes through the official ACP Registry entry. That entry uses a uvx distribution that runs:
uvx --from 'hermes-agent[acp]==<version>' hermes-acp
Make sure uv is available on PATH before using the registry install path.
Launching the ACP server
Any of the following starts Hermes in ACP mode:
hermes acp
hermes-acp
python -m acp_adapter
Hermes logs to stderr so stdout remains reserved for ACP JSON-RPC traffic.
For non-interactive checks:
hermes acp --version
hermes acp --check
Editor setup
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"]
}
}
}
Zed
Zed v0.221.x and newer installs external agents through the official ACP Registry.
- Open the Agent Panel.
- Click Add Agent, or run the
zed: acp registrycommand. - Search for Hermes Agent.
- Install it and start a new Hermes external-agent thread.
Prerequisites:
- Configure Hermes provider credentials first with
hermes model, or set them in~/.hermes/.env/~/.hermes/config.yaml. - Install
uvso the registry launcher can runuvx --from 'hermes-agent[acp]==<version>' hermes-acp.
For local development before the registry entry is available, use a custom agent server in Zed settings:
{
"agent_servers": {
"hermes-agent": {
"type": "custom",
"command": "hermes",
"args": ["acp"]
}
}
}
JetBrains
Use an ACP-compatible plugin and point it at:
/path/to/hermes-agent/acp_registry
Registry manifest
The source copy of Hermes' official ACP Registry metadata lives at:
acp_registry/agent.json
acp_registry/icon.svg
The upstream registry PR copies those files into the top-level hermes-agent/ directory in agentclientprotocol/registry.
The registry entry uses a uvx distribution that points directly at the hermes-agent PyPI release:
uvx --from 'hermes-agent[acp]==<version>' hermes-acp
The registry CI verifies that the pinned version exists on PyPI, so the manifest's version and uvx package pin must always match pyproject.toml. scripts/release.py keeps them in lockstep automatically.
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. Hermes also advertises a terminal auth method (--setup) for first-run registry clients; this opens Hermes' interactive model/provider setup.
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
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
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
ACP agent does not appear in the editor
Check:
- In Zed, open the ACP Registry with
zed: acp registryand search for Hermes Agent. - For manual/local development, verify the custom
agent_serverscommand points tohermes acp. - Hermes is installed and on your PATH.
- The ACP extra is installed (
pip install -e '.[acp]'). uvis installed if launching from the official Zed registry entry.
ACP starts but immediately errors
Try these checks:
hermes acp --version
hermes acp --check
hermes doctor
hermes status
Missing credentials
ACP mode uses Hermes' existing provider setup. Configure credentials with:
hermes model
or by editing ~/.hermes/.env. Registry clients can also trigger Hermes' terminal auth flow, which runs the same interactive provider/model setup.
Zed registry launcher cannot find uv
Install uv from the official uv installation docs, then retry the Hermes Agent thread from Zed.