TL;DR Si Claude Code te pide confiar en la carpeta cada vez que lo abres, mira la ruta del aviso: si es tu directorio home, esa respuesta no se guarda nunca. Haz
cdal proyecto antes de escribirclaudey preguntará una sola vez. No pongas a mano la entrada del home atrue: confiarías en todas las carpetas que cuelgan de él.
Claude Code guarda la confianza por directorio, y para tu home no la guarda nunca. Cuando aceptas el aviso en un proyecto, escribe hasTrustDialogAccepted: true para esa ruta en ~/.claude.json y no vuelve a preguntar. Cuando lo aceptas en ~, mantiene la respuesta solo durante esa sesión, así que el siguiente arranque empieza de cero. La documentación lo dice sin rodeos: no hay ningún ajuste que lo haga persistir. No es un bug, y buscar una opción no lo arregla.
Se nota sobre todo donde cada terminal nueva se abre en el home: una pestaña nueva en macOS o Linux, PowerShell en Windows. Escribes claude sin hacer cd antes, y la pregunta vuelve.
El aviso que vuelve
Esto es lo que muestra Claude Code v2.1.312 al arrancar en un directorio home sin respuesta guardada, capturado en un home de prueba (/home/dev) con la configuración vacía:
Accessing workspace:
/home/dev
Quick safety check: Is this a project you created or one you trust? (Like your own code, a
well-known open source project, or work from your team). If not, take a moment to review what's in
this folder first.
Claude Code'll be able to read, edit, and execute files here.
Security guide
❯ No, exit
Yes, I trust this folder
Enter to confirm · Esc to cancel
La opción marcada de entrada es No, exit. Acéptalo en el home, sal y vuelve a arrancar: la misma pantalla, palabra por palabra.
Qué se guarda, y para qué carpeta
Tras aceptar el aviso una vez en el home y otra en un repositorio git en ~/code/api, esto es lo que contiene ~/.claude.json:
jq '.projects | map_values(.hasTrustDialogAccepted)' ~/.claude.json
{
"/home/dev": false,
"/home/dev/code/api": true
}
El home sigue en false aunque dijiste que sí. Lo demás depende de dónde arranques, probado en v2.1.312:
Dónde arrancas claude |
Cada cuánto pregunta | Qué guarda |
|---|---|---|
| Tu directorio home | En cada arranque | Nada, la entrada se queda en false |
Cualquier carpeta dentro de un repositorio git, src/ incluida |
Una vez | La raíz del repositorio, así que cubre el repo entero |
| Una carpeta normal fuera de cualquier repositorio | Una vez | Esa carpeta, y sus subcarpetas dejan de preguntar |
| Un repositorio git dentro de una carpeta en la que ya confías | Una vez más, para ese repo | La raíz de ese repositorio |
claude -p |
Nunca | Nada, y las reglas allow del proyecto siguen ignoradas |
Que arranques en src/ y se guarde la raíz es lo que quieres: un repo en el que confías una vez queda cubierto lo abras donde lo abras. La última fila explica por qué las reglas del .claude/settings.json de un proyecto parecen no funcionar en un script, y lo cubre el tip de los permisos con comandos encadenados.
Cómo dejar de contestarlo
1. Arranca Claude Code desde la carpeta del proyecto
cd ~/code/api
claude
La primera vez pregunta; a partir de ahí no, ni en ese repo ni en ninguna de sus subcarpetas.
2. Haz que tu terminal se abra donde trabajas
Si siempre aterrizas en el home, cambia la carpeta de inicio en lugar de la costumbre. En Windows Terminal, el ajuste del perfil es startingDirectory. En VS Code, la terminal integrada ya se abre en la carpeta del workspace, así que ejecutar claude ahí nunca cae en el caso del home.
3. Confía en una carpeta padre solo si no hay nada desconocido dentro
Confiar en una carpeta normal como ~/code cubre sus subcarpetas que no son repositorios. Cada repositorio de dentro sigue preguntando una vez, porque un repo anidado siempre necesita su propia respuesta.
4. No pongas el home a true a mano
La documentación explica cómo confiar en una carpeta a mano, projects["<ruta>"].hasTrustDialogAccepted en ~/.claude.json, para casos como claude -p. Hecho con el home, en v2.1.312 funciona: el aviso desaparece. Pero también dejó de preguntar en ~/other, una carpeta nueva sin respuesta propia. Todas las carpetas del home que no son un repositorio heredan esa confianza, incluida una descarga recién descomprimida, y la confianza de una carpeta padre basta para que se ejecuten sus hooks y su bloque env. El aviso repetido es el precio de no confiar de golpe en todo lo que tienes.
5. Si una carpeta de proyecto vuelve a preguntar, actualiza
Si la ruta del aviso no es el home y ya lo aceptaste, la respuesta guardada se perdió. Versiones anteriores la perdían de tres formas, corregidas en el changelog:
- v2.1.259: las sesiones abiertas a la vez revertían el
~/.claude.jsonde las otras, y la confianza se reiniciaba. - v2.1.284: arrancando en el home, el aviso salía una segunda vez tras cambiar de renderer o actualizar.
- v2.1.299: en Linux, un comando en sandbox que dejaba un
.config.jsonvacío hacía que el login, los servidores MCP y la confianza parecieran perdidos.
Comprueba tu versión con claude --version y ejecuta claude update. Después ejecuta el jq de arriba para confirmar que la ruta del proyecto ya tiene true.
Documentación oficial: Security: trust verification