Actualización, 8 de noviembre de 2026: Nueva sección sobre el
Bashque ves cuando Claude ejecuta comandos por su cuenta, que no es el modo!.
Claude Code tiene un modo bash integrado: escribe ! seguido de cualquier comando y se ejecuta directamente en tu shell, sin que Claude lo interprete ni lo apruebe. El output aparece en tiempo real y se añade al contexto de la conversación — Claude ve el resultado y puede actuar sobre él.
Es de esas funciones que no descubres leyendo la doc, sino viendo a alguien usarlo. Estás depurando, necesitas un git log rápido o un cat de un archivo, y en lugar de saltar a otra pestaña simplemente escribes ! git log --oneline -5. Parece menor, pero elimina el cambio de contexto constante.
No es un detalle obvio, pero una vez que lo descubres cambia cómo trabajas. No necesitas abrir otro terminal ni otro panel. Escribes, ejecutas, sigues hablando.
TL;DR Prefija cualquier comando con
!para ejecutarlo directamente. UsaCtrl+Bpara enviar procesos largos al background. Claude ve el output de ambos.
Resultado:
> ! git status
On branch feature/auth
Changes not staged for commit:
modified: src/auth/login.ts
modified: src/auth/session.ts
El «Bash» que ves cuando trabaja Claude
El Bash que aparece mientras Claude trabaja no es este modo. Es el nombre de la herramienta con la que Claude ejecuta comandos de shell por su cuenta: cuando decide pasar tus tests o mirar un git status, lo hace a través de ella. En pantalla lo resume como "Ran 1 shell command"; pulsa Ctrl+O y ves la llamada con su nombre:
● Bash(touch b.txt && ls)
⎿ a.txt
b.txt
Si el comando no es de solo lectura, te pide permiso con ese mismo nombre en la cabecera:
Bash command
Tip: auto mode handles these prompts for you — choose "switch to auto mode" below
Run Python to print 2+2
python3 -c "print(2+2)"
This command requires approval
Do you want to proceed?
❯ 1. Yes
2. Yes, and don’t ask again for: python3 *
3. Yes, and switch to auto mode · auto mode handles these prompts for you
4. No
La opción 2 guarda la regla Bash(python3 *) en .claude/settings.local.json del proyecto, el mismo formato que escribes a mano en permissions.allow o permissions.deny; y Bash a secas es el nombre que pones en el matcher de un hook o en la lista de herramientas de un subagente. Comandos de solo lectura como ls, cat, grep o git status los ejecuta sin preguntar. En Windows, Claude puede ejecutar los comandos con la herramienta PowerShell en lugar de Bash.
La diferencia está en quién escribe el comando: con ! lo escribes tú y no pasa por permisos; con la herramienta Bash lo propone Claude y lo aprueba una regla o tú.
Cómo usarlo
1. Ejecutar un comando rápido
Escribe ! seguido del comando:
! npm test
! git diff --stat
! ls -la src/
Claude no interviene — el comando va directo a tu shell. Pero el resultado se añade a la conversación, así que puedes preguntar "¿qué ha fallado?" inmediatamente después.
2. Enviar un proceso largo al background
Si un comando tarda (builds, tests, servidores de desarrollo), pulsa Ctrl+B mientras se ejecuta:
! npm run build
# tarda demasiado → pulsa Ctrl+B
# Claude sigue disponible mientras el build termina en background
También puedes pedirle a Claude directamente que ejecute algo en background.
Una distinción que conviene tener clara: Ctrl+B manda al fondo un comando tuyo, y eso no le quita nada a nadie. Cuando el que corre al fondo es un subagente, la cosa cambia, porque ahí sí pierde herramientas nativas aunque las hayas declarado: la lista está aquí.
3. Autocompletado con historial
Escribe ! seguido de las primeras letras y pulsa Tab. Claude Code autocompleta basándose en comandos ! anteriores del mismo proyecto.
! np → Tab → ! npm test
¿Y para buscar entre tus prompts anteriores, no solo comandos !? Pulsa Ctrl+R: tienes búsqueda inversa de tu historial de prompts, incluso en todos tus proyectos.
Referencia
| Aspecto | Detalle |
|---|---|
| Prefijo | ! al inicio del input |
| Ejecución | Directa en tu shell, sin interpretación de Claude |
| Output | Se muestra en tiempo real y se añade al contexto |
| Background | Ctrl+B durante la ejecución (tmux: pulsar dos veces) |
| Autocompletado | Tab completa desde historial de comandos ! del proyecto |
| Permisos | No requiere aprobación — es tu terminal |
Documentación oficial: Interactive mode — Bash mode