Cap 1: Qué es Claude Code
Qué es Claude Code
Claude Code es la CLI oficial de Anthropic para desarrollo asistido por IA. Lee tu codebase, edita archivos, ejecuta comandos y se integra con tus herramientas. Está disponible en terminal, IDE (VS Code, JetBrains), desktop app y navegador.
Arquitectura Agentic
Claude Code opera con un loop agentic: recibe una instrucción, analiza el contexto, ejecuta herramientas (leer archivos, ejecutar comandos, editar código) y repite hasta completar la tarea.
flowchart LR
U([Usuario]) --> P[Prompt]
P --> A[Análisis]
A --> T[Tool Use]
T --> R[Resultado]
R --> N[Siguiente acción]
N --> RES([Respuesta])
N -->|más pasos| A
Las herramientas internas principales son:
| Herramienta | Función |
|---|---|
Read | Leer archivos |
Edit | Editar archivos (diffs) |
Write | Crear archivos nuevos |
Bash | Ejecutar comandos shell |
Glob | Buscar archivos por patrón |
Grep | Buscar contenido en archivos |
Agent | Lanzar sub-agentes |
WebFetch | Obtener contenido web |
WebSearch | Buscar en la web |
AskUserQuestion | Preguntar al usuario durante la tarea |
Monitor | Observar procesos y esperar condiciones |
ToolSearch | Cargar bajo demanda definiciones de herramientas MCP (activa por defecto) |
Instalación
# macOS, Linux, WSL (recomendado)
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex
# Windows CMD
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd
# Homebrew (cask estable: claude-code; canal latest: claude-code@latest)
brew install --cask claude-code
# WinGet
winget install Anthropic.ClaudeCode
También hay repos firmados oficiales para apt (Debian/Ubuntu), dnf (Fedora/RHEL) y apk (Alpine), con canales stable y latest.
npm install -g @anthropic-ai/claude-code sigue existiendo, pero solo como opción avanzada: ya no es el método principal de instalación.
Iniciar en cualquier proyecto:
cd tu-proyecto
claude
El instalador nativo se auto-actualiza en segundo plano. Ningún instalador por gestor de paquetes se auto-actualiza salvo que definas CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE=1 (brew/winget); en caso contrario la actualización es manual.
Primer inicio y /init
Al ejecutar claude por primera vez en un proyecto, usa /init para generar un archivo CLAUDE.md con instrucciones del proyecto:
claude
> /init
Esto analiza tu codebase y crea un CLAUDE.md en la raíz con:
- Comandos de desarrollo (build, test, lint)
- Estructura del proyecto
- Convenciones de código detectadas
- Stack tecnológico
Detalles del comportamiento actual:
- Si ya existe un
CLAUDE.md,/initpropone mejoras en vez de sobrescribirlo. - Además del código, lee reglas de otras herramientas: Cursor (
.cursor/rules,.cursorrules) y Copilot (.github/copilot-instructions.md). - Con
CLAUDE_CODE_NEW_INIT=1se activa un flujo interactivo multifase: explora el repo con un subagente, te hace preguntas y proponeCLAUDE.md+ skills + hooks. Ese flujo lee tambiénAGENTS.md,.devin/rules/,.windsurf/rules/y.clinerules.
CLAUDE.md — Instrucciones persistentes
CLAUDE.md es el archivo de instrucciones principal: Claude lo carga al inicio de cada sesión para entender tu proyecto.
Con un matiz importante: CLAUDE.md se entrega como mensaje de usuario, después del system prompt. No es configuración forzada, es orientativo (advisory): el modelo puede no seguirlo. Para garantías deterministas se usan hooks o permissions.deny.
Ubicaciones y jerarquía
El orden de carga va de más amplio a más específico, y todos los niveles se concatenan (no se sobrescriben entre sí):
| Nivel | Ubicación | Compartible |
|---|---|---|
| Política gestionada | /Library/Application Support/ClaudeCode/CLAUDE.md (macOS), /etc/claude-code/CLAUDE.md (Linux/WSL), C:\Program Files\ClaudeCode\CLAUDE.md (Windows) | Gestionado por la organización |
| Usuario | ~/.claude/CLAUDE.md | No (todos tus proyectos) |
| Proyecto | ./CLAUDE.md o ./.claude/CLAUDE.md | Sí (commiteable) |
| Local | ./CLAUDE.local.md | No (gitignored) |
| Subdirectorio | src/CLAUDE.md | Sí |
Los CLAUDE.md de subdirectorio cargan bajo demanda: solo entran en contexto cuando Claude lee archivos de esa carpeta.
flowchart TD
M[Política gestionada] --> U[Usuario · ~/.claude/CLAUDE.md]
U --> P["Proyecto · ./CLAUDE.md o ./.claude/CLAUDE.md"]
P --> L[Local · ./CLAUDE.local.md]
L --> C([Contexto de la sesión])
S["Subdirectorio · src/CLAUDE.md"] -.->|bajo demanda| C
Qué incluir
# CLAUDE.md
## Comandos de desarrollo
bun dev # servidor de desarrollo
bun test # ejecutar tests
bun build # build de producción
## Convenciones
- TypeScript strict
- Arquitectura hexagonal
- Commits: feat: / fix: / refactor:
## Reglas
- No modificar archivos en /vendor
- Siempre ejecutar tests después de cambios
Mejores prácticas para CLAUDE.md
- Objetivo: menos de 200 líneas por archivo — Claude lo carga completo en contexto
- Criterio de poda por línea: «¿Quitar esta línea haría que Claude cometa errores?». Si no, fuera
- Ser específico — comandos exactos, no instrucciones vagas
- Actualizar regularmente — refleja el estado actual del proyecto
- No duplicar — si algo está en la documentación estándar, no repetirlo
«Bloated CLAUDE.md files cause Claude to ignore your actual instructions!»
Diagnóstico oficial: si Claude sigue haciendo algo que no quieres a pesar de tener una regla en contra, lo más probable es que el archivo sea demasiado largo y la regla se esté perdiendo.
Otros mecanismos de memoria
CLAUDE.md no es el único sistema de instrucciones persistentes. Hay dos más, complementarios:
Auto memory (activada por defecto). Claude escribe sus propias notas en ~/.claude/projects/<project>/memory/, con un MEMORY.md que actúa de índice; por sesión se cargan las primeras 200 líneas o 25KB de ese índice y los archivos de tema se leen bajo demanda. Se navega con /memory y se desactiva con autoMemoryEnabled: false en settings o CLAUDE_CODE_DISABLE_AUTO_MEMORY=1. Es un sistema distinto de CLAUDE.md, no un reemplazo.
.claude/rules/*.md (y ~/.claude/rules/). Markdown modular con frontmatter paths: (globs) que carga solo al tocar archivos que coinciden. Las reglas sin paths cargan al inicio. Es la alternativa recomendada a un CLAUDE.md gigante.
---
paths:
- "src/api/**"
---
# Reglas de la capa API
- Toda ruta nueva requiere test de contrato.
Superficies disponibles
| Superficie | Características |
|---|---|
| Terminal | CLI completa, máximo control |
| VS Code | Diffs inline, @-mentions, historial |
| JetBrains | Plugin para IntelliJ, PyCharm, WebStorm |
| Desktop App | Revisión visual de diffs, sesiones paralelas |
| Web | Sin setup local, tareas de larga duración |
| iOS | Continuar sesiones desde el móvil |
Modelos disponibles
Claude Code soporta diferentes modelos según la necesidad:
| Alias | Modelo | Uso |
|---|---|---|
default | El modelo por defecto de tu plan | Opción normal |
best | El modelo más capaz disponible en tu plan | Tareas exigentes |
fable | Claude Fable 5 | El modelo más capaz disponible en Claude Code, para tareas largas y autónomas. Requiere v2.1.170+ y no está disponible bajo zero data retention |
opus | Claude Opus 4.8 | Contexto 1M, salida 128K, $5/$25 por MTok |
sonnet | Claude Sonnet 5 | Ventana nativa de 1M tokens, thinking adaptativo por defecto |
haiku | Claude Haiku 4.5 | Rápido y barato: 200K de contexto, $1/$5 por MTok |
opusplan | Opus en plan mode, Sonnet en ejecución | Planificar caro, ejecutar barato |
sonnet[1m] / opus[1m] | Variantes de contexto extendido | Sesiones con mucho contexto |
fable no es el modelo por defecto: se elige explícitamente con /model fable.
Cuál es el modelo por defecto
Depende del plan y de la superficie:
| Modelo por defecto | Dónde |
|---|---|
| Claude Opus 4.8 | Max, Team Premium, Enterprise pay-as-you-go, Anthropic API, Claude Platform on AWS, Amazon Bedrock y Google Agent Platform |
| Claude Sonnet 5 | Pro, Team Standard y asientos Enterprise por suscripción |
| Claude Sonnet 4.5 | Microsoft Foundry |
Cambiar modelo en sesión:
claude --model sonnet
# o dentro de la sesión
/model sonnet
Siguiente: Commands