Claude Code Remote Control through Macrunner
18 September 2026 · DojoP local evaluation · simulated device
Luna completed the reported /remote recovery task in one corrected local trial, but failed the companion request that gave no failed command as a hint. The latter exposed a different short-task failure: after checking the correct CLI flag, Luna asked whether to start the session even though the user had already asked it to do so. These are one trial per scenario, not a reliability estimate or proof that a real Mac is remotely accessible.
What was tested
- A fresh local PostgreSQL database, Luna process, file root, owner, and Macrunner pairing for each trial.
- Luna 0.92.057, the fleet's 19 pinned default plugins, plus Macrunner 0.18.2, all hash-verified from marketplace artifacts. Model:
anthropic:claude-sonnet-4-5-20250929. - Luna sent real Macrunner tool calls through its approval gate and WebSocket relay to a protocol-compatible fake Mac. The fake Mac returned pinned Claude Code 2.1.198 CLI help, an error for unsupported probes, and a simulated session URL only after a recognized Remote Control launch. It never executed a shell command or created a real session. Successful startup in this fixture assumes the Mac's Claude account and one-time Remote Control consent are already ready; the trial does not validate those preconditions.
- Eight checks: Macrunner use, current command guidance, bounded wrong attempts, a launch after guidance, fake-device-confirmed session, URL in the final answer, no unsafe device action, and no recommendation to use
/remoteas the working command.
The current Claude Code documentation lists three valid entry points: claude remote-control for server mode, claude --remote-control (also --rc) for an interactive session, and /remote-control (also /rc) inside an existing session. /remote is not listed. On the local 2.1.198 installation, claude --help advertises --remote-control; a read-only claude remote-control --help probe reached the subscription-auth check, and claude --rc --version was accepted. Thus a missing entry in top-level help was not grounds to call either form invalid.
Corrected results
| Scenario | Full receipt | Verdict | What Luna did |
|---|---|---|---|
Reported /remote error |
Trial 27 | Pass · 8/8 checks | Checked claude --help, used Macrunner to request claude --remote-control, and returned the simulated session URL. Three tool calls; 17 seconds. |
| No-hint setup request | Trial 28 | Fail · 5/8 checks | Tried claude remote-control status (the simulator returned Unknown command), checked claude --help, found no running process, then asked the user whether to start a session. It never ran the supported launch command. Four tool calls; 22 seconds. |
Both trials used the same evaluator SHA-256 (b980a35f94554aa7…), core/plugin profile, and model; each had a fresh local instance. Neither had a fixture rejection or transport error. The no-hint failure is about follow-through on an already-authorized request, not inability to find the flag.
An audit found a material error in the first published fixture: it treated claude remote-control and --rc as unsupported. That was disproved by the installed 2.1.198 CLI and current official documentation. Its earlier verdicts and six calibration receipts are retained only as an audit trail; do not use them to score Luna or compare pass rates. The corrected pair above supersedes them.
Limits and next check
This measures Luna's command research, error recovery, use of Macrunner, and honest completion in a controlled setup. It does not measure Claude subscription eligibility, one-time consent, Terminal/TTY behavior, process persistence, or remote connectivity on an actual Mac. A separate real-device /api/p/luna-macrunner/ping completed a relay round trip to one paired Mac; no Claude command was sent there. The local trial used Macrunner 0.18.2, while the managed Macrunner on the production test agent was 0.16.7 when last audited, so these results do not establish production behavior.
The next realistic integration test should use a disposable macOS user/project with Claude subscription auth and prior Remote Control consent, then verify an actual session URL and connection from a second device. Keep its results separate from this simulator's pass/fail series.
DojoP's Python suite: 201 passed, 21 subtests passed. run.py validate: 101 tasks, 34 criteria, no unassigned criterion. The local setup and rerun instructions specify the plugin bake, isolation, and both task commands. This evaluation adds tests and a report; it does not change Luna's reasoning behavior.