Elegir bien: contexto lleno o error cometido
¿Cambias de tarea?
└─ Sí ─────────────────────────────────► /clear
└─ No, sigo en la misma tarea
├─ Contexto lleno pero el hilo importa ─► /compact "qué conservar"
├─ Quiero probar otro camino ───────────► /branch
├─ Quiero delegar y seguir yo ──────────► /fork o /subtask
└─ Claude rompió algo ─────────────────► /rewind
Las cuatro formas de duplicar una conversación
| Comando | Contexto que recibe | Dónde corre | Dónde acabas tú |
|---|---|---|---|
| /branch | Copia completa | Aquí | En la rama nueva |
| /fork | Copia completa | Background | En el hilo original |
| /subtask | Copia completa | Subagente | Aquí; el resultado vuelve a este chat |
| /btw | Aislado | Aquí, aparte | Aquí; no toca el hilo principal |
| /clear | Vacío | Aquí | Sesión nueva; la vieja queda en disco |
Automatización: qué sobrevive a cerrar el portátil
| Comando | Dónde corre | Sobrevive al cierre | Cadencia |
|---|---|---|---|
| /background | Tu máquina | No | Una vez |
| /loop | Esta sesión | No | Cada N minutos, o autorregulada |
| /schedule | Nube | Sí | Cron |
Por qué /help no te muestra todo
Cada comando lleva dos condiciones: isEnabled y isHidden. Un comando puede existir en el binario y no aparecer en tu autocompletado. Estas son las razones reales:
| Causa | Qué desaparece |
|---|---|
| fuera de un repo git | /commit · /pr · /security-review |
| tu plan no lo incluye | /upgrade · /usage-credits · /passes |
| falta la integración | /setup-bedrock · /chrome · /desktop |
| feature flag apagado | /advisor · /brief · /btw · /sandbox |
| solo en sesión remota o de background | /stop · /session · /remote-env |
| interno o de diagnóstico | /heapdump · /workflow-launch-exec |
| skill desactivada en /config | cualquier /nombre-de-skill |
Regla práctica: escribe / y lee la lista. Si un comando de esta página no aparece, su condición no se cumple ahora mismo; escribirlo igualmente suele devolver un mensaje explicando qué falta.
Los comandos que aportan los servidores MCP
Esto casi nadie lo sabe: un servidor MCP puede exponer prompts, y Claude Code los registra como comandos slash con la forma /mcp__<servidor>__<prompt>. En servidores HTTP o SSE aceptan además la forma corta <servidor>:<prompt>.
Escribe /mcp__ y deja que el autocompletado te muestre lo que ofrece cada servidor conectado — no todos exponen prompts. Suelen ser mejores que pedir lo mismo en lenguaje natural, porque llevan los campos obligatorios ya resueltos.
Sintaxis que no empieza por /
| Sintaxis | Qué hace | Ejemplo |
|---|---|---|
| # | Guarda una memoria de proyecto (va a CLAUDE.md) | # siempre usamos pnpm, nunca npm |
| ! | Ejecuta un comando de shell tú mismo; su salida entra en la conversación | ! gcloud auth login |
| @ | Autocompleta y adjunta una ruta de archivo o directorio | revisa @src/auth/session.ts |
| ultrathink | Sube el presupuesto de razonamiento de ese turno | ultrathink por qué el deadlock solo sale en prod |
| +500k | Fija un techo de tokens para el turno | +500k audita todo el paquete de pagos |
| ultracode | Activa orquestación multiagente para esa petición | ultracode migra todos los tests a vitest |
! es la vía cuando Claude no puede: logins interactivos (gcloud auth login, docker login), comandos que piden contraseña, o cualquier cosa que necesite tu TTY.
Atajos de teclado por defecto
En macOS meta es Option. Todo esto se rebindea en ~/.claude/keybindings.json (/keybindings).
Globales
| Ctrl+C | Interrumpir | Ctrl+D | Salir |
| Ctrl+O | Ver el transcript completo | Ctrl+T | Ver los todos |
| Ctrl+R | Buscar en el historial | Ctrl+] | Abrir el último artifact |
| Ctrl+↑ / ↓ | Navegar los archivos del diff | Ctrl+Shift+B | Modo brief |
En el chat
| Shift+Tab | Ciclar modo de permisos (incluye plan mode) | Esc | Cancelar el turno |
| Ctrl+J | Salto de línea | Ctrl+L | Limpiar el input |
| Ctrl+X Enter | Encolar el mensaje | Cmd+K | Limpiar la pantalla |
| Ctrl+G | Abrir editor externo | Ctrl+S | Stash del prompt |
| Alt+P | Selector de modelo | Alt+O | Modo rápido |
| Alt+T | Alternar thinking | Alt+W | Alternar ultracode |
| Ctrl+X Ctrl+K | Matar todos los agentes | Ctrl+B | Mandar la tarea a background |
Crear tus propios comandos
Un comando propio es un archivo Markdown. La ruta determina el nombre y el alcance:
.claude/commands/deploy.md → /deploy solo este proyecto, versionable en git ~/.claude/commands/revisar.md → /revisar todas tus sesiones .claude/commands/db/migrar.md → /db:migrar los subdirectorios crean namespaces
Ejemplo completo
--- description: Revisa un PR contra nuestras convenciones internas argument-hint: <número-de-pr> allowed-tools: Bash(gh pr *), Bash(git diff *), Read, Grep model: opus effort: high when_to_use: Cuando haya que revisar un PR ajeno antes de aprobarlo --- Revisa el PR #$ARGUMENTS. Contexto del repositorio: - Convenciones: @CONTRIBUTING.md - Diff actual: !`gh pr diff $ARGUMENTS` Comprueba, en este orden: 1. ¿Hay tests para el comportamiento nuevo? 2. ¿Se respetan las convenciones de @CONTRIBUTING.md? 3. ¿Hay algún cambio que rompa la API pública? Devuelve los hallazgos de más grave a menos, con `archivo:línea`.
Uso: /revisar-pr 1423
Sustituciones en el cuerpo
| $ARGUMENTS | Todo lo que el usuario escribió tras el comando |
| $1, $2, … | Argumentos posicionales |
| @ruta/archivo | El contenido de ese archivo |
| !`comando` | La salida de ese comando de shell, ejecutada al invocar |
| ${CLAUDE_PROJECT_DIR} | Raíz del proyecto |
| ${CLAUDE_SKILL_DIR} | Directorio de la skill (solo en skills) |
Frontmatter soportado
| name | Nombre visible; por defecto, el del archivo |
| description | Resumen de una línea, visible en el listado y en la tool Skill |
| model | haiku, sonnet, opus, fable, un ID completo, o inherit |
| effort | low, medium, high, max, o un entero |
| allowed-tools | Tools disponibles mientras el archivo está activo |
| disallowed-tools | Tools retiradas mientras está activo |
| argument-hint | Texto de ayuda tras el nombre del comando |
| when_to_use | Guía para que el modelo sepa cuándo invocarla |
| disable-model-invocation | true → solo tú puedes invocarlo |
| user-invocable | false → lo oculta; solo el modelo puede usarlo |
| context | fork → se ejecuta con una copia del contexto |
| agent | Tipo de subagente que lo ejecuta |
| background | Se ejecuta en background |
| paths | Lo limita a ciertas rutas del proyecto |
| hooks | Hooks propios del comando |
| shell | bash o powershell para los bloques ! |
Tras crear o editar un archivo, /reload-skills lo recoge sin reiniciar. Cuándo merece la pena: cuando escribas el mismo prompt por tercera vez — el ritual de deploy, la checklist de revisión del equipo, traducir un ticket a un plan.
Eventos de hook disponibles
PreToolUse PostToolUse UserPromptSubmit Notification Stop SubagentStart SubagentStop TaskCompleted SessionStart SessionEnd PreCompact PostCompact PermissionDenied Elicitation FileChanged
Los modos de permiso son default, acceptEdits, plan y bypassPermissions. Se ciclan con Shift+Tab.
Rutinas que funcionan
Repo nuevo /init → /permissions → /doctor Empezar una tarea no trivial /clear → /plan <descripción> → aprobar → trabajar → /diff Cerrar trabajo /code-review → /simplify → /run → /commit → /pr Va lento o responde peor /context → /skill-doctor → /compact "qué conservar" (o /clear) Algo está roto en la herramienta /doctor → /status → /mcp reconnect → claude --bare (para aislar) Mantenimiento mensual /doctor → /insights → /skill-doctor → /usage
Flags del CLI
claude sesión interactiva claude "arregla el test que falla" arranca con un prompt claude -c continúa la conversación más reciente aquí claude -p "lista los TODO" no interactivo: imprime y sale claude --model opus fija el modelo claude --effort high fija el esfuerzo claude --add-dir ../shared ../types directorios extra accesibles claude --agent reviewer arranca con un agente concreto claude --bg "corre la suite completa" agente en background claude --cloud "migra el módulo X" sesión en la nube claude --autocompact 400k ventana de auto-compact claude -d api,hooks debug filtrado por categoría claude --debug-file ./claude-debug.log logs de debug a un archivo claude --chrome habilita Claude in Chrome claude --import codex importa config de otro agente claude --bare modo mínimo: sin hooks, LSP, memoria ni CLAUDE.md claude --disable-slash-commands desactiva todas las skills claude --dangerously-skip-permissions ⚠ solo en sandbox sin red
--bare es el modo diagnóstico: si un problema desaparece con --bare, la causa es un hook, un plugin, el LSP o un CLAUDE.md. Otros subcomandos: claude doctor, claude agents, claude plugin, claude mcp.