CLIs reales, contexto real
Cada agente corre en su propio panel, con su propio HOME, su propio auth, su propio acceso al filesystem. Sin un middleware sanitizando tu prompt.
No sabés a qué modelo creerle en este refactor. No elijas. Pregúntales a los tres. Así es como los equipos usan Claude, Gemini y Codex lado a lado sin cambiar de pestaña.
Pegás a mano el mismo prompt en la web de Claude, después en una pestaña de Gemini, después en una terminal con Codex. Alt-tab entre tres ventanas tratando de diffear mentalmente tres respuestas distintas. Para cuando las comparaste, te olvidaste qué estabas preguntando originalmente. El sentido de usar tres modelos era ir más rápido. Pero es más lento que elegir uno.
Apretá ⌘N tres veces. ⌘L cicla los presets de mosaico. Pará en el layout de 1 fila, 3 columnas. Ahora tenés tres paneles, cada uno listo para una CLI de modelo distinta.
❯ ❯ ❯ Abrí Spotlight con ⌘K, buscá tu snippet guardado (por ejemplo, compare-implementations). El cuerpo usa variables como {{file}} y {{constraint}}, resueltas desde el contexto de Nest. Sin pegar a mano.
Compare three implementations of {{file}}. Constraint: {{constraint}}. Be terse. Flag any off-by-one or auth leak.
Apretá ⌘B. El mismo prompt se dispara en Claude, Gemini y Codex en simultáneo. Cada uno empieza a generar independientemente. Sin relays, sin proxies.
Compare three implementations of src/auth.ts. Constraint: must not leak tokens to logs. Be terse. Flag any off-by-one or auth leak.
Mientras stremean los tokens, vas escaneando los tres paneles. Claude es conservador. Gemini propone un refactor que no esperabas. Codex termina primero pero con un off-by-one sutil. Lo ves todo a la vez. Sin cambiar de pestaña, sin diffear en tu cabeza.
❯ 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. ❯
¿Lo ves? El loop de Codex arranca en i = 1. Off-by-one. El wrapper de Gemini es el ganador real.
Copiá las mejores líneas a tu editor, o decile al panel activo que aplique la respuesta de otro. Los paneles de Nest comparten worktree, así que el modelo que tipea el patch no tiene que ser el mismo que lo escribió.
❯ 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 ❯
Dejás de adivinar a qué modelo creerle. Los hacés discutir y elegís al ganador. En el peor caso, ahorraste uno de tres intentos. En el mejor, agarraste un bug que ninguno de ellos habría agarrado solo, porque la segunda opinión estaba corriendo en el panel de al lado, no en una pestaña que te olvidaste de abrir.
Cada agente corre en su propio panel, con su propio HOME, su propio auth, su propio acceso al filesystem. Sin un middleware sanitizando tu prompt.
Traé tus propias API keys, o usá tus suscripciones existentes. Nest nunca ve un token.
Cuando sale un modelo nuevo, funciona en Nest el día que existe su CLI. Sin esperar una integración.
Gratis durante el lanzamiento. Sin tarjeta de crédito. Funciona con las herramientas que ya tenés, y con las que no sabías que necesitabas.