Add Cursor and Grok harnesses - #2
Open
ethanolivertroy wants to merge 2 commits into
Open
Conversation
- Cursor: spawns cursor-agent/agent in ask mode (--mode ask), streams stream-json partials, resumes via --resume, lists models from the CLI model table; ASK_CURSOR_BIN override. - Grok: spawns grok (PATH or ~/.grok/bin) in read-only plan mode, parses streaming-json events (text/end/error), resumes via --resume, hardcodes xAI reasoning effort levels; ASK_GROK_BIN override. - Register both in DEFINITIONS with aliases and tests; document in README.
ethanolivertroy
force-pushed
the
pr/grok-cursor
branch
from
August 23, 2026 20:35
3966a61 to
32d4409
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds two new harnesses to the existing Codex / Claude Code / OpenCode / Pi set.
Cursor
cursor-agent(env override:ASK_CURSOR_BIN, e.g.cursor-work-agent)--mode ask(Q&A mode makes no edits),--trustfor headless runsstream-jsonpartials with--stream-partial-output; final untimestamped assistant message is the answer,resultevent carries the session ID--resume <chat_id>models()parses thecursor-agent modelstable (auto, composer family, codex, cursor-grok, opus, etc.)Grok
grok(env override:ASK_GROK_BIN), xAI Grok Build CLI--permission-mode plan, plus--no-auto-updatefor scriptsstreaming-jsonNDJSON events (textdeltas,error, terminalendwithsession_id)--resume <session_id>grok models; hardcoded xAI reasoning effort levels (minimal/low/medium/high) since the CLI reports noneNotes
agent; ask calls the unambiguouscursor-agentname for Cursor so the two never collidecargo fmt --check,cargo test --locked,cargo clippy --locked --all-targets -- -D warningsall pass (89 tests)