Compare
The evidence behind each Yes.
A brainplane cell shows in the comparison only after its test passed on a real Mac. Here is the test, the code version it ran on and the date, for all 43 rows.
Updated 9 October 2026. Back to the comparison
| Row | Test that passed | Commit | Date |
|---|---|---|---|
| Availability | plan row 3.1 acceptance: (1) public DMG passes spctl and stapler from its public URL; (2) a new email and Mac get a 14-day trial certificate (commerce suite) and the app asks for the trial before setup (D-112); (3) Sparkle updates 0.2.0 to 0.2.1 with the signature checked, a tampered feed refused (4 of 4), and the 0.2.0 feed is signed; (4) a Stripe test-mode purchase activates the licence | 71e1fa8 |
9 October 2026 |
| Agents supported | 14 agents in AgentName; 12 delegate headless; live delegated runs of Claude Code, Codex, Grok and OpenCode came back verified | 521e6e4 |
9 October 2026 |
| How it reaches your agents | Adapter tests (packages/adapters, 43 tests), MCP server registered and listed in Claude Code, Codex and Grok, hook events received from a real claude -p run | f9a3d1f |
8 October 2026 |
| Automatic updates | Sparkle 2.10.0 with the app's settings (EdDSA, signed feed required, verify before extraction) on a probe app: a signed update installs 0.2.0 to 0.2.1; an edited feed, an archive changed after signing and an archive signed with another key are refused (4 of 4). The first public release publishes a signed feed (appcast.mjs sign) | 24165f4 |
9 October 2026 |
| Answer a running agent from the app | Live: a real Claude Code session in a scratch iTerm2 window answered from a card by the shipped Swift code (permission Yes, free text, refusal, killed agent, foreign page session). Codex and Grok with fakes | 0787d11 |
9 October 2026 |
| Inbox | Journey with a live-session card answered by key (plan row 3.5) | 0787d11 |
9 October 2026 |
| Send a new request to an agent | Spoken or typed request parsed by the user's own Claude Code (live call, spike V11); talk card offers Run or Send to the idle session on the topic; Send to goes through the live answer path | 574409a |
9 October 2026 |
| Status of every agent at a glance | Expert rail journey (packages/web/e2e/expert.spec.ts) and the agent strip Swift test (AgentStrip, apps/macos Tests) | a2622f7 |
9 October 2026 |
| Keyboard-first answering | Expert spec tests 2, 8, 9 and 10: number keys, arrows, command line and go-to picker answer the Inbox | a2622f7 |
9 October 2026 |
| Suggested next steps on finished work | BRAINPLANE_NEXT parser and finished cards with up to 3 steps; session packs ask agents for the block | 2e7ca21 |
9 October 2026 |
| Type a request with no microphone | The bar always takes text; the mic shows only when it can record | 3bb6988 |
9 October 2026 |
| Claude desktop app sessions | Live on this Mac (test/live/trust-reopen.mjs): a claude -p session with no terminal ended on a question; 1 reply card; the reply ran claude --resume <id> -- <reply> in a new tmux session and arrived in the same session (UserPromptSubmit with the same id), card confirmed. The desktop app sets CLAUDE_CODE_ENTRYPOINT=claude-desktop (read in /Applications/Claude.app); the hook passes it as the label. Refused while the session's process is alive. The same reply in a new iTerm2 window, live on 2026-10-09 with the screen unlocked: reopened, same session id, card confirmed (test/live/trust-reopen.mjs --host iterm2, 15 of 15) | 052935f |
9 October 2026 |
| Trust a new folder in 1 press | Live on this Mac (test/live/trust-reopen.mjs, tmux 3.8, Claude Code 2.1.295, screen locked): claude in a new folder, 0 hooks while the dialog shows, 1 trust card from the daemon's scan with the folder, the shipped Swift executor pressed Trust (screen read before each key), SessionStart arrived, card confirmed. Unit: lookalike screens for another folder or above Claude's prompt open nothing; git remote credentials removed. iTerm2, live on 2026-10-09 with the screen unlocked: the Mac app's peek jobs read that 1 tab, 1 trust card, Trust pressed, SessionStart arrived (test/live/trust-reopen.mjs --host iterm2, 15 of 15) | 052935f |
9 October 2026 |
| Agents in the terminal you already use | iTerm2 typed live; tmux and herdr paths unit tested; Terminal focus only (D-076) | 0787d11 |
9 October 2026 |
| Expert view | Expert spec tests 1 to 17 at 1440 and 1728, day and night | a2622f7 |
9 October 2026 |
| Shared context across agents | Core tests for state, decisions and packs (core 367 tests); end-to-end smoke: topic_brief over MCP and bp import of 2 continuity files through the daemon | f9a3d1f |
8 October 2026 |
| Handoffs with a contract and acceptance checks | Builder 2 tests (delegate, handoffs, stop cards, checks) and 1 live Codex review run in the smoke test | f9a3d1f |
8 October 2026 |
| Review by a second model family | bp second-opinion: Codex reviewed a Claude draft live in 2 rounds, round 2 resumed the same session; reviewer family checked in tests | 521e6e4 |
9 October 2026 |
| Browser lanes | Browser lane spec tests, and 1 live run on this Mac: bp delegate codex --mode browser took the Edge lane, Codex read example.com in Microsoft Edge ("Example Domain"), the lane receipt names edge and codex, and the lane was free afterwards | 16feb6f |
9 October 2026 |
| 1 connections page for MCP | Real MCP scan of Claude (21), Codex (5) and Grok (3); add, check and undo per agent in a temp home | 58e9d5f |
9 October 2026 |
| Incoming asks from Slack | 4 real watcher runs on a real Slack workspace: 7 correct cards, 0 dropped, drafts only, no send tool | 58e9d5f |
9 October 2026 |
| Standing answers and shared rules | Builder 1 tests for standing answers and decisions, builder 3 tests for rules | f9a3d1f |
8 October 2026 |
| Autopilot | Ladder tests (packages/core/src/policy), Autopilot e2e journeys | f9a3d1f |
8 October 2026 |
| Receipts and undo | Receipts tests and the Undo e2e journeys (toast, Done today, Autopilot receipt) | f9a3d1f |
8 October 2026 |
| Skills library across agents | Make it work everywhere: diff, backup, install on 1 press and Undo for Claude Code, Codex and Grok | f9a3d1f |
9 October 2026 |
| Voice | plan row 3.14: Apple speech on device (SpeechAnalyzer) turns a say-generated sentence into text through the bar's in-memory path with no permission prompt; the screen capture argv; the bar takes text; a live Codex run answered a question about an attached screenshot (EUR 1,284.60) | 24165f4 |
9 October 2026 |
| Talk to an agent by name | Every live session gets a unique name (NATO, or the user's own list), shown on the tmux window; a request starting with a name is held 2 s and typed into that 1 session by the shipped Swift executor; a speech error 1 letter off reaches the right session; a name nobody holds types nothing. Live on this Mac: test/live/crew-route.mjs, 13 of 13, 2 real Claude Code sessions in scratch tmux sessions | 1c083a7 |
9 October 2026 |
| Speech with an open model on the Mac | Parakeet v3 (parakeet-mlx 0.5.2 on MLX) in the shipped worker with the network denied: 10 phrases made with macOS say (5 English, 5 French), word error rate 5.2 % English and 1.5 % French, median 81 to 103 ms per clip, 10 of 10 names routed; Apple speech 8.7 % and 4.6 %, 162 ms; Whisper large-v3-turbo 3.6 % and 1.5 %, 423 ms (test/live/voice-compare.mjs) | 1c083a7 |
9 October 2026 |
| iPhone | plan row 3.15: WebKit with the iPhone 15 profile pairs through the QR link against a local relay and a real daemon, answers a card, a high-risk card stays on the Mac, revoke unpairs (27 of 27 with the Android journey); push, tamper, replay and revoke unit tests | 24165f4 |
9 October 2026 |
| Linux servers | Real ssh into a Lima Ubuntu 26.04 arm64 VM: bp node add, pairing words on the Allow card, a waiting agent in a real tmux pane becomes 1 card, the answer typed into the pane, no new listening port, socket 0600 (10 of 10). x86_64 on a Vercel Sandbox (fleet README section 7) | 24165f4 |
9 October 2026 |
| Topics for business work | Dropbox import on a real Mac: 119 files read, 0 changed; 1 pilot topic with the continuity writer on; Edge lease tests | f9a3d1f |
8 October 2026 |
| Phone in any browser, with notifications | Phone journey against production with headless phones: pairing, sealed cards, hold and answer (25 of 25) | 5b41b8c |
9 October 2026 |
| Works while the Mac sleeps | apps/relay/scripts/fleet-check.mjs with the production relay handler on the production private Blob store: 11 of 11, including 2 daemons paired, an answer across Macs, takeover of phone requests with daemon A stopped, an unpaired send refused, 2 concurrent sends for 1 slot accept exactly 1. Linux nodes queue questions in their outbox (fleet-node tests). Release step: FLEET_RELAY=1 on the brainplane-relay deploy (D-106) | 052935f |
9 October 2026 |
| Linux agents without herdr | The node file on real Linux (Vercel Sandbox, x86_64): pairing, pane binding, a typed answer into tmux, a run, 0 inet sockets | a946c34 |
9 October 2026 |
| What leaves your Mac | Daemon tests: 127.0.0.1 and a 0600 socket only, Host and Origin guard. Scan of packages/daemon/src on 2026-10-09: no outbound fetch call | f9a3d1f |
9 October 2026 |
| Account and cloud service | Email code account, licences and Macs (commerce API suite); optional relay with ciphertext only | 7c465b4 |
9 October 2026 |
| No usage analytics in the app | apps/site/scripts/check.mjs: no analytics or crash reporting SDK in packages or apps/macos/Sources; on the site, Google Analytics only in apps/site/src/analytics.js, with 0 request to Google before Accept or after Reject (consent checks) | f9a3d1f |
9 October 2026 |
| Email sign-in and My account | Email code sign-in and My account on the test preview, day and night at 1440 and 390 | 7c465b4 |
9 October 2026 |
| End-to-end encryption for Mac agents | Sealed envelopes for every relay and fleet message; a scan of the production relay store found 0 card words | 5b41b8c |
9 October 2026 |
| Notification text | The push payload carries only the generic line; restricted topics show "Restricted item" | 5b41b8c |
9 October 2026 |
| Screenshots stay with your agent | Captures in the owner-only shots folder, passed only into the goal of the run the user presses | 3bb6988 |
9 October 2026 |
| Secret guard | Store tests: guard on the whole envelope, IBAN mask, damaged line refused (packages/core) | f9a3d1f |
8 October 2026 |
| Price | Same as pricing_confirmed | 9f68c8e |
8 October 2026 |
The code and the full test reports are private. Ask for a row's report at hello@brainplane.app.