Also in English: rosmarops.com/blog/claude-code-auto-mode-what-it-can-read/
De lo que RosmarOps encontró en mi máquina, una parte era culpa mía: permisos que había ido concediendo para no tener que aprobar cada comando. La otra parte no la había decidido yo. Venía del modo en que arranca Claude Code.
Según la documentación de Claude Code, desde la versión 2.1.283 el modo auto es el modo de permisos con el que arrancan las sesiones interactivas de terminal y de VS Code. Si no has elegido otro modo y el modo auto está disponible en tu sesión, estás en ese. Si no lo está, Claude Code arranca en modo manual.
Qué cambia
En modo auto, las lecturas y ediciones dentro del proyecto se aprueban solas. Casi todo lo demás lo decide un clasificador, que es otro modelo de IA. Solo unas pocas acciones te siguen preguntando.
No digo que esté mal. Es cómodo, y entiendo por qué existe: aprobar cada comando a mano cansa, y yo mismo fui preaprobando comandos por eso. Pero cambia la pregunta que te tienes que hacer. En modo manual es «¿qué voy a aprobar?». En modo auto es «¿a qué llega este agente sin preguntarme?». Y esa segunda pregunta yo no me la había hecho.
Cómo volver a estar en el bucle
La documentación enumera acciones que Claude Code no aprueba solo en ningún modo. Una de ellas es todo lo que coincida con una regla ask explícita. Así que una regla ask es la forma de decirle «esto, pregúntamelo siempre».
Además, la documentación da unas cuantas palancas, y son las que RosmarOps propone cuando encajan.
La primera es permissions.blockReadsOutsideWorkingDirectories. Hace que las herramientas de ficheros rechacen las rutas fuera de los directorios de trabajo, en cualquier modo. Cuando leen fuera de los directorios de trabajo, los comandos de lectura de ficheros que Claude Code reconoce en Bash preguntan, incluso en modo auto.
La segunda son las reglas Read y Edit, y aquí hay letra pequeña. La documentación dice que las reglas deny de Read y Edit se aplican a las herramientas de ficheros de Claude Code y a los comandos de ficheros que reconoce en Bash, como cat o sed, pero no a un comando que lee ficheros sin nombrarlos, como grep -r patrón ., ni a un script que abre ficheros por su cuenta. RosmarOps supone el mismo límite para las reglas ask de Read que propone, así que las llama parciales y no sube la nota por ellas. Ayudan, pero no cierran la puerta.
La tercera es la más directa: volver al modo manual. permissions.defaultMode con valor default en ~/.claude/settings.json, y todas las sesiones de terminal de esa máquina arrancan en manual.
Lo que hace RosmarOps aquí
Lee el modo de arranque fijado en tus ficheros de ajustes, las reglas que has añadido y qué credenciales quedan al alcance. El modo que eliges en la app o en el IDE no se guarda donde pueda leerlo, y el informe lo dice. No cambia nada: propone, y el cambio lo haces tú.
Si usas Claude Code, un buen sitio para empezar es abrir tu ~/.claude/settings.json y mirar qué pone. Es un minuto.
Escrito con asistentes de IA. La máquina, los hallazgos y la decisión de publicar son míos.