All plugins

cursor-acp

Use your Cursor subscription models (Claude Opus/Sonnet 5.5, Composer 2.5, GPT-5.6, Grok) inside Hermes Agent via the Cursor CLI's ACP server (`agent acp`). Install with one command (`npx hermes-cursor-acp`) or `hermes plugins install cursor-acp`. The plugin rewrites `.cursor/cli.json` in an empty private workspace every run with a deny-all list (`Read`, `Write`, `Shell`, `WebFetch`, `Mcp`) to prevent Cursor's native CLI tools from accessing host files. It includes a custom extractor that recovers both flat `{"name", "arguments"}` and inline `<tool_call>` blocks that standard regex bridges drop, retries on concurrent `set_model` calls, and reports `usage=None` so Hermes proactive context compression functions correctly. Disclosure — sends the full conversation, Hermes tool schemas and tool results to Cursor through your locally installed, signed-in Cursor CLI (`agent acp`); Cursor's own tools are fenced by a deny-all `.cursor/cli.json` that the plugin rewrites in a private workspace under `$HERMES_HOME/cache/cursor-acp-workspace` on every start (a differing existing file is backed up to `cli.json.bak`), and Hermes executes every tool call under its own approvals.

neerazz1Modelsv0.1.2Updated 22 days ago

About

Use your Cursor subscription models (Claude Opus/Sonnet 5.5, Composer 2.5, GPT-5.6, Grok) inside Hermes Agent via the Cursor CLI's ACP server (`agent acp`). Install with one command (`npx hermes-cursor-acp`) or `hermes plugins install cursor-acp`. The plugin rewrites `.cursor/cli.json` in an empty private workspace every run with a deny-all list (`Read`, `Write`, `Shell`, `WebFetch`, `Mcp`) to prevent Cursor's native CLI tools from accessing host files. It includes a custom extractor that recovers both flat `{"name", "arguments"}` and inline `<tool_call>` blocks that standard regex bridges drop, retries on concurrent `set_model` calls, and reports `usage=None` so Hermes proactive context compression functions correctly. Disclosure — sends the full conversation, Hermes tool schemas and tool results to Cursor through your locally installed, signed-in Cursor CLI (`agent acp`); Cursor's own tools are fenced by a deny-all `.cursor/cli.json` that the plugin rewrites in a private workspace under `$HERMES_HOME/cache/cursor-acp-workspace` on every start (a differing existing file is backed up to `cli.json.bak`), and Hermes executes every tool call under its own approvals.

hermes-cursor-acp

Use your Cursor subscription models (Claude, GPT, Grok, Gemini, Composer) as the model behind Hermes Agent.

Cursor doesn't expose a chat-completions API, but the Cursor CLI ships an ACP server (agent acp). This plugin drives it through Hermes' ACP shim. Hermes keeps its own tools, memory, and skills. Cursor only supplies the model.

How it works

  • Hermes tool schemas go to the model as text. The model replies with <tool_call> blocks, and Hermes runs those calls itself.
  • The plugin parses tool calls with its own extractor. Hermes' built-in bridge silently drops two common shapes: the flat {"name", "arguments"} form, and a real block that follows a mention of <tool_call> in prose.
  • The plugin rewrites .cursor/cli.json in an empty private workspace ($HERMES_HOME/cache/cursor-acp-workspace) every time a client starts, with a deny-all list (Read, Write, Shell, WebFetch, Mcp). This deny list is the security fence. Cursor's native tools run inside the CLI rather than over ACP, and without the list its Read tool can open any absolute path on disk.
  • Models can be chosen by bare name (claude-opus-5-5) or by full advertised id (claude-opus-5-5[context=300k,effort=high,fast=false]). An unknown name raises an error instead of silently using Cursor's default.
  • Responses report usage=None. Cursor sends no token counts, and a zero reading would stall Hermes' proactive context compression.

Install

Option 1: One-command install (recommended)

npx hermes-cursor-acp

This installs and enables the plugin in Hermes, verifies your Cursor CLI (agent) installation, and checks that your subscription models are accessible.

Option 2: Manual install

curl https://cursor.com/install -fsS | bash   # Cursor CLI
agent login                                   # sign in with your Cursor account
agent models                                  # confirm what your plan offers

git clone git@github.com:neerazz/hermes-cursor-acp.git ~/.hermes/plugins/cursor-acp
hermes plugins enable cursor-acp

Use

hermes --provider cursor-acp -m claude-opus-5-5

Or run /model inside Hermes and pick Cursor Subscription (ACP).

Settings (env)

| Variable | Default | Purpose |
|---|---|---|
| HERMES_CURSOR_ACP_COMMAND | agent | Path to the Cursor CLI |
| HERMES_CURSOR_ACP_ARGS | acp | Argv tail |
| HERMES_CURSOR_ACP_MODE | agent | Cursor session mode. ask made gpt-5.6-sol refuse the bridge 2 times in 5. |
| HERMES_CURSOR_ACP_CWD | $HERMES_HOME/cache/cursor-acp-workspace | Private workspace |

Tests

H=~/.hermes/hermes-agent
PYTHONPATH=$H uv run --no-project --python $H/venv/bin/python --with pytest python -m pytest tests -q -o addopts=
CURSOR_LIVE=1 ...   # adds live tests against the real CLI (needs `agent login`)

Live results on 2026-10-06 (Hermes v0.21.5, Cursor CLI 2026.10.01):

  • Hermes tool-call bridging over 6 trials per model: claude-sonnet-5-5 6/6, claude-opus-5-5 6/6, composer-2.5 6/6, grok-4.7 6/6, gpt-5.6-sol 5/6. The one gpt miss answered from context without calling the tool.
  • Fence probes sent as raw prompts, so the model was told to escape: Cursor's native Read, Grep, Shell, Write, and WebFetch were all blocked. The canary file content and a live GitHub SHA never came back.
  • End-to-end multi-step runs through hermes chat (read_file, then terminal) executed both tools for real with composer-2.5 and gpt-5.6-sol.

Known limits

  • Every turn starts a new ACP session. That adds 7–16s of latency and about 17k tokens of Cursor's harness prompt.
  • Hermes records no token or cost data for these calls, so /usage and /insights undercount.
  • When several sessions start at once, Cursor occasionally answers set_model with Internal error. The plugin retries up to 3 times.

License

MIT

README from the reviewed commit d5b6146; it updates when the author re-pins.

More by neerazz

2 plugins by neerazz in the catalog.

neerazzantigravity-oauthSign in to Google Antigravity with `hermes auth add antigravity-oauth` (or one command, `npx hermes-antigravity-oauth`) and run Hermes on the Antigravity plan: Gemini 3.x, Claude 4.6, GPT-OSS. Every request is made by Google's official agy CLI under agy's own login. The plugin writes your Hermes SOUL.md and system prompt into agy's workspace GEMINI.md so the persona carries over. When a model reaches for an agy-native tool (run_command, view_file, grep_search, and so on) the call is re-issued as the matching Hermes tool, which then runs under Hermes approvals. agy never executes tools on the host, and unmapped native tools are blocked. Disclosure: inference counts against the Antigravity/Gemini subscription agy is signed in to. The plugin never reads, copies or uploads the OAuth token. It symlinks agy's antigravity-oauth-token file, and on macOS ~/Library/Keychains, into a per-session private temp HOME, which is deleted on close. It also probes the OS keyring (security / secret-tool / cmdkey) for credential presence only. Derived from antigravity-subscription-directsdk (MIT). Disclosure — inference counts against the Antigravity/Gemini subscription agy is signed in to. The plugin does not read or upload the OAuth token itself; it symlinks (hard-links, or as a last resort copies) agy's antigravity-oauth-token file, and on macOS ~/Library/Keychains, into a per-session private temp HOME that is deleted on close, probes the OS keyring (security / secret-tool / cmdkey) for credential presence only, and writes the full Hermes system prompt into that temp workspace as GEMINI.md each turn. Derived from antigravity-subscription-directsdk (MIT).Communitymodels95

Developer Mode

Explore built-in Hermes toolsets and actions.

HermesAgent

Developer?

Create a Hermes extension for Desktop or agent workflows.

Developer Section