Lo esencial
VS Code con la extensión es bonito y cómodo para empezar. Pero la verdadera fuerza de Claude Code aparece en la terminal: scripts, automatización, CI/CD (Continuous Integration/Delivery: compilación y entrega automáticas), bots (programas automatizados) y tareas programadas (que corren según un horario con el programador cron). La CLI (interfaz de línea de comandos) funciona donde no hay interfaz gráfica: en un servidor, en Docker o en GitHub Actions.
Conceptos clave
- El comando
claude: abre Claude desde cualquier carpeta en la terminal - La bandera
-p(print mode): una sola petición, sin modo interactivo - stdin/stdout/pipe: Claude como una pieza más de una cadena de comandos de Unix
--model/--max-budget-usd: control del modelo y del costo- Modo headless (sin interfaz gráfica): para automatizar sin una persona presente
- API (interfaz de programación de aplicaciones): la forma en que un programa habla con un servicio
CLAUDE.mden la carpeta: el contexto funciona en la CLI igual que en VS Code
Teoría
Instalar la CLI
A octubre de 2026, la forma principal es el instalador nativo (se actualiza solo). Métodos vigentes y requisitos del sistema: documentación de instalación.
# macOS, Linux, WSL
curl -fsSL https://claude.ai/install.sh | bash
# Windows PowerShell
irm https://claude.ai/install.ps1 | iex
# Homebrew (macOS): no se actualiza solo, usa brew upgrade claude-code
brew install --cask claude-code
# Con npm (requiere Node.js 22+): también funciona
npm install -g @anthropic-ai/claude-code
# Verifica la instalación
claude --version
# Primer arranque: se abre la autorización en el navegador
claudeClaude Code viene incluido en los planes de pago (Pro, Max, Team, Enterprise) o funciona con una clave de API de la Console; el plan gratis de claude.ai no lo incluye. Precios y planes vigentes: Lo vigente.
La CLI y la extensión de VS Code usan la misma cuenta: si inicias sesión en una, funciona en las dos.
Modos de trabajo de la CLI
1. Modo interactivo (como en VS Code)
cd mi-proyecto/
claude
# Se abre un chat completo dentro de la terminal2. Una sola petición con -p (print mode)
# Hace la pregunta y muestra la respuesta de inmediato
claude -p "Escribe una función en Python que calcule el IVA"
# Elegimos el modelo
claude -p --model haiku "Necesito una respuesta rápida"
# Limitamos el presupuesto
claude -p --max-budget-usd 0.10 "Revisa este código"3. stdin: pasar datos con un pipe
# Analizamos un archivo
cat server.log | claude -p "Encuentra los errores y explica sus causas"
# Analizamos código
cat app.py | claude -p "Encuentra posibles bugs en este código"
# Analizamos la salida de otro comando
git diff HEAD~3 | claude -p "Escribe un changelog para estos cambios"
# Datos desde un JSON
curl -s api.example.com/data.json | claude -p "Encuentra anomalías en los datos"4. Contexto desde archivos
# Claude lee el archivo y responde la pregunta
claude -p "¿Qué hace este código?" < main.py
# Varios archivos a través de un archivo temporal
cat requirements.txt Dockerfile > /tmp/context.txt
claude -p "¿Hay conflictos de versiones?" < /tmp/context.txtLa CLI en scripts: ejemplos reales
Reporte diario del código:
Puedes programar la ejecución con cron, y el propio Claude Code trae routines integradas y /loop: mira la lección Loop vs Scheduled Tasks.
#!/usr/bin/env bash
# daily-code-review.sh: corre cada mañana a las 09:00
cd ~/proyecto/
# Reunimos los cambios de ayer
CHANGES=$(git log --since="1 day ago" --oneline)
if [ -z "$CHANGES" ]; then
echo "No hubo cambios"
exit 0
fi
# Se los mandamos a Claude para que los analice
SUMMARY=$(echo "$CHANGES" | claude -p "
Analiza estos commits de git de ayer.
Destaca: los cambios principales, los posibles riesgos y qué conviene probar.
Formato: viñetas breves, no más de 200 palabras.
")
# Enviamos el resumen a un chat de Telegram (puedes cambiarlo por Slack, correo u otro canal)
curl -s -X POST "https://api.telegram.org/bot${BOT_TOKEN}/sendMessage" \
--data-urlencode "chat_id=${CHAT_ID}" \
--data-urlencode "text=📊 Resumen de ayer:\n${SUMMARY}"Documentación automática:
#!/usr/bin/env bash
# generate-docs.sh
for file in src/**/*.py; do
echo "Documentando: $file"
# Generamos un docstring para cada función
# (trabaja en una rama de git aparte y revisa git diff: el modelo puede agregar texto de más)
DOCS=$(cat "$file" | claude -p "
Agrega docstrings detallados a todas las funciones de este archivo de Python.
Formato: Google Style. Devuelve solo el código con los docstrings agregados.
")
# Sobrescribimos el archivo
echo "$DOCS" > "$file"
done
echo "¡Documentación actualizada!"Revisión de código antes del commit:
#!/usr/bin/env bash
# pre-commit-review.sh (puedes agregarlo en .git/hooks/pre-commit)
STAGED=$(git diff --cached)
if [ -z "$STAGED" ]; then
exit 0
fi
REVIEW=$(echo "$STAGED" | claude -p "
Eres un revisor de código con experiencia.
Revisa estos cambios en busca de: bugs, problemas de seguridad y malas prácticas.
Si todo está bien, responde PASS.
Si hay problemas, enuméralos brevemente.
")
echo "$REVIEW"
# Si Claude encontró problemas, bloqueamos el commit
if [[ "$REVIEW" != *"PASS"* ]]; then
echo "❌ La revisión de código encontró problemas. Corrígelos e inténtalo de nuevo."
exit 1
fi
echo "✅ Revisión de código aprobada"
exit 0CLI vs MCP Marketplace: qué elegir y cuándo
| Tarea | CLI | MCP |
|---|---|---|
| Una sola petición | ✅ Ideal | Trabajo de más |
| Script de automatización | ✅ Nativo | Más complicado |
| Pipeline de CI/CD | ✅ Sencillo | Configuración complicada |
| Bot de Telegram/Discord | ✅ Con -p |
No tiene sentido |
| Acceso a bases de datos | Mejor MCP | ✅ Integración nativa |
| Automatización del navegador | Mejor MCP | ✅ Playwright MCP |
| Integración con GitHub | Los dos sirven | ✅ GitHub MCP |
| Trabajo sin red | ✅ Funciona | Requiere servidor |
| Docker/serverless | ✅ Nativo | Configuración complicada |
La regla: la CLI para automatización y scripts. MCP para integrarte con servicios concretos en modo interactivo.
Git Worktrees: trabajo en paralelo
# Creamos una carpeta aparte para la nueva función
git worktree add ../proyecto-feature-X feature/new-payment
# En la carpeta principal: el trabajo actual
cd ~/proyecto/
claude # Trabajamos en la rama principal
# En la carpeta de al lado: otro Claude
cd ~/proyecto-feature-X/
claude # El segundo Claude trabaja en la función por su cuentaClaude Code puede crear el worktree por sí mismo: claude -w feature-auth abre una sesión en una copia de trabajo aislada.
Ventajas:
- Las distintas sesiones de Claude no se estorban entre sí
- Puedes tener un
CLAUDE.mddistinto para cada tarea - Puedes hacer revisión de código en un worktree mientras escribes código en otro
Banderas útiles de la CLI
# Banderas principales
claude -p "petición" # Print mode (sin modo interactivo)
claude -p --model haiku # Elegir modelo por alias (sonnet, opus, haiku, fable) o por nombre completo
claude -p --max-budget-usd 0.50 # Tope de costo (solo en print mode)
claude -p --max-turns 3 # Tope de pasos del agente
claude -p --tools "" # Desactivar todas las herramientas integradas (seguridad)
claude -p --output-format json # Salida en JSON
# Trabajo con el contexto
claude --add-dir ../lib # Dar acceso a una carpeta adicional
claude --append-system-prompt "Responde en español" # Agregar una regla al prompt de sistema (las instrucciones base para la IA)
# Modo autónomo
claude --dangerously-skip-permissions # Saltar las confirmaciones (para CI)
# ¡Úsalo solo en entornos aislados (Docker, GitHub Actions)!
# Lista completa de banderas: https://code.claude.com/docs/en/cli-referenceClaude Code en GitHub Actions
# .github/workflows/ai-review.yml
name: AI Code Review
on: [pull_request]
jobs:
ai-review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install Claude Code CLI
run: npm install -g @anthropic-ai/claude-code
- name: Get PR diff
run: git diff origin/main...HEAD > /tmp/pr-diff.txt
- name: AI Review
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: |
# --tools "": el texto del PR no es de confianza (prompt injection), así que Claude solo lee el diff y responde, sin herramientas
REVIEW=$(cat /tmp/pr-diff.txt | claude -p \
--tools "" \
--max-budget-usd 1.00 \
"Revisa este PR en busca de bugs y problemas de seguridad. Sé breve.")
echo "## AI Code Review" >> $GITHUB_STEP_SUMMARY
echo "$REVIEW" >> $GITHUB_STEP_SUMMARYPara revisar PR y responder a @claude en los comentarios también existe una GitHub Action oficial de Anthropic: anthropics/claude-code-action@v1 (configuración rápida con el comando /install-github-app). Detalles: documentación de GitHub Actions.
Práctica
- Instala la CLI con el instalador nativo (el comando está al inicio de la lección)
- Comprueba que funciona:
claude -p "Escribe un hola mundo en Python" - Prueba un pipe:
cat tu-script.py | claude -p "Encuentra bugs" - Crea un daily-report.sh que analice el git log y envíe un resumen
- Agrega un hook pre-commit con revisión de código
Herramientas y recursos
- Documentación de Claude Code CLI: la guía oficial; referencia de banderas: CLI reference
- Anthropic Claude Code en GitHub: issues, registro de cambios (changelog) y plugins de ejemplo
- Node.js 22+: solo lo necesitas si instalas con npm
- Git Worktrees: documentación oficial
Ideas clave
La CLI abre Claude Code a la automatización: scripts, CI/CD, bots, tareas programadas. Donde no hay interfaz gráfica, la CLI es la única opción.
La bandera
-pconvierte a Claude en una herramienta de Unix:cat file | claude -p "analiza". Eso abre combinaciones sin fin con otros comandos.
La CLI donde necesitas velocidad y automatización. MCP donde necesitas integrarte con un servicio concreto (una base de datos, el navegador, GitHub).
Siguiente lección
→ Los competidores que perdieron: la historia de Devin, Windsurf y Manus
La marca se guarda solo en este navegador y no se envía a ningún sitio. Mi progreso