Approve Cursor agent commands from your phone

Cursor’s agent runs hooks before it uses a tool. Reins adds one, so the request for a command or an edit reaches your phone and your answer goes back. If the daemon is already installed and paired, this is two commands.

Before you start

Install the daemon and pair your phone once per machine; the Claude Code guide walks through it, and the steps are the same for every agent. reins setup wires Cursor on its own when Cursor looks installed, and names it as skipped when it does not.

Wire Cursor

See what would change first, then write it:

reins install-hooks --agent cursor --dry-run
reins install-hooks --agent cursor

Reins writes ~/.cursor/hooks.json, naming the reins binary by its absolute path so the hook does not depend on whatever PATH Cursor inherited. Re-running is safe: an entry that is already right is kept. Restart Cursor afterwards so it reloads the file.

What arrives on the phone

The same card as for every agent: who asked and in which folder, the exact command or the diff for an edit, a warning when it cannot be undone, and what happens if you do nothing. Edits are one tap. Commands that cannot be undone take a press-and-hold. Deny all clears the queue.

If no phone is attached, or nobody answers within three minutes, the hook returns nothing and Cursor shows its own prompt, as it did before. An unanswered request is never a denial.

What is Claude Code only

The live transcript with tool calls and diffs is read from Claude Code’s own project files, so it is Claude Code only. For Cursor you get approvals and what its hooks report; reins agents lists the exact capabilities per agent. The terminal on the phone is a real shell on the machine whatever the agent, and typing to a running agent needs it inside herdr, tmux or zellij.

Check and undo

reins doctor
reins uninstall-hooks --agent cursor

doctor shows whether Cursor is wired on this machine. uninstall-hooks removes exactly what install-hooks added, and nothing else.