====== Claude Code ======
[[https://code.claude.com|Claude Code]] es la herramienta de programación con IA de Anthropic. Como [[cursos:sdd:03-opencode|OpenCode]], vive **dentro de la terminal** y trabaja sobre los ficheros de la carpeta en la que se lanza. Aquí solo se cuenta lo que **no tiene OpenCode o se hace de otra forma**; lo que funciona igual (la caja de entrada con ''@'', ''!'' y ''/'', una sesión por tarea, commitear a menudo) ya está en su tema.
----
===== 1. Puesta en marcha =====
==== Instalar ====
* Linux
curl -fsSL https://claude.ai/install.sh | bash
claude --version
* Windows (PowerShell)
irm https://claude.ai/install.ps1 | iex
claude --version
==== Arrancar ====
cd mi-proyecto
claude
==== Actualizar ====
Se actualiza solo, en segundo plano. Para forzarlo:
claude update
----
===== 2. Cuenta y modelos =====
Es la gran diferencia con OpenCode: **solo habla con modelos de Anthropic** y **no hay nada gratis**. No existe ''/connect'' ni modelos //free//.
* ''/login'': entra con tu cuenta. Vale una suscripción **Pro o Max** de Claude (pago fijo al mes, con un límite de uso que se renueva cada pocas horas) o una cuenta de la API (pago por token). El plan gratuito de Claude no incluye Claude Code.
* ''/usage'': cuánto llevas gastado del límite de tu plan y cuándo se renueva.
==== /model: cambiar de modelo ====
Abre la lista de modelos. ''Enter'' lo deja como predeterminado y ''s'' lo cambia solo para esta sesión.
^ Modelo ^ Cuándo ^
| ''opus'' | El más capaz. Para planificar y para lo difícil |
| ''sonnet'' | Más barato y rápido. Para implementar lo ya decidido |
| ''haiku'' | El más barato. Tareas mecánicas |
| ''opusplan'' | **Opus en modo Plan y Sonnet al ejecutar**, sin tener que cambiar a mano |
''opusplan'' hace solo el flujo que en OpenCode se hace a mano con ''/models'': el modelo caro donde se decide y el barato donde solo se ejecuta.
==== /effort: cuánto piensa ====
Además del modelo se elige **cuánto razona** antes de responder: ''/effort low'', ''medium'', ''high'', ''xhigh'' o ''max''. Más esfuerzo es mejor respuesta, pero más lenta y más cara.
/effort high
Deja ''medium'' para el día a día y sube a ''high'' o ''xhigh'' para el diseño o para un fallo que no hay manera de encontrar.
----
===== 3. Agentes y skills =====
Qué son está en [[cursos:sdd:02-skills-agentes-mcp|Skills, Agentes y MCP]]. Lo que cambia respecto a OpenCode es cómo se llaman:
* **Skills con ''/''**: cada //skill// es un comando más. ''/revisar-pr'' ejecuta la //skill// ''revisar-pr''.
* **Subagentes con ''@agent-''** y su nombre:
@agent-revisor-specs revisa specs/login/requirements.md
De serie trae tres subagentes: ''Explore'', que busca en el código sin modificar nada; ''Plan'', que investiga para el modo Plan; y ''general-purpose'', para tareas de varios pasos.
Aquí ''context: fork'' **sí funciona**: la //skill// se ejecuta en un subagente con el contexto limpio, sin ver tu conversación, y solo vuelve el resultado. Es lo que conviene para una revisión o una búsqueda larga que no quieres que llene tu contexto.
----
===== 4. La caja de entrada =====
Funciona como en OpenCode (texto, ''@'', ''!'' y ''/''). Cambia el teclado:
* **''\'' + ''Enter''**: salto de línea sin enviar. Funciona en cualquier terminal; ''Mayús+Enter'' solo en algunas.
* **''Ctrl+R''**: busca entre los prompts que ya has mandado.
* **''Ctrl+G''**: abre el prompt en tu editor, para escribir uno largo con comodidad.
* **''Ctrl+V''**: pega una imagen del portapapeles, por ejemplo una captura de un error o el boceto de una pantalla.
----
===== 5. Los modos: la tecla Mayús+Tab =====
En lugar de dos modos con ''Tab'', Claude Code tiene varios y se recorren con **''Mayús+Tab''**. La diferencia está en **qué te pregunta antes de hacerlo**:
^ Modo ^ Toca el disco ^ Qué te pregunta ^
| **Manual** | ✓ | Todo: cada edición y cada comando |
| **Aceptar ediciones** | ✓ | Solo los comandos; los ficheros los edita sin preguntar |
| **Plan** | | Nada: lee, analiza y propone, como el Plan de OpenCode |
| **Auto** | ✓ | Nada: un segundo modelo revisa cada acción y para solo las peligrosas |
El ciclo de un cambio es el mismo que en OpenCode: **Plan** hasta que el plan está bien y, al aceptarlo, Claude Code ofrece pasar directamente a ejecutar.
**Auto** es cómodo, pero quien decide lo que se ejecuta ya no eres tú. Úsalo solo en un repositorio con todo commiteado, para poder volver atrás.
Lo que permitas «siempre» en el diálogo de permisos queda guardado como regla del proyecto. ''/permissions'' las enseña y permite borrarlas.
==== Mientras trabaja ====
* **''Esc''** (una sola vez) lo interrumpe y conserva lo que ya ha hecho.
* Los mensajes que escribas mientras trabaja se encolan, igual que en OpenCode.
* **''/btw''** hace una pregunta al margen, sin interrumpirlo y sin que quede en la conversación:
/btw ¿qué diferencia hay entre @Mock y @MockBean?
* **''Ctrl+B''** manda a segundo plano un comando largo (unos tests, un ''build'') y puedes seguir hablando con él mientras termina.
==== Volver atrás: Esc Esc ====
''Esc Esc'' con la caja vacía (o ''/rewind'') abre la lista de tus prompts. Eliges hasta cuál volver y qué se restaura:
* **Código y conversación**: como si no hubiera pasado nada desde ese prompt.
* **Solo la conversación**: te quedas con los cambios en los ficheros pero se olvida lo hablado.
* **Solo el código**: deshace los cambios en los ficheros y la conversación sigue.
Solo deshace lo que Claude Code **editó con sus herramientas**. Lo que hizo con un comando de shell (un ''rm'', un ''mv'', un ''git checkout'') no se recupera. El deshacer de verdad sigue siendo ''git''.
----
===== 6. AGENTS.md y el CLAUDE.md que crea /init =====
Claude Code lee ''AGENTS.md'' él solo, igual que OpenCode. La trampa está en ''/init'': **genera un ''CLAUDE.md''**, no un ''AGENTS.md''. Y si existe un ''CLAUDE.md'', Claude Code deja de leer el ''AGENTS.md'' ([[cursos:sdd:02-skills-agentes-mcp#claudemdno_usarlo|por qué no usarlo]]).
Así que, tras ''/init'', se renombra:
git mv CLAUDE.md AGENTS.md
Si ya tenías ''AGENTS.md'', lo que interese del ''CLAUDE.md'' generado se pasa a mano al ''AGENTS.md'' y el ''CLAUDE.md'' se borra.
----
===== 7. La sesión y el contexto =====
Lo de OpenCode vale igual (una sesión por tarea, ''/compact'' cuando el contexto va alto). Cambian los comandos:
^ Comando ^ Cuándo ^
| ''/context'' | Ver **en qué** se va el contexto: instrucciones del sistema, ''AGENTS.md'', //skills//, MCP y la conversación. Es lo que hay que mirar si el contexto se llena sin motivo |
| ''/compact'' | Como en OpenCode, pero se le puede decir qué conservar: ''/compact conserva las decisiones de diseño del login'' |
| ''/clear'' | El ''/new'' de OpenCode: contexto a cero |
| ''/resume'' | Elegir una sesión anterior y seguir con ella |
Desde la terminal se retoma directamente:
* La última sesión de esta carpeta:
claude -c
* Una concreta, eligiéndola de la lista:
claude -r
Cuando el contexto está a punto de llenarse, Claude Code compacta solo. No esperes a eso: el resumen automático no sabe qué es lo importante para ti.
----
===== 8. Integración con VS Code =====
code --install-extension anthropic.claude-code
A diferencia de la de OpenCode, no es la terminal dentro del editor: es un **panel gráfico** propio, con los cambios en forma de //diff// que se aceptan o rechazan y varias conversaciones en pestañas.
El atajo para mandarle código es **''Alt+K''** (no ''Ctrl+Alt+K''): añade al prompt la referencia a la selección, por ejemplo ''@Login.java#5-10'', o al fichero entero si no hay nada seleccionado.
----
===== 9. Plugins =====
Un plugin de Claude Code es un paquete que puede traer //skills//, subagentes, //hooks// y servidores MCP a la vez. No se instalan desde npm sino desde **//marketplaces//**: repositorios de GitHub con un catálogo de plugins. El oficial de Anthropic, ''claude-plugins-official'', ya viene añadido.
* Abrir el gestor de plugins, para ver los instalados y buscar en los catálogos:
/plugin
* Añadir un //marketplace// a partir de su repositorio de GitHub:
/plugin marketplace add jarrodwatts/claude-hud
* Instalar un plugin. Va con ''@'' y el //marketplace// del que sale:
/plugin install claude-hud@claude-hud
----
===== 10. Plugins a instalar =====
==== claude-hud: contexto y límites siempre a la vista ====
Claude Code no enseña en pantalla el contexto ocupado ni cuánto queda del límite del plan: hay que pedirlo con ''/context'' y ''/usage''. [[https://github.com/jarrodwatts/claude-hud|claude-hud]] lo pone en la barra de estado, debajo de la caja de entrada: modelo, **porcentaje de contexto**, **uso del plan**, la herramienta o el subagente que se está ejecutando y las tareas pendientes. No ocupa contexto.
Se instala como en la sección anterior y se activa con:
/claude-hud:setup
----
===== 11. Chuleta =====
Solo lo que cambia respecto a la [[cursos:sdd:03-opencode#chuleta|de OpenCode]]:
^ ^ ^
| ''claude'' | Arrancar en la carpeta actual |
| ''claude -c'' | Seguir con la última sesión |
| ''/login'' | Entrar con tu cuenta |
| ''/model'' | Cambiar de modelo (''opusplan'': Opus para planificar, Sonnet para ejecutar) |
| ''/effort'' | Cuánto razona |
| ''Mayús+Tab'' | Cambiar de modo: Manual, Aceptar ediciones, Plan, Auto |
| ''Esc'' | Parar al agente |
| ''Esc Esc'' | Volver atrás (''/rewind'') |
| ''\'' + ''Enter'' | Salto de línea |
| ''/skill'' / ''@agent-nombre'' | Ejecutar una //skill// o un subagente |
| ''/btw'' | Pregunta al margen |
| ''Ctrl+B'' | Mandar un comando a segundo plano |
| ''/context'' | En qué se va el contexto |
| ''/clear'' | Sesión nueva |
| ''/usage'' | Cuánto queda del límite del plan |
| ''/plugin'' | Gestor de plugins |
----
===== 12. Enlaces =====
* [[https://code.claude.com|code.claude.com]]
* [[https://code.claude.com/docs/es/overview|Documentación]]
* [[https://code.claude.com/docs/en/interactive-mode|Atajos de teclado y modo interactivo]]: la lista completa