| # 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: |
|
|
| ```bash |
| 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: |
|
|
| ```bash |
| code --install-extension anysphere.acp-client |
| ``` |
|
|
| ### 2. Configure settings.json |
|
|
| Open your VS Code settings (`Ctrl+,` β click the `{}` icon for JSON) and add: |
|
|
| ```json |
| { |
| "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`: |
|
|
| ```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 **Settings** β **Plugins** β **Marketplace** |
| - Search for **"ACP"** or **"Agent Client Protocol"** |
| - Install and restart the IDE |
|
|
| ### 2. Configure the agent |
|
|
| - Open **Settings** β **Tools** β **ACP 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/state.db` |
|
|
| You can run `hermes setup` to configure providers, or edit `~/.hermes/.env` |
| directly. |
|
|
| ### Changing the model |
|
|
| Edit `~/.hermes/config.yaml`: |
|
|
| ```yaml |
| model: openrouter/nous/hermes-3-llama-3.1-70b |
| ``` |
|
|
| Or set the `HERMES_MODEL` environment variable. |
|
|
| ### Toolsets |
|
|
| ACP sessions use the curated `hermes-acp` toolset by default. It is designed for editor workflows and intentionally excludes things like messaging delivery, cronjob management, and audio-first UX features. |
|
|
| --- |
|
|
| ## 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: |
|
|
| ```bash |
| 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: **View** β **Toggle Terminal** and check the process output |
| - JetBrains: **Event Log** or the ACP tool window |
|
|
| You can also enable verbose logging: |
|
|
| ```bash |
| HERMES_LOG_LEVEL=DEBUG hermes acp |
| ``` |
|
|
| --- |
|
|
| ## Further Reading |
|
|
| - [ACP Specification](https://github.com/anysphere/acp) |
| - [Hermes Agent Documentation](https://github.com/NousResearch/hermes-agent) |
| - Run `hermes --help` for all CLI options |
|
|