Antes de la sesión
Prepara tu laptop: la terminal, las carpetas y tus archivos de práctica
En esta lección dejas lista la laptop para el taller: una terminal abierta, una carpeta de práctica con tres archivos y, si quieres, OpenCode instalado desde antes. Son unos 10 a 15 minutos.
Hay dos caminos y los dos llevan al mismo resultado:
- Opción A: solo con la terminal. Copias un bloque, lo pegas y listo. Es la más rápida.
- Opción B: con Visual Studio Code. Creas los archivos con un editor donde los ves. Es la más cómoda si nunca has usado una terminal.
Antes de elegir, cinco ideas que vas a usar toda la sesión.
Cinco ideas antes de empezar
1. Qué es una terminal (y qué es un shell)
Normalmente usas tu computadora con el ratón: haces clic en carpetas, arrastras archivos, abres programas. La terminal es otra forma de hacer lo mismo: una ventana donde escribes órdenes en lugar de hacer clic.
Dentro de la terminal hay un programa que lee lo que escribes y lo ejecuta. Ese programa se llama shell. En Mac el shell suele ser zsh, en Linux bash, y en Windows usamos PowerShell. Son como dialectos: la idea es la misma, pero algunas palabras cambian. Por eso más abajo hay un bloque para Mac/Linux y otro para Windows.
Analogía: la interfaz con ventanas es como pedir en un restaurante señalando fotos del menú. La terminal es decirle al mesero exactamente lo que quieres. Es más precisa y más rápida, pero tienes que saber las palabras.
Por qué importa aquí: OpenCode vive en la terminal. Y cuando el agente "ejecuta un comando", está escribiendo en la terminal igual que tú.
2. Qué es un comando
Un comando es una orden de una línea. Casi siempre tiene esta forma:
mkdir -p ~/agent-workshop
----- -- ----------------
que como sobre que
hacer (opcion) (argumento)Escribes la línea, presionas Enter, el shell la ejecuta y te muestra el resultado (o nada, si todo salió bien y no había nada que mostrar).
3. Carpetas, archivos y rutas
- Un archivo es un documento:
expenses.csv,notes.md. - Una carpeta (o directorio) es un contenedor de archivos y de otras carpetas.
- Una ruta es la dirección de un archivo, como una dirección postal: dice en qué carpeta está, dentro de cuál otra. Por ejemplo
/Users/ana/agent-workshop/notes.mdse lee "el archivonotes.md, dentro deagent-workshop, dentro deana, dentro deUsers".
4. Qué significa ~ (tu carpeta personal)
Cada usuario de la computadora tiene su carpeta personal (en inglés, home). Ahí suelen estar Documentos, Descargas y Escritorio. Como su ruta completa es larga y cambia de persona a persona, los shells tienen un atajo: ~ (se llama "tilde" o "virgulilla").
| Escribes | Significa (ejemplo) |
|---|---|
~ | /Users/ana en Mac, /home/ana en Linux |
~/agent-workshop | La carpeta agent-workshop dentro de tu carpeta personal |
$HOME\agent-workshop | Lo mismo en PowerShell: C:\Users\ana\agent-workshop |
5. La carpeta "donde estás parado"
La terminal siempre está dentro de una carpeta, igual que una ventana del explorador de archivos. Los comandos actúan sobre esa carpeta, salvo que digas otra. Esto es clave para el taller: OpenCode trabaja sobre la carpeta donde lo abres, y solo sobre esa. Por eso creamos una carpeta de práctica aparte: el agente no puede ver ni tocar el resto de tu computadora desde ahí.
Qué vas a tener al final
Una carpeta en tu carpeta personal con exactamente tres archivos:
~ (tu carpeta personal)
|
+-- Documents/
+-- Downloads/
+-- ...
|
+-- agent-workshop/ <-- la carpeta de practica
|
+-- expenses.csv gastos de septiembre (datos de ejemplo)
+-- notes.md tus notas, con una meta de presupuesto
+-- opencode.json reglas para el agente: pedir permisoPaso 0. Descarga tu terminal: Warp o Visual Studio Code
Tu computadora ya trae una terminal, y funciona. Pero para el taller te recomendamos instalar una de estas dos, antes de la sesión. Las dos son gratuitas y funcionan en Mac, Windows y Linux.
| Warp (recomendada) | Visual Studio Code | |
|---|---|---|
| Qué es | Una terminal moderna | Un editor de código que trae una terminal adentro |
| Por qué ayuda | Se lee mejor, puedes seleccionar y editar lo que escribes como en un procesador de texto, y cada comando queda en su propio bloque con su resultado | Ves tus archivos en una columna a la izquierda y la terminal abajo, en la misma ventana |
| Para quién | Si quieres una sola ventana, sencilla, para la terminal | Si quieres ver y abrir tus archivos mientras trabajas |
| Descarga | warp.dev | code.visualstudio.com |
Cómo instalar Warp:
- Entra a warp.dev/download. La página detecta tu sistema; si no, elige Mac, Windows o Linux.
- Instálalo como cualquier aplicación. En Mac, arrástralo a Aplicaciones. En Windows, abre el instalador y sigue los pasos.
- Ábrelo. Te ofrece crear una cuenta: es opcional, puedes saltarte ese paso.
- En Windows, revisa que Warp abra PowerShell: los bloques de este taller para Windows están escritos para PowerShell. Si te pregunta qué shell usar, elige PowerShell.
Warp trae su propia IA. En este taller no la usamos. Escribe los comandos tal cual, como en cualquier terminal. El agente del taller es OpenCode, que corre dentro de la terminal. Si usas la IA de Warp y la de OpenCode a la vez, no sabrás cuál hizo qué.
La terminal (Warp, la de tu sistema o la de VS Code)
+---------------------------------------------------+
| $ cd ~/agent-workshop |
| $ opencode <-- OpenCode corre aquí |
| +---------------------------------------------+ |
| | OpenCode: el agente con el que trabajamos | |
| +---------------------------------------------+ |
+---------------------------------------------------+Si eliges VS Code, la instalación completa está más abajo, en la Opción B.
Paso 1. Abre una terminal
- Si instalaste Warp: ábrelo, en Mac, Windows o Linux.
- Mac: abre Terminal (búscala con
Cmd + Espacioy escribe "Terminal"). - Windows: abre Terminal o PowerShell desde el menú Inicio.
- Linux: la terminal de tu escritorio (suele abrirse con
Ctrl + Alt + T).
Escribe esto y presiona Enter:
echo holaecho es el comando más simple que existe: repite lo que le escribes. Si la terminal te contesta hola, está lista y entendió tu orden.
Si prefieres la Opción B, este paso lo puedes hacer más adelante desde la terminal integrada de VS Code.
Paso 2, Opción A: crea la carpeta con un solo bloque
Vamos a crear los tres archivos copiando un solo bloque y pegándolo en la terminal. Así no tienes que pelear con ningún editor de texto, y todos quedamos con archivos idénticos.
En Mac o Linux
Copia todo este bloque, pégalo en la terminal y presiona Enter:
mkdir -p ~/agent-workshop && cd ~/agent-workshop
cat > expenses.csv <<'EOF'
date,description,category,amount
2026-09-01,Groceries at the market,food,54.20
2026-09-02,Bus card top-up,transport,20.00
2026-09-03,Coffee with a friend,Food,6.50
2026-09-05,Internet bill,home,35.00
2026-09-07,Movie tickets,fun,18.00
2026-09-09,Groceries at the market,food,61.75
2026-09-12,Taxi home,Transport,12.40
2026-09-14,Electricity bill,home,42.10
2026-09-18,Lunch near the office,food,11.90
2026-09-21,Concert,fun,45.00
2026-09-25,Bus card top-up,transport,20.00
2026-09-28,Groceries at the market,food,58.30
EOF
cat > notes.md <<'EOF'
# Notas del presupuesto
- Quiero saber en qué se me va el dinero cada mes.
- Mi meta para octubre: gastar menos de 350 en total.
- Sospecho que la comida es lo más caro, pero no lo he sumado.
EOF
cat > opencode.json <<'EOF'
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "ask",
"bash": "ask"
}
}
EOF
lsQué hace este bloque, línea por línea
Parece mucho, pero son solo cuatro comandos distintos, repetidos.
| Línea | Qué hace | En palabras simples |
|---|---|---|
mkdir -p ~/agent-workshop | make directory: crea la carpeta. -p evita el error si ya existe | "Crea la carpeta agent-workshop en mi carpeta personal" |
&& | Une dos comandos: corre el segundo solo si el primero salió bien | "y luego" |
cd ~/agent-workshop | change directory: entra a la carpeta | "Párate dentro de esa carpeta" |
cat > expenses.csv <<'EOF' | Escribe en el archivo expenses.csv todo lo que viene después, hasta la línea EOF | "Todo lo que sigue, hasta que diga EOF, guárdalo en este archivo" |
| (las líneas de datos) | El contenido del archivo, tal cual | El texto que se guarda |
EOF | Marca el final del contenido (End Of File) | "Aquí termina" |
ls | list: muestra lo que hay en la carpeta | "¿Qué hay aquí?" |
Sobre cat > archivo <<'EOF': el símbolo > significa "manda el resultado a este archivo" (si ya existía, lo reemplaza). Y <<'EOF' significa "el texto que te voy a dar empieza en la siguiente línea y termina cuando veas EOF solo en una línea". Las comillas en 'EOF' le dicen al shell que copie el texto al pie de la letra, sin interpretar símbolos como $. Eso importa en opencode.json, que tiene un "$schema".
cat > notes.md <<'EOF' <-- "guarda en notes.md..."
# Notas del presupuesto \
|
- Quiero saber en que... | ...todo esto, tal cual...
- Mi meta para octubre... |
- Sospecho que la comida... /
EOF <-- "...hasta aqui"En Windows (PowerShell)
Abre PowerShell, copia todo este bloque, pégalo y presiona Enter:
New-Item -ItemType Directory -Force -Path "$HOME\agent-workshop" | Out-Null
Set-Location "$HOME\agent-workshop"
@'
date,description,category,amount
2026-09-01,Groceries at the market,food,54.20
2026-09-02,Bus card top-up,transport,20.00
2026-09-03,Coffee with a friend,Food,6.50
2026-09-05,Internet bill,home,35.00
2026-09-07,Movie tickets,fun,18.00
2026-09-09,Groceries at the market,food,61.75
2026-09-12,Taxi home,Transport,12.40
2026-09-14,Electricity bill,home,42.10
2026-09-18,Lunch near the office,food,11.90
2026-09-21,Concert,fun,45.00
2026-09-25,Bus card top-up,transport,20.00
2026-09-28,Groceries at the market,food,58.30
'@ | Set-Content -Encoding ascii expenses.csv
@'
# Notas del presupuesto
- Quiero saber en qué se me va el dinero cada mes.
- Mi meta para octubre: gastar menos de 350 en total.
- Sospecho que la comida es lo más caro, pero no lo he sumado.
'@ | Set-Content -Encoding utf8 notes.md
@'
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "ask",
"bash": "ask"
}
}
'@ | Set-Content -Encoding ascii opencode.json
ls
Qué hace el bloque de PowerShell
Es la misma receta, en el dialecto de Windows:
| PowerShell | Equivale a | Qué hace |
|---|---|---|
New-Item -ItemType Directory -Force -Path "$HOME\agent-workshop" | mkdir -p ~/agent-workshop | Crea la carpeta. -Force evita el error si ya existe |
| Out-Null | (nada) | Oculta el mensaje de confirmación, para que no estorbe |
Set-Location "$HOME\agent-workshop" | cd ~/agent-workshop | Entra a la carpeta |
@' ... '@ | <<'EOF' ... EOF | Un bloque de texto de varias líneas (here-string), copiado al pie de la letra |
| Set-Content -Encoding ascii expenses.csv | cat > expenses.csv | Guarda ese texto en el archivo, reemplazándolo si existía |
ls | ls | Muestra lo que hay en la carpeta |
El símbolo | se llama pipe (tubería): toma lo que sale del comando de la izquierda y se lo pasa al de la derecha. Aquí toma el bloque de texto y se lo pasa a Set-Content, que lo escribe en el archivo. -Encoding indica cómo se guardan las letras; notes.md usa utf8 porque tiene acentos.
+-------------------+ +---------------------+
| @' | | Set-Content |
| texto del archivo | pipe | -Encoding ascii |
| ... | --- | --> | expenses.csv |
| '@ | | (lo escribe) |
+-------------------+ +---------------------+Comprueba el resultado
Al final, ls te muestra lo que hay en la carpeta. Deberías ver los tres archivos: expenses.csv, notes.md y opencode.json. La carpeta queda en tu carpeta personal, con el nombre agent-workshop.
Es seguro pegar el bloque dos veces: vuelve a escribir los mismos archivos encima.
Paso 2, Opción B: con Visual Studio Code
Visual Studio Code (VS Code) es un editor de código gratuito. Para una primera vez tiene una gran ventaja: ves tus archivos en una barra lateral, y tienes una terminal dentro de la misma ventana. En la sesión, cuando el agente cree o cambie un archivo, lo vas a ver aparecer ahí mismo.
+----------------------------------------------------------------+
| VS Code |
+------------------+---------------------------------------------+
| EXPLORADOR | expenses.csv |
| | |
| AGENT-WORKSHOP | date,description,category,amount |
| expenses.csv | 2026-09-01,Groceries at the market,... |
| notes.md | ... |
| opencode.json | |
| +---------------------------------------------+
| (aqui ves los | TERMINAL |
| archivos que | $ opencode <-- aqui corre el agente |
| crea el agente)| |
+------------------+---------------------------------------------+1. Instala VS Code
Descárgalo de code.visualstudio.com, instálalo con las opciones por defecto y ábrelo.
2. Crea y abre la carpeta
- Ve a File > Open Folder (en español, Archivo > Abrir carpeta). En Mac el menú puede decir solo Open....
- En la ventana que se abre, ve a tu carpeta personal (la que lleva tu nombre de usuario).
- Crea una carpeta nueva llamada exactamente
agent-workshop(botón Nueva carpeta) y ábrela. - Si VS Code te pregunta si confías en los autores de la carpeta, di que sí: la carpeta es tuya.
3. Crea los tres archivos
En la barra lateral izquierda (el Explorador), pasa el ratón sobre el nombre de la carpeta y haz clic en el ícono de New File (Nuevo archivo). Escribe el nombre exacto y presiona Enter. Repite para los tres:
expenses.csvnotes.mdopencode.json
Luego abre cada uno, pega su contenido y guarda (Cmd + S en Mac, Ctrl + S en Windows y Linux). El contenido de cada archivo es el que aparece en el bloque de la Opción A entre la línea que dice <<'EOF' (o @') y la que dice EOF (o '@). No copies esas dos líneas, solo lo de en medio.
4. Abre la terminal integrada
Ve a Terminal > New Terminal (o presiona Ctrl + `, la tecla del acento grave, que suele estar junto al 1 o junto a la Ñ). Se abre una terminal abajo, ya parada dentro de agent-workshop. Escribe ls y deberías ver los tres archivos. Aquí mismo vas a abrir OpenCode en la sesión.
5. Solo en Mac: el comando code
Abre la paleta de comandos con Cmd + Shift + P, escribe Shell Command: Install 'code' command in PATH y selecciónalo. Esto te deja abrir VS Code desde la terminal escribiendo code ., y lo necesita la extensión de OpenCode para VS Code más adelante. En Windows el instalador ya lo hace por ti.
¿Y con otro editor de texto?
Si prefieres TextEdit o el Bloc de notas
También se puede, pero cada editor tiene su trampa. Estos son los pasos que funcionan:
- TextEdit (Mac): crea un documento nuevo y, antes de pegar, ve a Formato, Convertir a texto normal (o presiona Mayúsculas + Comando + T). Solo así el menú de guardar deja de ofrecerte RTF o Word. Pega, guarda con el nombre exacto y, si te pregunta, elige Usar .csv (o .md, o .json) en lugar de .txt.
- Bloc de notas (Windows): pega el contenido, ve a Archivo, Guardar como, cambia el tipo a Todos los archivos (*.*) y escribe el nombre exacto. Si no cambias el tipo, lo guarda como
expenses.csv.txt.
Por qué pasa esto: los programas no miran el contenido para saber qué es un archivo, miran la extensión (lo que va después del punto). Un expenses.csv.txt es, para OpenCode, un archivo de texto cualquiera y no una tabla de gastos.
Qué es cada archivo, y por qué está ahí
expenses.csv: los gastos de septiembre. CSV significa valores separados por comas: cada línea es una fila y las comas separan las columnas, como una hoja de cálculo en texto plano. Tiene algo raro a propósito. No lo corrijas: es parte del ejercicio.notes.md: tus notas, con una meta de presupuesto..mdes Markdown: texto normal donde#marca un título y-una lista.opencode.json: le dice al agente que te pida permiso antes de escribir un archivo ("edit": "ask") o ejecutar un comando ("bash": "ask"). Por defecto OpenCode edita sin preguntar. Para una primera vez queremos que pregunte, así ves cada cambio antes de que ocurra. OpenCode lee este archivo automáticamente cuando lo abres en esta carpeta.
Sin opencode.json Con nuestro opencode.json
----------------- -------------------------
Agente decide cambiar un archivo Agente decide cambiar un archivo
| |
v v
Lo cambia de inmediato Te muestra el cambio y pregunta
|
+---------+---------+
| |
Aceptas Rechazas
| |
se escribe no pasa nadaPaso 3. (Opcional) Instala OpenCode desde antes
Si quieres ganar tiempo, instálalo ya con los pasos de la Parte 2: Instalar OpenCode y conectarlo a un modelo, en la lección del módulo En vivo. Si algo falla, no te preocupes: lo resolvemos en los primeros minutos de la sesión.
Verifica que estás listo
- Una terminal (Warp, la de mi sistema o la de VS Code) respondió
hola. -
lsdentro deagent-workshopmuestraexpenses.csv,notes.mdyopencode.json.
¿Y si ls no muestra los tres archivos?
Lo más común es que el bloque se pegó incompleto. Vuelve a copiarlo entero, desde la primera línea hasta ls, y pégalo otra vez: es seguro repetirlo, reemplaza los archivos. Si usaste VS Code, revisa que los nombres no hayan quedado con otra extensión. Si aun así no sale, llega así: lo arreglamos en vivo en un minuto.
Para comprobar que entendiste
1. ¿Qué significa ~/agent-workshop?
La carpeta agent-workshop dentro de tu carpeta personal. ~ es el atajo del shell para tu carpeta personal, sea cual sea tu nombre de usuario.
2. En cat > notes.md <<'EOF', ¿qué papel juega la línea EOF que aparece más abajo?
Marca dónde termina el contenido. Todo lo que está entre cat > notes.md <<'EOF' y la línea EOF se guarda en notes.md, tal cual. En PowerShell, el mismo papel lo hacen @' y '@.
3. ¿Por qué hay que abrir OpenCode dentro de agent-workshop y no en cualquier lado?
Porque OpenCode trabaja sobre la carpeta donde lo abres: ahí lee, escribe y ejecuta. Si lo abres en otra carpeta, no ve tus archivos de práctica, y además no carga el opencode.json que le pide pedir permiso.
Resumen
- La terminal es una ventana para dar órdenes escritas; el shell (zsh, bash, PowerShell) es quien las ejecuta.
~es tu carpeta personal. - Creaste la carpeta
agent-workshopcon los tres archivos de práctica, con un bloque de terminal (Opción A) o con VS Code (Opción B), y sabes qué hace cada línea. opencode.jsonhace que el agente te pida permiso antes de cambiar algo. Siguiente paso: conseguir la llave de un proveedor de modelos.