Releases: freema/cursor-plugin-cc
v0.3.2 — clearer job-not-found hint
Small UX fix release.
Fixed
- Clearer "job not found" hint (#7). When
/cursor:delegateruns as a Claude Code background command, Claude Code surfaces its own wrapper id (Command running in background with ID: …), not the Cursor job id — so/cursor:status <that-id>missed with a bareNo job … found./cursor:status,/cursor:result, and/cursor:cancelnow append a hint explaining the id mismatch and pointing at the no-arg job listing to recover the real id.
Full Changelog: v0.3.1...v0.3.2
v0.3.1 — model alias refresh (Composer 2.5 + Grok 4.3)
Maintenance release: model aliases caught up with Cursor's current --list-models lineup, plus the cursor-runner agent doc fix. Includes the two community-reported fixes from #8 and #10 — thanks @TiberiusNemesis!
Fixed
- Model aliases updated for Composer 2.5 (#8, #9). Cursor retired the Composer 2.x ids;
composer/composer-fast/fastnow resolve tocomposer-2.5-fastandcomposer-fulltocomposer-2.5. The retiredcomposer-2/composer-2-fastids still forward as-is for oldercursor-agentbuilds. cursor-runneragent invocation corrected (#10, #11). The subagent doc still referenced the pre-rewritetsx …/delegate.tscall; it now matches the working slash command:node "${CLAUDE_PLUGIN_ROOT}/scripts/delegate.mjs" -- ….grokalias retargeted to Grok 4.3 (#12).grok-4-20/grok-4-20-thinkingare retired;groknow resolves togrok-4.3, newgrok-buildshortcut →grok-build-0.1, deadgrok-thinkingalias removed.
Full Changelog: v0.3.0...v0.3.1
v0.3.0 — /cursor:review + codebase hardening
/cursor:review
New read-only code-review command modelled on openai/codex-plugin-cc's /codex:review, adapted to the Cursor CLI. The plugin collects your git diff itself (working tree, or branch vs --base <ref>), sends it to a Cursor model with a strict review-only prompt, and returns the findings (Blocking / Should-fix / Nits + verdict) verbatim. Supports --scope auto|working-tree|branch, --adversarial, --model, --background/--wait, --timeout, and free-form focus text. It never edits files — a post-flight check fails the job if the run touches the working tree. Tracked as a normal job, so /cursor:status, /cursor:result and /cursor:cancel apply.
Codebase hardening
Dogfooding /cursor:review with a multi-agent review of the whole plugin surfaced 43 confirmed robustness findings — all fixed, with regression tests (83 passing, lint clean). Notably:
- delegate — numeric
--resumeno longer crashes;--waitis a real toggle; the background worker gets the prompt verbatim via env (no double-collapse) and writes logs into the correctjobs/<repo-hash>/dir; killed runs are flagged. - runHeadless — error handlers for child-spawn and log-stream failures so a bad binary or full disk degrades instead of crashing the process; the kill watchdog arms at most once;
CURSOR_AGENT_BINis trimmed. - git / paths / parse / plan / jobs / args / browser / status / sessions / result / setup / cancel / id — assorted edge-case fixes: no-commits diff, stable repo hash,
content[]text extraction, fenced-code-aware plan parsing, temp-file cleanup,--timeout NaNguard, Markdown cell escaping, corrupted-record tolerance, and more.
See CHANGELOG.md for the full list.
v0.2.2 — fix /cursor:resume prompt-eating + default model = auto
Fixed
/cursor:resume <prompt…>no longer eats the first prompt word as a chat-id.--resumewas missing from the boolean-flag whitelist indelegate.mjs, so the argv parser greedily took the next positional token (Cursor chat id: řekni — resume with cursor-agent --resume=řekni). Declaredresumeas boolean;--resume=<chat-id>still works because the=form is parsed independently. Regression tests cover both shapes plus a multi-word non-ASCII prompt.
Changed
- Default model is now
auto(wascomposer-2-fast). Users without a paid Composer 2 seat can run the plugin out of the box; Cursor picks whatever model the account is entitled to. Power users can pin a default globally via the newCURSOR_PLUGIN_CC_DEFAULT_MODELenv var (accepts the same aliases as--model), or per-invocation via--model <id>. - README install section moved up front; GitHub install marked preferred, local checkout install moved below it for hacking on the plugin. Requirements list now lives under Install and no longer implies a paid subscription is mandatory.
Upgrade
/plugin uninstall cursor@tomas-cursor
/plugin install cursor@tomas-cursor
/reload-plugins
Full changelog: CHANGELOG.md
v0.2.1 — OSS ergonomics (docs only)
Documentation-only patch release. Fills the infrastructure gaps a small public repo needs for third-party contributors and for AI agents editing the repo.
Added
AGENTS.md— hard rules any AI agent (Claude Code, Cursor, Codex, …) must follow when editing this repo. Dogfoods the patterncursor-runnertells agents to read in target repos.CONTRIBUTING.md— dev setup, branch naming, commit conventions, the step-by-step recipe for adding a new slash command, release flow.SECURITY.md— vulnerability reporting via GitHub Security Advisories, the--force/--trust/--approve-mcpstrade-offs, zero-deps supply-chain stance.- GitHub templates under
.github/:ISSUE_TEMPLATE/bug_report.yml— structured form that asks for Node / cursor-agent / plugin version and/cursor:setup --doctoroutput up front.ISSUE_TEMPLATE/feature_request.yml— problem-first, with a zero-deps-fit dropdown.ISSUE_TEMPLATE/config.yml— blank issues disabled, upstream redirects.PULL_REQUEST_TEMPLATE.md— summary + test plan + zero-deps checklist.
- README Troubleshooting section — the six failure modes hit during development (forgot
/reload-plugins, zsh globbing, stale cache module-not-found, Bash permission prompt, browser MCP not loaded, no plan files) with exact fixes.
Changed
- README "Contributing" section shrunk to a pointer toward the new dedicated files. Homepage stays scannable.
No code changes
All 52 vitest specs still green, CI matrix 6/6 across Node 18.18 / 20 / 22 × Ubuntu / macOS. No behavioural changes to any slash command.
Install / upgrade
/plugin marketplace remove tomas-cursor
/plugin marketplace add freema/cursor-plugin-cc
/plugin install cursor@tomas-cursor
/reload-plugins
v0.2.0 — plan-mode bridge + zero-deps rewrite
Highlights
/cursor:from-plan — new command
Bridges Claude Code's plan mode directly into Cursor delegate. One command converts the plan file Claude drops under ~/.claude/plans/ into a task file at tasks/<timestamp>-<slug>.md and optionally hands it off to Cursor immediately.
/plan add dark-mode toggle to the settings page
# Claude proposes a plan, you approve
/cursor:from-plan --delegate --model opus
# → tasks/20260422-1945-add-dark-mode-toggle.md is created AND sent to Cursor
Zero runtime dependencies + no build step
Full rewrite from TypeScript/esbuild to plain .mjs. The source under scripts/ IS the ship artefact — /plugin install gives you a working plugin in one step, no npm install in the cache, no dist/, no bundler. Matches openai/codex-plugin-cc's shape.
What went away: execa, zod, nanoid, yargs-parser, esbuild, tsx, typescript, @types/*. What replaced them: ~200 lines of small stdlib-based helpers (lib/run.mjs, lib/id.mjs, lib/args.mjs) and plain JSON handling with JSDoc types.
Other quality fixes
- Robust entry-point detection (
lib/invoked.mjs) —realpathSyncon both sides, fixes a silent no-op when the plugin was executed through a symlinked path (e.g. macOS/tmp → /private/tmp). - All slash-command bodies now
"$ARGUMENTS"quoted to prevent zsh from globbing?,*inside prompts. /cursor:browserpost-flight recursively walkstool_useblocks nested inassistant.message.content[]— no more false-positive "MCP never called" when Cursor did use it.
Full changelog
See CHANGELOG.md.
Install
/plugin marketplace add freema/cursor-plugin-cc
/plugin install cursor@tomas-cursor
/reload-plugins
/cursor:setup
Zero build, zero npm install needed after /plugin install.
Commands (9 total)
/cursor:delegate— hand a coding task to Cursor/cursor:from-plan— new — plan file → task file → delegate/cursor:browser— real-browser verification viachrome-devtoolsMCP/cursor:status//cursor:result//cursor:cancel//cursor:resume//cursor:sessions/cursor:setup— health-check + configured MCPs
Plus cursor-runner subagent.