Skip to content

feat(eval): add Cursor CLI agent harness - #76

Draft
Rodriguespn wants to merge 1 commit into
mainfrom
pedrorodrigues/add-cursor-cli-agent-support
Draft

feat(eval): add Cursor CLI agent harness#76
Rodriguespn wants to merge 1 commit into
mainfrom
pedrorodrigues/add-cursor-cli-agent-support

Conversation

@Rodriguespn

@Rodriguespn Rodriguespn commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Adds cursor-cli (Cursor's cursor-agent) as an eval agent.

Cursor CLI is a standalone binary, not a npm package like claude code/codex. We fetch the pinned version's tarball from Cursor's download host and symlinks it onto PATH. To run the CLI headless: cursor-agent --print --output-format stream-json --model <m> --trust --force --approve-mcps, prompt fed on stdin. The MCP config is written to ~/.cursor/mcp.json.

Using composer-2.5 with Max mode off. Cursor models don't have the same reasoningEffort param as claude code/codex have (low, medium, high). Instead, it has a max mode that can be toggled to imporve the agent reasoning capabilities. We keep the reasoningEffort config in createCursorCLIAgent for consistency and it accepts none or max. Default to none.

Note

A CURSOR_API_KEY secret must be set to run the benchmark and get a preview.

Closes AI-889

@linear-code

linear-code Bot commented Jul 2, 2026

Copy link
Copy Markdown
AI-889 Add Cursor CLI agent support to the eval framework

Add a cursor-cli agent option using composer 2.5 model with high effort.

Need to ask for a Cursor enterprise account key

Review in Linear

@vercel

vercel Bot commented Jul 2, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
evals Ready Ready Preview, Comment Jul 2, 2026 11:32pm

Request Review

Adds `cursor-cli` (Cursor's `cursor-agent`) as an eval agent alongside
claude-code and codex, on the same per-agent framework (runner + parser +
index + experiment):

- Runner: pinned standalone-binary install (not npm) — fetches the version's
  tarball from Cursor's download host and symlinks the binary onto PATH; runs
  `--print --output-format stream-json --model <m> --trust --force
  --approve-mcps` with the prompt on stdin; MCP written to ~/.cursor/mcp.json.
- Parser: Cursor's stream-json (SDK messages) — tool type is the `*ToolCall`
  key, started/completed paired by call_id, {success}/{error} result shape,
  terminal result for the stop reason; skill tracking via the shared extractor.
- Model id is a free-form string; provider "cursor".
- Experiment cursor-cli.ts: composer-2.5 (Max mode off ⇒ no reasoningEffort),
  suite benchmark. CURSOR_API_KEY wired into eval-refresh CI + .env.example.
- reasoningEffort is agent-scoped: cursor accepts only `max` (Max mode);
  claude-code/codex now exclude `max` (it's Cursor-specific).

Verified end-to-end: cursor-cli (composer-2.5, CLI 2026.05.01-eea359f) passes
investigate-db-001 (3/3) — install, MCP, stream parse (29/29 tools paired),
skill loading, and scoring all work.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@Rodriguespn
Rodriguespn force-pushed the pedrorodrigues/add-cursor-cli-agent-support branch from a2fd157 to a9ff80b Compare July 2, 2026 23:31
@Rodriguespn
Rodriguespn requested a review from mattrossman July 2, 2026 23:52
@Rodriguespn Rodriguespn self-assigned this Jul 2, 2026
@Rodriguespn
Rodriguespn marked this pull request as draft July 29, 2026 10:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant