El archivo de configuración de Claude Code vive en ~/.claude/settings.json. Dentro lleva un bloque "env" donde defines variables de entorno que Claude Code lee al arrancar. Los valores van siempre entre comillas, y cualquier cambio exige cerrar y volver a abrir Claude Code: las variables se leen una sola vez, al inicio de la sesión.
Claude Code lee su configuración de `~/.claude/settings.json`. La virgulilla es tu carpeta de usuario, así que la ruta completa se parece a `/Users/tunombre/.claude/settings.json` en Mac o `C:\Users\tunombre\.claude\settings.json` en Windows.
Dos cosas que confunden a todo el mundo la primera vez:
Un `settings.json` que solo define variables de entorno se ve así, completo:
```json
{
"env": {
"CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT": "0"
}
}
```
Las reglas que hacen que esto no se rompa:
Si ya tenías cosas en el archivo, `env` convive con ellas como una clave más:
```json
{
"model": "opus",
"env": {
"CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT": "0"
}
}
```
Es el interruptor que decide si el modelo recibe el system prompt completo o el recortado. Y va al revés de lo que la intuición dice:
| Valor | Qué recibe el modelo |
|---|---|
| `"0"` (falso) | el system prompt completo |
| `"1"` (verdadero) | el system prompt recortado |
Se lee así: la variable pregunta "¿quieres el prompt simple?". Contestar que no (`"0"`) es pedir el largo.
Importa porque, desde la generación 5, Claude Code manda el prompt recortado por defecto a modelos como Opus 5 y Fable 5. Anthropic lo publicó en su blog en julio de 2026: quitaron más del 80% del system prompt para esos modelos, sin pérdida medible en sus evaluaciones de código. La consecuencia visible es de forma, no de corrección: respuestas más largas y con menos disciplina de tono.
Cuando la misma variable está definida en varios sitios, gana la más cercana a la sesión:
Para probar algo rápido sin tocar archivos, exportarla en la terminal y lanzar `claude` ahí mismo es la vía más limpia: cierras esa terminal y todo vuelve a como estaba.
Las variables de entorno se leen una sola vez, cuando arranca la sesión. Editar el archivo con Claude Code abierto no hace nada. Hay que cerrarlo del todo y volver a abrirlo.
Este es el motivo más común por el que alguien escribe la línea correcta y jura que no funciona.
No hace falta nada sofisticado. Hazle la misma pregunta corta dos veces: una con la variable puesta y otra sin ella, en sesiones nuevas las dos. Algo como "responde solo sí o no: ¿este archivo usa async?".
Si la longitud y la forma de la respuesta cambian de manera evidente, tenías el prompt recortado. Si no cambia nada, o tu modelo ya recibía el completo, o el archivo tiene un error de sintaxis y Claude Code lo está ignorando.
Para descartar lo segundo, valida el JSON antes de dar nada por sentado:
```bash
python3 -m json.tool ~/.claude/settings.json
```
Si te devuelve el contenido ordenado, el archivo es válido. Si te devuelve un error, ahí está el problema —casi siempre una coma de más.
Si usas Claude Code sobre todo para escribir código, considera dejarlo como viene. Ese recorte fue deliberado y Anthropic afirma haberlo medido sin pérdida en programación; devolverlo es reintroducir instrucciones que ellos ya descartaron. El caso donde de verdad se nota a favor es el otro: cuando usas Claude Code para pensar, redactar y discutir contigo.