TL;DR Arranca con
CLAUDE_CODE_EXPERIMENTAL_CODE_MODE=1 claude, acepta el aviso y confirma en/statusque diceCode Mode: on. En la v2.1.323, con la misma configuración, cada petición salió con unos 14.000 tokens menos de contexto. A cambio, esa sesión solo se reanuda con Code Mode puesto y pierde Remote Control, Chrome y el segundo plano.
Code Mode es el modo experimental que llegó con la v2.1.323 el 12 de noviembre: Claude deja de llamar a Read, Bash o Edit de una en una y escribe JavaScript que las llama. El script se ejecuta en local, y a la conversación vuelve lo que devuelve o imprime, no todo lo que leyó por el camino. Viene apagado: o lo activas tú, o no existe.
Qué cambia en una tarea real
La misma petición en dos sesiones de Opus 5.5 en medium, idénticas salvo por Code Mode: una carpeta orders/ con 40 JSON diarios, y la pregunta de qué tres clientes gastaron más en pedidos pagados. Con Code Mode, este es el script con el que Claude sacó los totales:
const t = {};
for (const f of files) for (const o of JSON.parse(await file('orders/' + f).text()))
if (o.status === 'paid') t[o.customer] = (t[o.customer] || 0) + o.amount;
Object.entries(t).map(([c, v]) => [c, Math.round(v * 100) / 100]).sort((a, b) => b[1] - a[1])
Leyó los 40 archivos dentro del script, y lo único que volvió a la conversación fue la lista de ocho clientes con su total. files lo había definido un script anterior: las variables sobreviven de un script al siguiente.
| Sin Code Mode | Con Code Mode | |
|---|---|---|
| Peticiones al modelo | 4 | 4 |
| Tokens de entrada en la primera | 36.404 | 22.233 |
| Tokens de entrada en total, caché incluida | 150.364 | 94.659 |
| Tokens de salida | 1.172 | 1.213 |
| Tiempo | 15 s | 37 s |
| Resultado | initech, umbrella, acme | initech, umbrella, acme |
El ahorro no vino de hacer menos turnos: sin Code Mode, Claude también escribió un script, en Python y por Bash. Vino del contexto fijo. En Code Mode el modelo recibe dos herramientas, REPL (ejecuta el JavaScript) y Poll (recoge resultados), y las demás le llegan descritas como funciones de JavaScript dentro de REPL, en una forma más corta. Esa diferencia viaja en cada petición: cuantas más tenga una tarea, más tokens suma, aunque después de la primera casi todos son lecturas de caché, que cuestan menos. Una ejecución de cada no es un benchmark, y en esta Code Mode tardó más.
Lo compruebas en tu sesión con /context después de la primera respuesta (antes de ella, la cifra de Code Mode sale estimada a la baja):
Sin Code Mode ⛁ System tools: 24.6k tokens (2.5%)
Con Code Mode ⛁ System tools: 11.1k tokens (1.1%)
Cómo activarlo
1. Arranca con la variable
CLAUDE_CODE_EXPERIMENTAL_CODE_MODE=1 claude
Para dejarlo fijo, ponla en el bloque env de ~/.claude/settings.json. En el .claude/settings.json del proyecto no sirve: Claude Code la ignora sin avisar. Usa 1 como valor.
2. Acepta el aviso
La primera vez sale un diálogo titulado Code Mode (experimental), con el foco en No, start without it. Baja a Yes, turn on Code Mode y pulsa Enter. Lo que te avisa, en resumen: es un experimento que puede cambiar o desaparecer en cualquier versión, una sesión que empiezas en Code Mode solo se reanuda con Code Mode puesto (ni las sesiones en la nube ni las apps de Claude pueden continuarla), y en auto mode la revisión de seguridad lee cada script una vez antes de ejecutarlo, no cada herramienta que el script llama después. Si trabajas en auto mode, ese es el cambio de fondo. Si dices que sí, se guarda y no vuelve a preguntar; si dices que no, pregunta en cada arranque mientras la variable siga puesta.
3. Confirma que está activo
Al arrancar sale esta línea:
⚠ Code Mode (experimental) is on · this session can be resumed only with Code Mode on
Y /status lo dice con su origen:
Code Mode: on (experimental) · CLAUDE_CODE_EXPERIMENTAL_CODE_MODE in the shell environment
Dentro de la sesión, la pantalla resume igual que siempre (Read 40 files, listed 1 directory). Con ctrl+o ves cada script como una entrada Code(...) y, debajo, las herramientas que llamó.
4. Para apagarlo, quita la variable de donde la pusiste, o arranca con CLAUDE_CODE_EXPERIMENTAL_CODE_MODE=0 en la shell, que manda sobre settings.json.
Lo que pierdes mientras está activo
| Situación | Qué pasa |
|---|---|
| Reanudar la sesión sin Code Mode | No se abre: te da el comando con la variable para hacerlo |
claude -p, sesiones en la nube de claude.ai |
isn't available: for now it only works in the interactive terminal y arranca normal |
| Remote Control | La sesión no se conecta: sal y arranca con la variable a 0. Si arrancas ya con Remote Control, es Code Mode el que no se activa |
| Claude in Chrome y computer use | Desactivados en esa sesión |
| Pasarla a segundo plano, a Claude Desktop o a la nube | No se puede mover |
| Un plugin con hooks de JavaScript que revisan llamadas | Code Mode no arranca, o rechaza las llamadas del script: desactiva el plugin con /plugin |
Este es el mensaje al reanudar una sesión de Code Mode sin la variable:
This session was started in Code Mode (experimental), which is off, so it can't be resumed.
To resume it, run:
CLAUDE_CODE_EXPERIMENTAL_CODE_MODE=1 claude --resume 4a4353fb-1b39-4123-bfa0-25ea4278401e
Si no se activa
Al arrancar sale Code Mode (experimental) isn't available: seguido del motivo, y la sesión empieza con las herramientas de siempre. Los que te puedes encontrar en el día a día:
| Motivo en pantalla | Qué hacer |
|---|---|
for now it only works with Opus 5.5, Sonnet 5.5 and later models |
Vuelve a arrancar con uno de esos modelos, por ejemplo claude --model opus |
for now it only works with the Anthropic API |
En Bedrock, Vertex o Foundry no hay Code Mode |
for now it doesn't work with an API key helper, ANTHROPIC_AUTH_TOKEN or custom auth headers |
Arranca sin ellos |
it can't be used together with agent teams yet |
Arranca sin agent teams |
it needs settings that Claude Code downloads from Anthropic |
Quita DISABLE_TELEMETRY, DO_NOT_TRACK, CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC o CLAUDE_CODE_DISABLE_FEATURE_FLAGS |
OpenTelemetry is on |
Quita CLAUDE_CODE_ENABLE_TELEMETRY o ENABLE_BETA_TRACING_DETAILED, también del env de tus settings |
it isn't open to your account yet, or Claude Code couldn't check whether it is |
Si tu cuenta aún no lo tiene, espera; si falló la comprobación, vuelve a arrancar |
Documentación oficial: Changelog, v2.1.323. La página que enlaza,
code-mode, todavía respondía 404 el 13 de noviembre.
Probado con Claude Code v2.1.323 en Linux, el 13 de noviembre de 2026.