Slot: agent · Name: cursor · Binary: agent
The Cursor Agent CLI brings Cursor's editing model to a terminal. AO spawns it per session, wraps gh/git, and tracks activity via the AO activity log.
Install
curl https://cursor.com/install -fsS | bash
Verify:
agent --help
You should see "Cursor Agent" in the output. If you don't, the agent binary in your PATH is something else (e.g. an unrelated tool) — reorder your PATH so the Cursor one wins.
Use
agent: cursor
No plugin-level config.
How it works
- Launch: AO runs
agentinside the worktree. - Activity tracking: AO writes a JSONL to
{workspace}/.ao/activity.jsonleach poll cycle based on terminal output classification. The dashboard reads from there. - PR + git tracking: PATH wrappers at
~/.ao/bin/gh/~/.ao/bin/gitintercept calls to record PR metadata. - Session resume: Not supported — every spawn is a fresh Cursor session.
Detection
The plugin's detect() checks agent --help output for the strings Cursor Agent and --approve-mcps to avoid false positives with other binaries named agent.
Environment variables
| Variable | Set by AO | Purpose |
|---|---|---|
AO_SESSION_ID | ✓ | AO session id |
AO_ISSUE_ID | ✓ | Issue identifier |
PATH | ✓ | Prepends ~/.ao/bin |
GH_PATH | ✓ | Absolute path to real gh |
Troubleshooting
AO says Cursor Agent isn't detected
The plugin only recognises the real Cursor binary by its help output. Run agent --help — if you see a different
tool's help, remove or shadow it, or reinstall Cursor Agent.
Dashboard never leaves `active`
Cursor doesn't emit its own session JSONL. AO classifies based on terminal output — if your terminal is being
captured by another tool, the classification can drift. ao doctor will flag this.