Cap 1: Qué es Claude Code

Por: Artiko
claude-codeclisetuparquitectura

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:

HerramientaFunción
ReadLeer archivos
EditEditar archivos (diffs)
WriteCrear archivos nuevos
BashEjecutar comandos shell
GlobBuscar archivos por patrón
GrepBuscar contenido en archivos
AgentLanzar sub-agentes
WebFetchObtener contenido web
WebSearchBuscar en la web
AskUserQuestionPreguntar al usuario durante la tarea
MonitorObservar procesos y esperar condiciones
ToolSearchCargar 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, /init propone 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=1 se activa un flujo interactivo multifase: explora el repo con un subagente, te hace preguntas y propone CLAUDE.md + skills + hooks. Ese flujo lee también AGENTS.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í):

NivelUbicaciónCompartible
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.mdNo (todos tus proyectos)
Proyecto./CLAUDE.md o ./.claude/CLAUDE.mdSí (commiteable)
Local./CLAUDE.local.mdNo (gitignored)
Subdirectoriosrc/CLAUDE.md

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

SuperficieCaracterísticas
TerminalCLI completa, máximo control
VS CodeDiffs inline, @-mentions, historial
JetBrainsPlugin para IntelliJ, PyCharm, WebStorm
Desktop AppRevisión visual de diffs, sesiones paralelas
WebSin setup local, tareas de larga duración
iOSContinuar sesiones desde el móvil

Modelos disponibles

Claude Code soporta diferentes modelos según la necesidad:

AliasModeloUso
defaultEl modelo por defecto de tu planOpción normal
bestEl modelo más capaz disponible en tu planTareas exigentes
fableClaude Fable 5El 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
opusClaude Opus 4.8Contexto 1M, salida 128K, $5/$25 por MTok
sonnetClaude Sonnet 5Ventana nativa de 1M tokens, thinking adaptativo por defecto
haikuClaude Haiku 4.5Rápido y barato: 200K de contexto, $1/$5 por MTok
opusplanOpus en plan mode, Sonnet en ejecuciónPlanificar caro, ejecutar barato
sonnet[1m] / opus[1m]Variantes de contexto extendidoSesiones 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 defectoDónde
Claude Opus 4.8Max, Team Premium, Enterprise pay-as-you-go, Anthropic API, Claude Platform on AWS, Amazon Bedrock y Google Agent Platform
Claude Sonnet 5Pro, Team Standard y asientos Enterprise por suscripción
Claude Sonnet 4.5Microsoft Foundry

Cambiar modelo en sesión:

claude --model sonnet
# o dentro de la sesión
/model sonnet

Siguiente: Commands