Qlcube
Módulo 3 · Instalación y entorno profesional
6 horas3 / 13
Progreso del curso
23% · Módulo 3 de 13
Módulo 3 · 6 horas

Instalación y primer proyecto

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:

export ANTHROPIC_API_KEY=sk-ant-api03-...

# Para hacerla permanente:
echo 'export ANTHROPIC_API_KEY=sk-ant-api03-...' >> ~/.zshrc
source ~/.zshrc

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):

git clone https://github.com/expressjs/express-typescript-boilerplate.git

Entra al directorio y arranca Claude Code:

cd express-typescript-boilerplate
claude

Verás algo así:

╭───────────────────────────────────────────────╮
│  ✻ 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.

Dentro de la sesión, escribe:

> /init

Claude Code va a:

  1. Leer package.json, README.md, tsconfig.json, .gitignore.
  2. Recorrer la estructura de carpetas con Glob.
  3. Hacer git log para entender estilo de commits.
  4. 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:

  1. Read. Leer src/routes/index.ts, src/index.ts, los tests existentes para entender el patrón.
  2. Plan. Declarar: "voy a crear src/routes/health.ts, registrarlo, y crear src/routes/health.test.ts".
  3. Edit. Crear los dos archivos y añadir 1 línea a src/index.ts.
  4. 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):

git add .
git commit -m "feat: añade endpoint /health"

2.7 Salir y reanudar

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:

ComandoQué hace
/resumeLista las sesiones recientes y permite reanudar una.
/clearLimpia el contexto actual sin salir.
/compactResume el contexto antiguo para liberar tokens.
/exitCierra 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:

ArchivoAlcanceCuándo se usa
.claude/settings.local.jsonProyecto (no versionado)Tu config personal del proyecto
.claude/settings.jsonProyecto (versionado)Config del equipo, viaja con el repo
~/.claude/settings.jsonUsuarioTu config global por defecto

Ejemplo mínimo de un settings.json de proyecto:

{
  "model": "claude-opus-4-7",
  "permissions": {
    "allow": ["Bash(npm test)", "Bash(npm run build)", "Bash(git status)"],
    "deny": ["Bash(rm -rf *)", "Bash(git push *)"]
  },
  "env": {
    "NODE_ENV": "development"
  }
}

Las claves más usadas:

  • 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

  1. Instala Claude Code con npm install -g @anthropic-ai/claude-code.
  2. Verifica con claude --version y claude doctor.
  3. Si tienes plan Team/Enterprise, ejecuta claude login. Si tienes plan API, exporta ANTHROPIC_API_KEY.
  4. 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:

  1. Verifica con git diff qué archivos cambiaron.
  2. Ejecuta npm run dev y prueba curl http://localhost:3000/health.
  3. Comprueba que el JSON de respuesta tiene status y uptime.
  4. 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?

  1. claude debug
  2. claude doctor
  3. claude check
  4. claude --diagnose

Respuesta correcta: B · claude doctor. Diagnostica versiones, permisos, conectividad y autenticación.

2. ¿Qué archivo de configuración tiene mayor precedencia?

  1. ~/.claude/settings.json (usuario)
  2. .claude/settings.json (proyecto, versionado)
  3. .claude/settings.local.json (proyecto, no versionado)
  4. 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?

  1. Inicializar un repositorio Git.
  2. Generar un CLAUDE.md a partir del repo.
  3. Reiniciar la sesión.
  4. 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?

  1. Borrar el commit con git reset.
  2. Ignorar — la key sigue funcionando.
  3. Revocar la key inmediatamente en console.anthropic.com y crear una nueva.
  4. 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.

0 / 0Respondidas
0 / 0Aciertos
% de acierto