En este módulo dejas Claude Code instalado, autenticado y haces tu primera sesión real con un repositorio de prueba. Al terminar tendrás una sesión funcional y un CLAUDE.md generado automáticamente.
Objetivos
Instalar Claude Code en macOS, Linux o Windows (WSL).
Autenticarte con tu cuenta de Anthropic.
Crear un CLAUDE.md automáticamente con /init.
Hacer tu primer ciclo Read → Plan → Edit → Verify.
Salir, reanudar y mantener un historial de sesiones.
2.1 Pre-requisitos
Antes de instalar, asegúrate de tener:
Node.js 18 o superior. Verifica con node --version. Si no lo tienes, instálalo con nvm (recomendado) o desde nodejs.org.
Git 2.30+. Verifica con git --version. Disponible por defecto en macOS y la mayoría de distros Linux.
Cuenta de Anthropic con plan Pro, Team, Enterprise o crédito API en console.anthropic.com.
Terminal moderna. En macOS: Terminal o iTerm2. En Windows: PowerShell o WSL2 (recomendado WSL2 con Ubuntu).
Windows nativo: Claude Code funciona en PowerShell y CMD, pero algunas Skills y MCP servers asumen entorno POSIX. Recomendamos WSL2 con Ubuntu para una experiencia sin fricciones. Si vas a instalar en WSL, ejecuta los comandos de instalación dentro del shell WSL, no en PowerShell.
2.2 Instalación de la CLI
La instalación es un único comando vía npm. La CLI se publica en el paquete @anthropic-ai/claude-code.
npm install -g @anthropic-ai/claude-code
Una vez termine, comprueba que se ha registrado el binario:
claude --version
Deberías ver algo similar a 2.4.x (Anthropic, Inc.). Si el comando no se encuentra, repasa el PATH de tu shell y asegúrate de que $(npm prefix -g)/bin está incluido.
Alternativa con Homebrew (macOS)
brew install --cask claude-code
Esta vía instala la app de escritorio de Claude Code, que incluye la CLI integrada y un panel gráfico. Útil si prefieres una interfaz sobre el terminal.
Verificación final
claude doctor
El comando doctor diagnostica problemas habituales: versión de Node, permisos, conectividad, autenticación. Es lo primero que debes ejecutar si algo no va.
Practica · completa los huecos sin mirar arriba
Reproduce de memoria la instalación y el diagnóstico:
npm install @anthropic-ai/
claude --
claude
2.3 Autenticación
Hay dos métodos de autenticación según tu plan:
A) Plan Pro/Team/Enterprise — login OAuth
claude login
El comando abre tu navegador, te lleva a claude.com y, tras introducir credenciales, devuelve un token a la CLI. El token se guarda en ~/.claude/auth.json con permisos restringidos (chmod 600).
B) Plan API — variable de entorno
Si pagas por API en lugar de tarifa plana, exporta tu key en el shell:
Cuidado con secretos: nunca pegues tu API key en un archivo versionado, ni en un script que se commitee, ni en un README. Si por error la subes a GitHub, revócala inmediatamente en console.anthropic.com y genera una nueva. Más en el Módulo 10.
2.4 Primera sesión
Vamos a usar un repositorio de práctica. Si no tienes uno, clona este repo público (Express.js sencillo):
╭───────────────────────────────────────────────╮
│ ✻ Welcome to Claude Code (v2.4.0, Opus 4.7) │
│ │
│ cwd: ~/express-typescript-boilerplate │
│ /help para ver comandos · /exit para salir │
╰───────────────────────────────────────────────╯
>
Estás en una sesión interactiva. El cursor está esperando tu primer prompt.
2.5 /init — generar tu primer CLAUDE.md
Antes de pedir cambios, conviene que Claude Code genere un fichero CLAUDE.md a partir del repo. Este fichero le servirá de contexto persistente: contiene un resumen del proyecto, comandos clave, y reglas que aplicarán en futuras sesiones.
Generar un CLAUDE.md con secciones: Overview, Commands, Architecture, Style, Pitfalls.
Ejemplo del fichero generado (resumido):
# CLAUDE.md
## Overview
Express.js + TypeScript boilerplate. Punto de entrada `src/index.ts`.
Servidor HTTP en puerto 3000 (configurable vía PORT).
## Commands
- `npm run dev` — arranca con ts-node-dev (hot reload)
- `npm run build` — compila TypeScript a `dist/`
- `npm test` — ejecuta jest
- `npm run lint` — eslint con config Airbnb
## Architecture
- `src/index.ts` — bootstrap del servidor
- `src/routes/` — definición de rutas
- `src/middlewares/` — middlewares de Express
- `src/utils/` — helpers compartidos
## Style
- TypeScript estricto (`strict: true`)
- ESLint con Airbnb config
- Imports relativos, no alias
- Tests con jest, archivos `*.test.ts` junto al código
## Pitfalls
- El handler de errores global está en src/middlewares/error.ts.
No lanzar throw sin pasar por next(err).
- Variables sensibles en .env (NO commitear)
Importante: el CLAUDE.md generado por /init es un punto de partida. Edítalo a mano para añadir convenciones de tu equipo, decisiones de arquitectura y reglas de oro. Cuanto mejor sea tu CLAUDE.md, mejor trabajará Claude Code en tu repo. Lo veremos en profundidad en el Módulo 8.
2.6 Tu primer ciclo Read → Plan → Edit → Verify
Vamos a pedir un cambio sencillo: añadir un endpoint /health que devuelva el estado del servidor.
> Añade un endpoint GET /health que devuelva
{"status":"ok","uptime":process.uptime()} en JSON.
Inclúyelo en src/routes/, registralo en src/index.ts,
y añade un test que verifique 200 y la forma del JSON.
Claude Code va a:
Read. Leer src/routes/index.ts, src/index.ts, los tests existentes para entender el patrón.
Plan. Declarar: "voy a crear src/routes/health.ts, registrarlo, y crear src/routes/health.test.ts".
Edit. Crear los dos archivos y añadir 1 línea a src/index.ts.
Verify. Ejecutar npm test y comprobar que el nuevo test pasa.
Cuando termine, revisa el diff con:
git diff
Si te convence, lo commiteas tú (Claude Code no commitea por defecto):
Para salir de la sesión: escribe /exit o pulsa Ctrl+D.
Cuando vuelvas a ejecutar claude en el mismo directorio, la herramienta:
Carga automáticamente el CLAUDE.md.
Te ofrece reanudar la conversación anterior con /resume (lista las últimas sesiones por fecha).
Si no la reanudas, empiezas con contexto limpio pero con CLAUDE.md cargado.
Comandos útiles para gestionar el historial:
Comando
Qué hace
/resume
Lista las sesiones recientes y permite reanudar una.
/clear
Limpia el contexto actual sin salir.
/compact
Resume el contexto antiguo para liberar tokens.
/exit
Cierra la sesión y guarda el transcript.
Los transcripts se guardan en ~/.claude/projects/<path-del-proyecto>/ en formato JSONL. Puedes consultarlos sin abrir Claude Code: cada línea es un mensaje.
2.8 Configuración inicial: settings.json
Hay tres niveles de configuración. Por orden de precedencia:
model — modelo por defecto. Sobrescribible con /model.
permissions.allow — comandos que se ejecutan sin pedir confirmación.
permissions.deny — comandos bloqueados aunque el agente lo pida.
env — variables de entorno aplicadas a todos los Bash del agente.
hooks — scripts disparados por eventos (Módulo 8).
Buena práctica: commitea .claude/settings.json al repo para que todo el equipo comparta permisos y modelo. Mantén .claude/settings.local.json en .gitignore para tu config personal. Profundizamos en permisos en el Módulo 4.
Práctica
Ejercicio 2.1 · Instalación y verificación
Instala Claude Code con npm install -g @anthropic-ai/claude-code.
Verifica con claude --version y claude doctor.
Si tienes plan Team/Enterprise, ejecuta claude login. Si tienes plan API, exporta ANTHROPIC_API_KEY.
Comprueba que la autenticación funciona ejecutando claude en cualquier directorio y escribiendo "hola".
Ejercicio 2.2 · Primer endpoint
Clona express-typescript-boilerplate, ejecuta /init y pide a Claude Code que añada el endpoint /health descrito en la sección 2.6. Cuando termine:
Verifica con git diff qué archivos cambiaron.
Ejecuta npm run dev y prueba curl http://localhost:3000/health.
Comprueba que el JSON de respuesta tiene status y uptime.
Si todo bien, commitea con un mensaje descriptivo.
Ejercicio 2.3 · settings.json del equipo
Crea un .claude/settings.json en tu proyecto con:
Modelo Sonnet 4.6 por defecto.
Allowlist para npm test, npm run build, npm run lint.
Denylist para cualquier comando rm y git push.
Verifica que la próxima vez que ejecutes npm test Claude Code no te pide confirmación.
Test de comprensión
1. ¿Cuál es el comando para diagnosticar problemas de instalación?
claude debug
claude doctor
claude check
claude --diagnose
Respuesta correcta: B · claude doctor. Diagnostica versiones, permisos, conectividad y autenticación.
2. ¿Qué archivo de configuración tiene mayor precedencia?
~/.claude/settings.json (usuario)
.claude/settings.json (proyecto, versionado)
.claude/settings.local.json (proyecto, no versionado)
Las tres tienen igual precedencia.
Respuesta correcta: C. settings.local.json sobreescribe a settings.json de proyecto, que sobreescribe al de usuario. Útil para que cada miembro del equipo personalice sin romper la config compartida.
3. ¿Para qué sirve /init?
Inicializar un repositorio Git.
Generar un CLAUDE.md a partir del repo.
Reiniciar la sesión.
Cambiar de modelo.
Respuesta correcta: B. Lee el repo y genera un fichero CLAUDE.md con overview, comandos, arquitectura, estilo y pitfalls.
4. Acabas de pegar tu API key en un commit y has hecho push. ¿Qué haces primero?
Borrar el commit con git reset.
Ignorar — la key sigue funcionando.
Revocar la key inmediatamente en console.anthropic.com y crear una nueva.
Cambiar el repo a privado.
Respuesta correcta: C. Una vez la key está en el historial de Git, asume que está comprometida (bots la indexan en segundos). Revócala primero, después limpia el historial.
Resumen
Instalación: npm install -g @anthropic-ai/claude-code + claude doctor para verificar.
Autenticación: claude login (Pro/Team/Enterprise) o ANTHROPIC_API_KEY (API).
/init genera un CLAUDE.md inicial. Edítalo a mano para añadir convenciones del equipo.
Ciclo Read → Plan → Edit → Verify visible en cada sesión.
Tres niveles de settings: usuario global, proyecto compartido, proyecto local.
En el Módulo 3 desmenuzamos cada herramienta del agente: Read, Glob, Grep, Edit, Write, Bash. Verás cuándo usa cada una y cómo guiarle para que use la mejor.