Capítulo 1 de 21 · básico
Configura tus herramientas de IA para programar
Qué cubre esta sesión
Todas las demás semanas de este libro terminan contigo ejecutando un script de Python que llama a un modelo. No te voy a hacer teclear todo ese código a mano — yo no lo hago, y tú tampoco deberías. Esta primera hora es para configurar las herramientas de IA con las que escribo todo lo demás: Claude Code como pieza central, Antigravity cuando conviene más una superficie tipo IDE, y un ciclo de tres pasos que convierte una spec de un párrafo en un archivo ejecutable. Al final de la hora ya habrás corrido el ciclo una vez y le tendrás confianza.
Las herramientas que vas a usar
Claude Code es una herramienta de línea de comandos. Le pasas un prompt; te
edita los archivos o imprime un resultado a stdout. En modo --print (no
interactivo) se comporta como cualquier comando unix — stdin de entrada,
stdout de salida, exit distinto de cero si falla — y ese es el modo en el que
se apoya el resto de este libro. Cada archivo de ejemplo de las próximas
veinte semanas se puede generar mandando una spec precisa por pipe a Claude
Code, guardando lo que regresa y ejecutándolo. Yo ya casi no escribo nada del
boilerplate a mano.
Instálalo y autentícate siguiendo la documentación oficial (el link está en
el README de esta carpeta). Verifica con claude --version. La invocación
útil más pequeña está abajo — le pide a Claude Code un archivito de Python,
lo guarda y lo ejecuta.
#!/usr/bin/env bash
# week21 - claude-code-quickstart.sh
#
# The smallest useful Claude Code invocation: ask, save, run.
# Uses --print (non-interactive); behaves like a unix command.
set -euo pipefail
command -v claude >/dev/null || {
echo "Claude Code CLI not found. Install:" >&2
echo " https://docs.claude.com/en/docs/claude-code/quickstart" >&2
exit 1
}
# Pipe a precise spec in, save what comes out, then run it.
claude --print \
"Write a Python script that prints exactly 'Hello from Claude Code' and nothing else. Output only the code. No fences, no commentary." \
> hello_from_claude.py
echo "--- hello_from_claude.py ---"
cat hello_from_claude.py
echo "--- running ---"
python3 hello_from_claude.py
Antigravity es la otra herramienta que tengo en la banca. Corre como un workspace, no como CLI, así que es a la que recurro cuando traigo varios archivos en el aire al mismo tiempo y prefiero no estar cuidando una sola línea de comandos. El libro no depende de ella — todos los ejemplos de aquí se pueden hacer solo con Claude Code — pero si ya usas Antigravity, apúntala al mismo ciclo y los pasos de abajo no cambian. Su documentación avanza más rápido que este libro; revísala para la configuración actual.
Un ciclo de programación de verdad
El ciclo son tres pasos y es el mismo cada semana:
- Escribe una spec precisa de lo que quieres — tres o cuatro oraciones, no más. Lenguaje, forma de la entrada, forma de la salida, y cualquier restricción que importe (sin dependencias externas, debe incluir un self-test, nada de prosa alrededor del código).
- Mándala a la herramienta con
--print(o su equivalente) y redirige el resultado a un archivo con un pipe. No copies y pegues; usa el pipe. La razón de trabajar así es que la spec, el archivo y la ejecución se mantienen reproducibles. - Ejecútalo. Si falla, lee el error, afina la spec con una oración más, y repite.
Ese es todo el flujo de trabajo. La hora se va en escribir la spec y juzgar el output, no en teclear boilerplate.
Ponlo a trabajar
El script del showcase conecta el ciclo con algo que puedes usar ahora mismo: le pasas una spec como primer argumento, genera el código y lo ejecuta. La spec por defecto escribe una utilería de SHA-256 con self-test incluido, así que el script se prueba a sí mismo la primera vez que lo llamas sin argumentos.
#!/usr/bin/env bash
# week21 - ai-pair-workflow.sh
#
# The "spec -> code -> run" loop you'll use every week to write the
# OpenAI / Gemini examples in this book. Hand the coding tool a precise
# spec on stdin, save what it returns, run it. Substitute Antigravity
# (or any other coding agent that accepts a non-interactive prompt) for
# `claude --print` and the loop does not change.
set -euo pipefail
command -v claude >/dev/null || {
echo "Claude Code CLI not found. Install:" >&2
echo " https://docs.claude.com/en/docs/claude-code/quickstart" >&2
exit 1
}
SPEC="${1:-Write a small Python program that, given one CLI argument, prints its SHA-256 hex digest. Use only the standard library. If no argument is given, run an assert-based self-test against the digest of the string 'hello' and print 'ok'. Output only valid Python code: no fences, no commentary.}"
ARG="${2:-}"
echo "spec: $SPEC"
echo
claude --print "$SPEC" > generated.py
echo "--- generated.py ---"
cat generated.py
echo
echo "--- running ---"
python3 generated.py "$ARG"
El único switch que importa es --print. Sin él, el CLI abre una sesión
interactiva y cualquier pipeline de shell que dependa de él se queda
colgado. Con él, tienes un comando unix que puedes componer en un Makefile,
un script de shell o un paso de CI. Ahora pruébalo con tu propia spec. La
manera de que las próximas veinte semanas se sientan rutina es escribir el
ejemplo de cada semana entregándole a la herramienta una spec de un párrafo
en lugar de teclear el archivo a mano.
Córrelo
Revisa el README.md de esta carpeta. Ahí están los links de instalación de
Claude Code y Antigravity, la variable de entorno que Claude Code espera, y
los comandos exactos para correr ambos scripts.
Lo que te llevas
Este libro te va a pedir escribir código durante veinte semanas más. Lo vas a escribir más rápido, y con más honestidad, si tratas la herramienta de IA como parte de tu toolchain y no como una ventana de chat de la que copias y pegas. La spec es la unidad de trabajo. Guarda la spec junto al archivo generado, mete ambos a control de versiones, y podrás reconstruir los ejemplos de cualquier semana volviendo a correr el ciclo. Todo lo que sigue asume que ya trabajas así.