oathe / harnesses / cursor

Cursor left the editor. Bring your work with it.

Cursor ships a CLI now — agent, in your terminal, outside the IDE. Which means it can work the same task as every other agent you run.

Oathe launches it as a first-class harness. Your goal is what carries across, not whichever window you happened to open.

Start

Node 22 or newer, plus Cursor's CLI.

curl https://cursor.com/install -fsS | bash # Cursor's CLI npm install -g @oathe/oathe cd your-project oathe init # onboards your harnesses oathe agent # Cursor's CLI, board first

agent is Cursor's own command. Oathe runs it unchanged — same models, same rules, same approvals.

One task, whichever agent is free

Ctrl-C anytime. Open a different harness in the same folder.

oathe claude # Claude Code takes over oathe codex # or Codex

Each one arrives with the same compiled bundle: what you claimed, what's already done, what's left, and the test that settles it. Nothing to paste. Nothing to re-explain. Hit a limit in Claude Code at 2am and finish in Cursor without losing the thread.

"Done" gets checked by something that didn't write it

Agents are confident. Confidence isn't evidence.

When Cursor says your work is finished, Oathe treats that as a claim. A verifier that wrote none of the code reads the recorded traces and checks what actually happened against what you asked for. Pass and your task settles. Fail and it reopens.

oathe verify fix-login # a non-author checks the traces

Before you add an MCP server to Cursor

Anything in .cursor/mcp.json runs with the access Cursor has.

Oathe Scan runs a skill in a sandbox first and reports what it did — file access, network calls, process activity. We've audited 2,986 of them, and 24 turned out to be malicious.