Saltar al contenido principal
Las variables de entorno pueden controlar el comportamiento de Claude Code, como la selección de modelo, autenticación, enrutamiento de solicitudes y alternadores de características. Muchos de los mismos comportamientos también se pueden configurar a través de un campo de archivo de configuración, una bandera CLI o un comando en sesión como /model. Esta página cubre cómo:

Establecer variables de entorno

Una variable que estableces en tu shell dura durante esa sesión de terminal, mientras que una variable en un archivo de configuración se aplica cada vez que se ejecuta claude.

Establecer variables en tu shell

Establece la variable antes de lanzar claude:
Para establecerla para cada sesión, agrega la línea export a ~/.bashrc, ~/.zshrc, o el archivo de perfil de tu shell.
La línea de asignación no imprime nada en caso de éxito. Para confirmar que la variable está establecida, imprímela en el mismo shell:

Establecer variables en archivos de configuración

Agrega variables bajo la clave env en un archivo settings.json, creando el archivo si no existe. Claude Code las lee directamente del archivo, por lo que surten efecto sin importar cómo se haya lanzado claude. Una sesión en ejecución aplica valores nuevos y modificados a su entorno cuando guardas el archivo, pero una característica que lee sus variables una sola vez al inicio, como monitoreo de OpenTelemetry, mantiene sus valores de inicio hasta que relances. Eliminar una variable del archivo no la desestablece en una sesión en ejecución; la eliminación surte efecto la próxima vez que lances claude.
~/.claude/settings.json
Claude Code copia estos valores en su entorno tal como están escritos. Ningún shell los procesa, por lo que abreviaturas como ~ o $HOME se mantienen tal como se escribieron. Para una variable que recibe una ruta, como CLAUDE_CONFIG_DIR, escribe la ruta absoluta: "CLAUDE_CONFIG_DIR": "/home/you/.claude-work". El archivo que elijas controla a quién se aplican las variables: Consulta Archivos de configuración para saber dónde vive cada archivo y Precedencia de configuración para saber cómo se combinan cuando más de uno establece la misma variable.

Precedencia

Algunos comportamientos tienen tanto una variable de entorno como una clave de configuración dedicada, y cuál lee primero Claude Code difiere según la clave. Para ANTHROPIC_MODEL y CLAUDE_CODE_AUTO_CONNECT_IDE, Claude Code lee primero la variable y utiliza la configuración model o autoConnectIde solo cuando la variable no está establecida. Para el par que está configurando, verifique la fila de la variable a continuación y la entrada de la clave en la referencia de configuración. Cuando la misma variable se establece tanto en su shell como en un bloque env de archivo de configuración, se aplica el valor del archivo de configuración en la mayoría de las sesiones. Claude Code escribe cada entrada env en el entorno del proceso, reemplazando el valor heredado del shell. Cómo los valores env interactúan con su shell cubre las sesiones que mantienen el valor heredado en su lugar, y la configuración env indica cuándo se aplica. Algunas variables tienen casos especiales; la configuración env enumera las excepciones. En un archivo de configuración puede establecer una variable pero no puede eliminar una. Para anular una variable que no puede desestablecer, como una CLAUDE_CODE_USE_VERTEX obsoleta exportada por un perfil de shell que no controla, establézcala en una cadena vacía en el bloque env: "CLAUDE_CODE_USE_VERTEX": "". Claude Code trata el valor vacío como no establecido para la selección de proveedor. Los subprocesos aún heredan el valor vacío. Entre archivos de configuración, los valores env siguen la precedencia de configuración, por lo que una entrada de configuración administrada anula la misma variable en la configuración de usuario o proyecto. La configuración de proyecto y local no puede establecer algunas variables, como CLAUDE_CONFIG_DIR y las variables del exportador de OpenTelemetry. Variables que Claude Code ignora en env las enumera, junto con los valores de desactivación de OpenTelemetry que aún se aplican. Cómo una variable de entorno interactúa con banderas CLI y comandos en sesión varía según la característica: --model y /model anulan ANTHROPIC_MODEL, mientras que CLAUDE_CODE_EFFORT_LEVEL anula --effort y /effort. Cuando una variable interactúa con otra fuente de configuración, su fila en la lista Variables indica la precedencia o vincula a la página que la documenta. Claude Code lee las variables de entorno del shell al iniciar, por lo que los cambios en ellas surten efecto la próxima vez que inicies claude. Las variables establecidas bajo la clave env en archivos de configuración se vuelven a aplicar a una sesión en ejecución cuando el archivo cambia, con la excepción de solo inicio descrita en Establecer variables en archivos de configuración.

Variables

Las variables numéricas, como tiempos de espera, presupuestos de tokens y recuentos de reintentos, aceptan notación científica y separadores de dígitos además de dígitos simples, excepto cuando la fila de una variable indica que solo acepta dígitos simples. Por ejemplo, Claude Code lee 2e3 como 2000 y 64_000 como 64000. Antes de v2.1.211, estas formas podían establecer silenciosamente un valor mucho menor, como 1e6, que establecía un tiempo de espera de 1.
Para las variables que activan o desactivan un comportamiento, establece 1, true, yes u on para activarlo y 0, false, no u off para desactivarlo, con cualquier combinación de mayúsculas y minúsculas.Algunas variables solo comprueban si las estableciste o no, por lo que cualquier valor no vacío, incluido 0, activa el comportamiento, y para desactivarlo debes eliminar la variable o establecerla en un valor vacío. Estas variables funcionan de esa manera:
  • CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
  • DISABLE_TELEMETRY
  • DISABLE_ERROR_REPORTING
  • CLAUDE_CODE_TMUX_TRUECOLOR
  • IS_DEMO
La fila de cada variable también indica su propia regla.
También se admiten las variables estándar de los exportadores de OpenTelemetry (OTEL_METRICS_EXPORTER, OTEL_LOGS_EXPORTER, OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_PROTOCOL, OTEL_EXPORTER_OTLP_HEADERS, OTEL_METRIC_EXPORT_INTERVAL, OTEL_RESOURCE_ATTRIBUTES y las variantes específicas de cada señal). Consulta Monitoreo para ver los detalles de configuración. Establece CLAUDE_CODE_ENABLE_TELEMETRY y las variables de OpenTelemetry que activan la exportación, eligen su destino o capturan contenido en tu shell, en la configuración de usuario o en la configuración administrada. Claude Code las ignora en la configuración de proyecto y local, salvo los valores de desactivación que describe esa sección. OTEL_RESOURCE_ATTRIBUTES y las variables de intervalo, tiempo de espera y compresión de la exportación, como OTEL_METRIC_EXPORT_INTERVAL, siguen aplicándose desde la configuración de proyecto y local.

Qué elimina la depuración del entorno de los subprocesos

Cuando estableces CLAUDE_CODE_SUBPROCESS_ENV_SCRUB en 1, Claude Code elimina las credenciales de los entornos de los subprocesos que inicia, como los comandos de Bash, los hooks y los servidores MCP stdio. Esto reduce lo que un ataque de inyección de prompts puede leer. El proceso de Claude Code conserva las credenciales para sus propias llamadas a la API. La depuración reconoce una credencial por el nombre de su variable o por la forma de su valor, así que úsala como una capa más junto con reglas de permisos acotadas, en lugar de como el único control. La tabla muestra lo que hace la depuración con algunas variables de ejemplo: Como la depuración deja intacto GITHUB_TOKEN, asigna a un trabajo de GitHub Actions los permissions más restringidos que necesite. Para eliminar un token de GitHub de los comandos de Bash que se ejecutan en el sandbox, agrega una entrada deny en sandbox.credentials. No establezcas la depuración si un subproceso necesita alguna de las variables eliminadas. En Linux, la depuración también ejecuta los subprocesos de Bash en un espacio de nombres PID aislado para que no puedan leer los entornos de los procesos del host a través de /proc. Como efecto secundario, ps, pgrep y kill no pueden ver los procesos del host ni enviarles señales. Antes de la v2.1.251, la depuración eliminaba ANTHROPIC_API_KEY y AWS_SECRET_ACCESS_KEY y dejaba sin cambios las demás variables de ejemplo de la tabla.

Funciones que requieren la obtención de feature flags

Claude Code activa algunas funciones mediante feature flags que obtiene de Anthropic. Claude Code omite esa obtención en estas sesiones:
  • Una sesión en la que estableces CLAUDE_CODE_DISABLE_FEATURE_FLAGS, DISABLE_TELEMETRY, DO_NOT_TRACK o CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC; la fila de cada variable en la tabla de variables indica qué valores desactivan la obtención
  • Una sesión en un proveedor externo, como Amazon Bedrock, Claude Platform on AWS, Google Cloud’s Agent Platform o Microsoft Foundry, a menos que una plataforma anfitriona que integre Claude Code establezca CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST
  • Una sesión del gateway de aplicaciones de Claude
Con la obtención desactivada, no puedes:

Primera sesión después de una instalación o actualización

En tu primera sesión después de instalar Claude Code, o de actualizar a una versión que añade una función, puede faltar una función controlada por flags. Cuando Claude Code obtiene sus feature flags durante esa sesión, los guarda en la máquina, de modo que tu siguiente sesión en esa máquina tiene la función. En configuraciones como estas, las sesiones posteriores a la primera también se inician sin flags recién obtenidos:
  • Un entorno limpio en cada ejecución: si cada ejecución se inicia en un contenedor de CI, o en cualquier otro entorno sin los flags que guardó una sesión anterior, cada ejecución es una primera sesión
  • Un token de gateway sin clave de API: si te autenticas con ANTHROPIC_AUTH_TOKEN y sin clave de API, y ANTHROPIC_BASE_URL apunta a un host distinto al de Anthropic, como un gateway de LLM, Claude Code no tiene ninguna credencial con la que obtener los flags

Véase también