hermes-agent/docs/acp-setup.md
teknium1 e80786cc94 feat: add ACP (Agent Client Protocol) server for editor integration
Adds full ACP support enabling hermes-agent to work as a coding agent
inside VS Code (via vscode-acp extension), Zed, JetBrains IDEs, and
any ACP-compatible editor.

## New module: acp_adapter/

- server.py: HermesACPAgent implementing all 15 Agent protocol methods
  (initialize, authenticate, new/load/list/fork/resume session, prompt,
  cancel, set mode/model/config, on_connect)
- session.py: Thread-safe SessionManager with per-session AIAgent lifecycle
- events.py: Callback factories translating hermes callbacks to ACP
  session_update notifications (tool_call, agent_thought, agent_message)
- tools.py: Tool kind mapping (20+ tools → read/edit/execute/search/fetch/think)
  and content builders (diffs for file edits, terminal output, text previews)
- permissions.py: Bridges hermes approval_callback to ACP requestPermission
  RPC for dangerous command approval dialogs in the editor
- auth.py: Provider credential verification
- entry.py: CLI entry point with .env loading and stderr logging

## Integration points

- run_agent.py: ACP tool bridge hook in _execute_tool_calls() for
  delegating file/terminal operations to the editor
- hermes_cli/main.py: 'hermes acp' subcommand
- pyproject.toml: [acp] optional dependency, hermes-acp entry point,
  included in [all] extras (auto-installed via install.sh)

## Supporting files

- acp_registry/agent.json: ACP Registry manifest
- acp_registry/icon.svg: Hermes caduceus icon
- docs/acp-setup.md: User-facing setup guide for VS Code, Zed, JetBrains

## Tests

- 41 new tests across 5 test files covering tools, sessions, permissions,
  server lifecycle, and auth
- Full test suite: 2901 passed, 0 failures

## User flow

1. hermes is already installed (install.sh)
2. Install 'ACP Client' extension in VS Code
3. Configure: command='hermes', args=['acp']
4. Chat with Hermes in the editor — diffs, terminals, approval
   dialogs, thinking blocks all rendered natively
2026-03-10 08:41:11 -07:00

5.7 KiB

Hermes Agent — ACP (Agent Client Protocol) Setup Guide

Hermes Agent supports the Agent Client Protocol (ACP), allowing it to run as a coding agent inside your editor. ACP lets your IDE send tasks to Hermes, and Hermes responds with file edits, terminal commands, and explanations — all shown natively in the editor UI.


Prerequisites

  • Hermes Agent installed and configured (hermes setup completed)
  • An API key / provider set up in ~/.hermes/.env or via hermes login
  • Python 3.11+

Install the ACP extra:

pip install -e ".[acp]"

VS Code Setup

1. Install the ACP Client extension

Open VS Code and install ACP Client from the marketplace:

  • Press Ctrl+Shift+X (or Cmd+Shift+X on macOS)
  • Search for "ACP Client"
  • Click Install

Or install from the command line:

code --install-extension anysphere.acp-client

2. Configure settings.json

Open your VS Code settings (Ctrl+, → click the {} icon for JSON) and add:

{
  "acpClient.agents": [
    {
      "name": "hermes-agent",
      "registryDir": "/path/to/hermes-agent/acp_registry"
    }
  ]
}

Replace /path/to/hermes-agent with the actual path to your Hermes Agent installation (e.g. ~/.hermes/hermes-agent).

Alternatively, if hermes is on your PATH, the ACP Client can discover it automatically via the registry directory.

3. Restart VS Code

After configuring, restart VS Code. You should see Hermes Agent appear in the ACP agent picker in the chat/agent panel.


Zed Setup

Zed has built-in ACP support.

1. Configure Zed settings

Open Zed settings (Cmd+, on macOS or Ctrl+, on Linux) and add to your settings.json:

{
  "acp": {
    "agents": [
      {
        "name": "hermes-agent",
        "registry_dir": "/path/to/hermes-agent/acp_registry"
      }
    ]
  }
}

2. Restart Zed

Hermes Agent will appear in the agent panel. Select it and start a conversation.


JetBrains Setup (IntelliJ, PyCharm, WebStorm, etc.)

1. Install the ACP plugin

  • Open SettingsPluginsMarketplace
  • Search for "ACP" or "Agent Client Protocol"
  • Install and restart the IDE

2. Configure the agent

  • Open SettingsToolsACP Agents
  • Click + to add a new agent
  • Set the registry directory to your acp_registry/ folder: /path/to/hermes-agent/acp_registry
  • Click OK

3. Use the agent

Open the ACP panel (usually in the right sidebar) and select Hermes Agent.


What You Will See

Once connected, your editor provides a native interface to Hermes Agent:

Chat Panel

A conversational interface where you can describe tasks, ask questions, and give instructions. Hermes responds with explanations and actions.

File Diffs

When Hermes edits files, you see standard diffs in the editor. You can:

  • Accept individual changes
  • Reject changes you don't want
  • Review the full diff before applying

Terminal Commands

When Hermes needs to run shell commands (builds, tests, installs), the editor shows them in an integrated terminal. Depending on your settings:

  • Commands may run automatically
  • Or you may be prompted to approve each command

Approval Flow

For potentially destructive operations, the editor will prompt you for approval before Hermes proceeds. This includes:

  • File deletions
  • Shell commands
  • Git operations

Configuration

Hermes Agent under ACP uses the same configuration as the CLI:

  • API keys / providers: ~/.hermes/.env
  • Agent config: ~/.hermes/config.yaml
  • Skills: ~/.hermes/skills/
  • Sessions: ~/.hermes/sessions.db

You can run hermes setup to configure providers, or edit ~/.hermes/.env directly.

Changing the model

Edit ~/.hermes/config.yaml:

model: openrouter/nous/hermes-3-llama-3.1-70b

Or set the HERMES_MODEL environment variable.

Toolsets

By default Hermes loads all available toolsets. To restrict which tools are available in ACP mode, you can set HERMES_TOOLSETS in your environment or configure it in config.yaml.


Troubleshooting

Agent doesn't appear in the editor

  1. Check the registry path — make sure the acp_registry/ directory path in your editor settings is correct and contains agent.json.
  2. Check hermes is on PATH — run which hermes in a terminal. If not found, you may need to activate your virtualenv or add it to PATH.
  3. Restart the editor after changing settings.

Agent starts but errors immediately

  1. Run hermes doctor to check your configuration.
  2. Check that you have a valid API key: hermes status
  3. Try running hermes acp directly in a terminal to see error output.

"Module not found" errors

Make sure you installed the ACP extra:

pip install -e ".[acp]"

Slow responses

  • ACP streams responses, so you should see incremental output. If the agent appears stuck, check your network connection and API provider status.
  • Some providers have rate limits. Try switching to a different model/provider.

Permission denied for terminal commands

If the editor blocks terminal commands, check your ACP Client extension settings for auto-approval or manual-approval preferences.

Logs

Hermes logs are written to stderr when running in ACP mode. Check:

  • VS Code: Output panel → select ACP Client or Hermes Agent
  • Zed: ViewToggle Terminal and check the process output
  • JetBrains: Event Log or the ACP tool window

You can also enable verbose logging:

HERMES_LOG_LEVEL=DEBUG hermes acp

Further Reading