feat(agent,cli): add cursor-acp provider via ACP#30835
Conversation
|
Coordination note: the paired WebUI PR nesquena/hermes-webui#2792 has been rebased and updated to depend on this Agent-side |
|
Thanks for the work here — closing this with the rest of the Cursor-related PRs and the underlying RFC (#30640). After looking at all four integration surfaces (CLI ACP, Python/TS SDK, Cloud Agents REST, and the unofficial standardagents proxy), they all wrap Cursor's agent harness — tools, permissions, modes, subagents, planning UX — and there is no raw inference endpoint for Composer 2.5. Cursor sells Composer as an agent, not a model. That's a clean answer for what your PR does, but it isn't the integration shape we want for Hermes. Selecting it as a "provider" would silently disable Hermes' own tools, memory, skills, and MCP setup for that turn, and delegating to it as a tool just reproduces what Closing for now — appreciate the effort and the careful design. If Cursor ships a direct model endpoint we'd happily revisit. |
Summary
Adds Cursor ACP as a native Hermes model provider using Cursor's Agent Client Protocol (
agent acp). This follows the existing external-process provider pattern used bycopilot-acp, but targets Cursor's CLI instead of GitHub Copilot.This lets users use Cursor Composer, including
cursor/composer-2.5, directly as a Hermes backend afteragent login, without a separate Cursor API key.Why
Cursor Composer is not exposed through a normal chat-completions API. The supported local integration surface is the Cursor CLI ACP server:
This complements #30641, which adds Cursor as a delegated tool through the Cursor SDK. This PR is for the other use case: selecting Cursor as the active Hermes provider in the model picker.
Changes
agent/cursor_acp_client.py, an OpenAI-compatible shim aroundagent acp.cursor-acpin provider metadata, aliases, auth status, and runtime resolution.cursor/composer-2.5cursor/composer-2cursor/defaultcursor-acpcursor-acpinto agent client creation and auxiliary client resolution.cursor-acpas an external-process provider in/modeldiscovery.cursor-acpbecause ACP handles its own subprocess stream.How to test
Prerequisites:
curl https://cursor.com/install -fsS | bash agent loginThen:
hermes chat --provider cursor-acp --model cursor/composer-2.5 -q "Say hello from Cursor ACP"Or use
/modeland select Cursor ACP.Validation
Local validation on macOS:
Result:
Manual smoke test performed on macOS 26.4.1 with Cursor CLI
agent v2026.05.20-2b5dd59and Cursor Individual subscription.cursor/composer-2.5responded successfully through Hermes.Platform tested
agent acpRelated