Saltar al contenido principal
Code Mode cambia la forma en que Claude usa sus herramientas. Sin Code Mode, Claude solicita llamadas a herramientas como Bash, Read o Edit directamente y lee cada resultado antes de decidir qué hacer a continuación. Con Code Mode, Claude escribe un fragmento de JavaScript que realiza las llamadas a herramientas, y Claude Code ejecuta ese código en tu sesión.
Code Mode es experimental y está desactivado de forma predeterminada. Puede cambiar o eliminarse en cualquier versión. Para compartir comentarios, ejecuta /feedback.

Cómo funciona Code Mode

En una sesión de Code Mode, sigues describiendo tu tarea en un prompt, y Claude escribe JavaScript para llevarla a cabo. Un solo fragmento de código puede ejecutar comandos en paralelo, usar un resultado en la siguiente llamada y devolver la parte de la salida que Claude necesita leer. Por ejemplo, si le pides a Claude que aumente un límite de reintentos, Claude podría escribir este código para encontrar el archivo, editarlo y ejecutar las pruebas. La última línea devuelve a Claude la ruta del archivo y la salida de las pruebas:
En la conversación, ves las llamadas a herramientas, como el diff de la edición, y no el código. Para leer el código, presiona Ctrl+O para abrir el visor de transcripciones. Cada fragmento de código aparece ahí como una fila Code contraída, con una indicación de cómo expandirla.

Cuándo usar Code Mode

Prueba Code Mode en tareas que requieren muchas llamadas a herramientas relacionadas, como:
  • Un cambio que se repite en muchos archivos
  • Una búsqueda cuyos resultados necesitan filtrarse antes de que Claude los lea
  • Varios comandos independientes que pueden ejecutarse al mismo tiempo

Limitaciones de Code Mode

Antes de activar Code Mode, comprueba que puedes aceptar estas limitaciones:

Requisitos

  • Versión: Claude Code v2.1.323 o posterior, en cualquiera de los dos canales de versiones. Una versión anterior se inicia sin Code Mode, con o sin el motivo it isn't open to your account yet
  • Cuenta: una suscripción a Claude o una cuenta de Console. No puedes usar Code Mode a través de un gateway, Amazon Bedrock, Claude Platform on AWS, Agent Platform de Google Cloud ni Microsoft Foundry
  • Organización: tu organización no usa la configuración HIPAA ni la retención cero de datos
  • Modelo: Claude Opus 5.5, Sonnet 5.5, Haiku 5.5 o Fable 5.2
  • Superficie: una sesión interactiva de claude en una terminal. Code Mode no funciona con -p, el Agent SDK, el panel de VS Code, la aplicación de escritorio ni las sesiones en la nube
  • Instalación: la compilación nativa de Claude Code
  • Windows: Git for Windows está instalado
Tampoco puedes iniciar Code Mode con algunos ajustes activados, como un asistente de clave de API, equipos de agentes, exportación de OpenTelemetry o DISABLE_TELEMETRY. Para ver la solución de cada uno, consulta Code Mode no se inicia.

Prueba Code Mode

Activa Code Mode, dale una tarea a Claude y revisa el código que Claude escribió.
1

Comprueba tu versión

Ejecuta claude --version. Si la versión es anterior a v2.1.323, ejecuta claude update. Si estás en el canal stable y la actualización no llega a v2.1.323, espera a que stable se ponga al día o cambia a latest.
2

Inicia Claude Code con Code Mode activado

Establece la variable de entorno CLAUDE_CODE_EXPERIMENTAL_CODE_MODE en 1. Para probar Code Mode, establécela en tu shell. Para activar Code Mode en cada sesión nueva, establécela en tu configuración de usuario.
3

Confirma que quieres Code Mode

Claude Code te pide que confirmes antes de tu primera sesión de Code Mode. Selecciona Yes, turn on Code Mode. Claude Code se reinicia y muestra esta línea cerca de la parte superior de la sesión:
Si ves una línea diferente o ninguna, consulta Code Mode no se inicia.
4

Dale a Claude una tarea con muchas llamadas a herramientas

En un proyecto que conozcas, envía un prompt como este:
5

Lee el código que escribió Claude

Presiona Ctrl+O y expande una fila Code para ver el JavaScript detrás de las llamadas a herramientas. Presiona Ctrl+O de nuevo para volver a la conversación.
Para reanudar una sesión de Code Mode más tarde, mantén CLAUDE_CODE_EXPERIMENTAL_CODE_MODE establecida en 1 cuando ejecutes claude --continue o claude --resume. Con Code Mode desactivado, Claude Code se niega a reanudar la sesión. Las sesiones que iniciaste sin Code Mode se reanudan sin Code Mode, incluso con la variable establecida.

Desactiva Code Mode

Elimina CLAUDE_CODE_EXPERIMENTAL_CODE_MODE de tu shell y de ~/.claude/settings.json, y luego inicia una sesión nueva. También puedes conservar la variable y cambiar su valor a 0 en cualquiera de los dos lugares. Con un 0 en un lugar, Code Mode permanece desactivado aunque establezcas 1 en el otro.

Bloquea Code Mode para tu organización

Agrega CLAUDE_CODE_EXPERIMENTAL_CODE_MODE con el valor 0 a tu configuración administrada para que nadie en tu organización pueda usar Code Mode:
Los usuarios que estén en una sesión de Code Mode permanecen en ella hasta que salgan o reinicien Claude Code. Después de eso, tus usuarios inician sin Code Mode y no pueden reanudar sus sesiones de Code Mode mientras el 0 esté establecido. No puedes activar Code Mode para tus usuarios desde la configuración administrada.

Permisos y código de larga duración

Tu modo de permisos decide cómo se revisa el código de Claude y si puedes hablar con Claude mientras el código se ejecuta.

Comprobaciones de permisos

Cada llamada a herramienta que realiza el código de Claude pasa por tus reglas de permisos deny y ask y tus hooks PreToolUse. No necesitas cambiar una regla ni un matcher para una herramienta como Bash. Además de las reglas y los hooks, un clasificador revisa el código en el modo automático, y tú respondes a las solicitudes en los modos que preguntan: Para revisar el código en sí, escribe un hook PreToolUse que coincida con REPL, la herramienta que ejecuta el código de Claude, y lee el JavaScript de tool_input.code.
Las reglas de Bash coinciden con el texto del comando, por lo que Claude puede ejecutar un comando denegado en una forma que la regla no detecta, con o sin Code Mode. Para límites que no dependen del texto del comando, consulta sandboxing.

Código de larga duración

Mientras el código ejecuta una compilación o una prueba larga, Claude espera a que termine o lo deja continuar en segundo plano:
  • Esperando: Claude responde después de que el código termina, y el código se detiene después de diez minutos, incluido el tiempo que pasas en las solicitudes de permiso
  • Segundo plano: puedes seguir hablando con Claude, y el código puede ejecutarse hasta dos horas
Para código en segundo plano, inicia tu sesión en el modo automático o en el modo bypassPermissions. Si Claude sigue esperando, comprueba tu modo actual y cómo iniciaste la sesión:
  • Cambiaste a otro modo: presiona Shift+Tab hasta volver al modo en el que iniciaste
  • Iniciaste en otro modo, o elegiste la sesión de la lista de claude --resume: si el modo automático está disponible para ti, sal y luego ejecuta claude --continue --permission-mode auto con Code Mode activado
  • Pasaste nombres de herramientas a --tools: vuelve a iniciar en el modo automático sin ese flag

Solución de problemas

Code Mode no se inicia

Code Mode (experimental) isn't available cerca de la parte superior de la sesión significa que Claude Code se inició sin Code Mode. El motivo aparece en la misma línea, y /status también lo muestra. Busca el motivo en esta tabla, haz el cambio e inicia una sesión nueva. Para un motivo que no aparezca en la lista, revisa los requisitos. Si no ves ninguna línea sobre Code Mode, ejecuta claude --version. Si tu versión es anterior a v2.1.323, actualiza. Luego comprueba que CLAUDE_CODE_EXPERIMENTAL_CODE_MODE sea 1 en tu shell o en tu configuración de usuario, y elimina cualquier 0 de ahí y de cualquier archivo de --settings.

Solicitud de permiso con cuenta regresiva

Cuando Claude inicia más código en el modo automático mientras el código anterior aún se está ejecutando, el código anterior pierde la revisión del clasificador. Claude Code entonces te pregunta por las llamadas restantes del código anterior que necesitarían una revisión. Sin un IDE conectado, la solicitud muestra una cuenta regresiva:
Responde antes de que termine la cuenta regresiva. De lo contrario, esa llamada se rechaza, y las llamadas posteriores que mostrarían una cuenta regresiva se rechazan sin solicitud. Para volver a ver las solicitudes, envía un mensaje a Claude.

Llamada a herramienta rechazada por un hook

Si Claude informa de una llamada a herramienta rechazada, pídele el texto del error. Estos errores significan que un hook PreToolUse no dio una decisión, lo que rechaza la llamada incluso cuando onFailure no está establecido:
  • the hook failed: en una llamada desde el código de Claude, tu hook no pudo iniciarse, fue terminado, salió con 126, 127 o un código superior a 128, o devolvió un error HTTP o una salida no válida. Corrige el hook
  • the hook did not finish: se agotó el tiempo de espera de tu hook en una llamada desde el código de Claude, o en cualquier otra llamada a herramienta una vez que Claude ha ejecutado código en la sesión. Aumenta el timeout del hook
Para permitir que las llamadas continúen cuando un hook command o http falla o se agota su tiempo de espera, establece "onFailure": "continue" en él. Si un hook command sale con un código común como 1, la llamada continúa, a menos que establezcas "onFailure": "block".

Salida de código retenida por un hook

Si Claude informa del motivo de bloqueo de un hook donde esperabas la salida del código de Claude, revisa tus hooks UserPromptSubmit. Cuando el código puede ejecutarse en segundo plano, los hooks command, http y mcp_tool en ese evento también se ejecutan sobre la salida del código. Para dejar pasar la salida, cambia el hook para que no bloquee cuando source en su entrada sea poll_event.