ACP Nakedev
VS Code / Cursor extension that connects AI agents (including Hermes Agent) to your editor via the Agent Client Protocol (ACP).
Prerequisites
- Install an ACP-compatible agent (default: Hermes):
curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash
source ~/.zshrc
hermes model # configure provider credentials
hermes acp --check
- Open a workspace folder in Cursor (agents need a working directory).
Development
npm install
npm run compile
npm test
npm run lint
Press F5 in Cursor to launch an Extension Development Host.
Usage
- Open the ACP Nakedev icon in the Activity Bar.
- Type a message in the chat panel — the extension connects automatically.
- Use the session button in the header to pick, fork, or start sessions.
- Approve tool/terminal permissions when the agent asks (or enable auto-approve in settings).
Composer
| Control |
Description |
| Session |
Short session id — opens session picker (new, resume, paginated list, fork) |
| Provider / Model |
Hermes models from ~/.hermes/provider_models_cache.json; changes via /model |
| Mode |
Edit permission mode (Default / Accept Edits / Don't Ask) |
| Stop |
Cancels the current turn (session/cancel) |
| @ |
Attach workspace files via autocomplete in the prompt |
| / |
Slash commands from ACP + skills from hermes skills list |
| Paste image |
Sends image blocks in the next prompt |
Commands
| Command |
Description |
ACP Nakedev: Pick Session |
New, resume, fork, disconnect, or log out |
ACP Nakedev: Fork Session |
Fork the current session |
ACP Nakedev: Cancel Turn |
Stop the running agent turn |
ACP Nakedev: Switch Agent |
Change acp.activeAgent (multi-agent) |
ACP Nakedev: Log Out Agent |
ACP logout + disconnect |
ACP Nakedev: Settings |
Quick settings menu |
ACP Nakedev: Show Log |
ACP traffic / extension log |
- Hermes loads MCP from
~/.hermes/config.yaml — Cursor's .cursor/mcp.json is not forwarded by default.
- Set
forwardMcp: true on an acp.agents entry to opt in for non-Hermes agents.
- Tool activity appears as compact status cards with optional diff previews.
- Permission requests can show a diff preview before you approve.
Multi-agent (acp.*)
{
"acp.activeAgent": "hermes",
"acp.agents": [
{
"id": "other-agent",
"displayName": "Other ACP Agent",
"command": "/path/to/agent",
"args": ["acp"],
"hermesCompat": false,
"forwardMcp": true
}
]
}
The built-in Hermes agent uses hermes.path, hermes.args, and hermes.cwd.
Settings
| Setting |
Default |
Description |
hermes.path |
hermes |
Hermes executable (auto-resolves ~/.local/bin/hermes) |
hermes.cwd |
(workspace) |
Session working directory |
hermes.autoApprovePermissions |
false |
Auto-approve ACP permission requests |
hermes.showThoughts |
false |
Show thinking in a collapsible block |
hermes.openWrittenFiles |
false |
Open files after fs.writeTextFile |
hermes.logTraffic |
false |
Log JSON-RPC to output channel |
acp.activeAgent |
hermes |
Active agent id |
acp.agents |
[] |
Extra ACP agents |
Architecture
Cursor Extension (ACP Client)
├── spawns agent subprocess (default: hermes acp)
├── JSON-RPC over stdio (@agentclientprotocol/sdk)
├── handlers: fs, terminal, permissions, elicitation
├── document sync → unstable NES notifications (when supported)
└── chat webview for prompts + streaming responses
Install as VSIX
npm install -g @vscode/vsce
npm run vsix
Install the .vsix via Extensions → Install from VSIX.
Troubleshooting
hermes not found — set hermes.path to the full path, or launch Cursor from a shell where which hermes works.
- Empty model list — run
hermes model once so ~/.hermes/provider_models_cache.json is populated.
- Agent crashed — status shows reconnect?; send a message or use Pick Session to reconnect.
- Stop ignored — ensure the turn is in progress; cancel uses ACP
session/cancel.
- Connection fails — run
ACP Nakedev: Show Log and hermes acp --check in a terminal.