Real CLIs, real context
Each agent runs in its own pane, with its own HOME, its own auth, its own filesystem access. No middleware sanitizing your prompt.
You're not sure which model to trust on this refactor. Don't pick. Ask all three. Here's how teams use Claude, Gemini and Codex side-by-side without the tab-switching.
You hand-paste the same prompt into Claude's web UI, then a Gemini tab, then a terminal running Codex. You alt-tab between three windows trying to mentally diff three different answers. By the time you've compared them, you've forgotten what you were originally asking. The whole point of using three models was to be faster. Instead it's slower than picking one.
Hit ⌘N three times. ⌘L cycles through tiling presets. Stop at the 1-row, 3-column layout. You now have three panes, each ready for a different model CLI.
❯ ❯ ❯ Open Spotlight with ⌘K, search for your saved snippet (for example, compare-implementations). The body uses variables like {{file}} and {{constraint}}, resolved from Nest context. No manual paste.
Compare three implementations of {{file}}. Constraint: {{constraint}}. Be terse. Flag any off-by-one or auth leak.
Hit ⌘B. The same prompt fires into Claude, Gemini and Codex simultaneously. Each one starts generating independently. No relay, no proxy.
Compare three implementations of src/auth.ts. Constraint: must not leak tokens to logs. Be terse. Flag any off-by-one or auth leak.
As tokens stream in, you scan all three panes. Claude is conservative. Gemini proposes a refactor you didn't expect. Codex finishes first but with a subtle off-by-one. You see all of it at once. No tab-switching, no diffing in your head.
❯ compare three implementations… Safest: option B. - explicit redact() before log - throws on missing secret - no token in error messages Option A leaks via console.error on the catch branch. Don't ship. ❯
❯ compare three implementations… All three miss the obvious fix: move token handling behind a SecretBox wrapper. Then logs can't see it by construction. Patch: - new lib/secret-box.ts - swap raw strings in A, B, C ❯
❯ compare three implementations… B is best. Apply: for (let i = 1; i <= n; i++) { rotate(tokens[i]); } Done in 4 lines. ❯
Spot it? Codex's loop starts at i = 1. Off-by-one. Gemini's wrapper is the real winner.
Copy the best lines into your editor, or just tell your active pane to apply someone else's answer. Nest panes share a worktree, so the model that types the patch doesn't have to be the one that wrote it.
❯ apply the gemini answer to src/auth.ts Reading pane 2 transcript… Creating lib/secret-box.ts… Patching src/auth.ts (3 hunks)… Running npm test… 12 passed ❯ git commit -am "auth: wrap tokens in SecretBox" [feat/auth abc1234] auth: wrap tokens in SecretBox ❯
You stop guessing which model to trust. You let them argue and pick the winner. Worst case, you saved one of three tries. Best case, you caught a bug none of them would've caught alone, because the second opinion was running on the next pane over, not in a tab you forgot to open.
Each agent runs in its own pane, with its own HOME, its own auth, its own filesystem access. No middleware sanitizing your prompt.
Bring your own API keys, or use your existing subscriptions. Nest never sees a token.
When a new model ships, it works in Nest the day its CLI exists. No waiting for an integration.
Free during launch. No credit card. Works with the tools you already have, and the ones you didn't know you needed.