Primero iniciá la hackathon
Tenés que completar tu nombre y contraseña antes de entrar al contenido del día.
Dejás la Mac equipada
Bloque práctico: cómo instalar programas desde la terminal con tres package managers distintos (sin abrir un navegador a bajar un .dmg). De paso te topás por primera vez con el concepto de permisos — por qué Homebrew te pide la contraseña una vez y después nunca más.
El cierre del bloque es una idea que vas a usar todo el día: hay dos tipos de credenciales — las del sistema (tu contraseña de Mac) y las de servicios externos (API keys). Funcionan con la misma lógica.
Tres formas de instalar cosas desde la terminal
Durante el día vas a usar tres package managers distintos. Se parecen todos: un comando, un nombre de paquete, y listo.
| Package manager | Para qué | Comando típico |
|---|---|---|
Homebrew (brew) | Instalar programas de sistema en macOS | brew install git |
| uv | Paquetes y entornos de Python | uv add pandas |
| npm / npx | Herramientas de Node.js (JavaScript) | npm install -g foo · npx foo |
La diferencia entre npm y npx
La vas a ver todo el día al instalar herramientas de AI, así que importa:
npm install -g paquete→ descarga y deja instalado permanentemente el paquete. Queda en tu sistema.npx paquete→ descarga y corre al instante, ideal para probar una herramienta sin comprometerte a tenerla instalada para siempre.
Cuando instalemos Claude Code, Codex y otras herramientas del viernes, vas a ver mucho npx …. No es magia — es Node.js bajando y corriendo.
Verificá que ya los tenés instalados
Si hiciste el setup pre-hackathon, estos cuatro comandos deberían devolverte un número de versión:
brew --version
uv --version
npm --version
npx --version
Si alguno devuelve command not found, lo resolvemos en los primeros 15 min del viernes.
Permisos, sudo y la llave maestra
Es el primer momento del día donde el concepto de permisos te toca en serio. Te acordás del Bloque 1: cada comando lo ejecuta un usuario, y existe root — el superusuario — que manda sobre todo. Acá lo aplicamos.
- Tu usuario manda en tu home (
~). Podés crear, borrar, modificar lo que quieras ahí. - Pero en carpetas del sistema (ej.
/usr/local) no tiene permiso — son deroot. sudo(literalmente "super-user do") = "por este comando y sólo este, hacelo comoroot". Por eso te pide tu contraseña: para confirmar que sos vos antes de prestarte la llave maestra por un ratito.- Después de ese comando volvés a ser tu usuario normal.
sudono te convierte en root de forma permanente — solo te presta los poderes para esa línea.
Regla de oro: no le pongas sudo a todo. Si un comando falla sin sudo, pensá por qué antes de agregarlo. La mayoría de las veces lo que querés es correr en tu home, no pisar el sistema.
Dato curioso: Homebrew está diseñado explícitamente para no pedir sudo en el día a día (por eso instala en /opt/homebrew, que pasa a ser tuyo después del setup inicial). Solo pide contraseña una vez al instalarse. Eso es un package manager bien portado.
Valores que tu terminal "recuerda"
Una variable de entorno es un valor que tu shell mantiene en memoria y que cualquier programa puede leer por nombre. Ya tenés varias activas sin saber — definidas por macOS o por los programas que instalaste.
echo $HOME # tu carpeta personal (/Users/tu-usuario)
echo $USER # tu nombre de usuario
echo $PATH # los directorios donde la terminal busca programas
env # lista TODAS las variables de entorno activas
Cuando instalaste Homebrew, una de las cosas que hizo fue agregar /opt/homebrew/bin a tu $PATH — por eso ahora podés tipear brew desde cualquier lado y la terminal lo encuentra. Sin eso, tendrías que escribir el path completo cada vez.
Preview: las variables de entorno también son el lugar estándar donde los programas leen credenciales (API keys, passwords de bases de datos). En el Bloque 3 vamos a crear un archivo .env y leerlo desde Python — ahí el concepto se hace concreto.
Dos formas: nano o zed
Las variables de $PATH que viste recién, los aliases, la config de casi cualquier programa… todo eso vive en archivos de texto (~/.zshrc, .env, .gitconfig). Para modificarlos hace falta abrir un editor desde la terminal — abrir Finder para tocar un archivo oculto es tortura.
Hay dos caminos y vas a usar los dos durante el día. Usá el que te resulte más cómodo para cada situación:
Opción A · nano — editor adentro de la terminal
Existen tres editores clásicos de terminal: vim, emacs y nano. Los dos primeros son poderosísimos y tienen una curva brutal — "how to exit vim" es uno de los memes más viejos de internet. nano no tiene modos raros, no hay atajos secretos, y todos los comandos están escritos en la barra gris de abajo. Mejor todavía: ya viene preinstalado en macOS — no hay que instalar nada, funciona incluso si entrás por SSH a un servidor pelado.
nano archivo.txt # abre (o crea, si no existe) el archivo
nano ~/.zshrc # abrí tu config de shell
nano # sin argumentos: empezás uno en blanco
Adentro de nano vas a ver una barra gris abajo con los atajos. El símbolo ^ significa Ctrl (^O = Ctrl + O). Con estos cinco resolvés todo lo del día:
| Atajo | Qué hace |
|---|---|
Ctrl + O | Guardar (Output). Te confirma el nombre del archivo — Enter y listo. |
Ctrl + X | Salir. Si hay cambios sin guardar, te pregunta si querés guardarlos. |
Ctrl + K | Cortar la línea entera (Kut). Es la forma rápida de borrar líneas. |
Ctrl + U | Pegar (Uncut) la línea que cortaste. |
Ctrl + W | Buscar (Where is). Escribís el texto, Enter, te lleva al primer match. |
Con eso abrís, editás, guardás y salís. Si algún día te pica la curiosidad, Ctrl + G abre la ayuda completa adentro de nano.
Opción B · zed — saltar a tu editor visual
Cuando instalaste Zed en el pre-hackathon (Paso 8), además del editor quedó disponible un comando zed en tu terminal. Ese comando es el puente entre el lugar donde estás parado en la terminal y el editor visual. Dos usos, los dos clave:
zed archivo.txt # abre ESE archivo suelto en una pestaña de Zed
zed ~/.zshrc # abrís tu config en Zed con syntax highlighting
zed . # ← EL PATRÓN CLAVE: abre la carpeta actual
# como PROYECTO, con árbol de archivos y todo
zed ~/Development/mi-app # lo mismo pero apuntando a otra carpeta
El patrón que vas a usar todo el viernes es zed . (el punto = "la carpeta donde estoy ahora"). Estás en la terminal adentro de un proyecto, tipeás zed . y se te abre una ventana de Zed con el árbol de archivos del proyecto a la izquierda. La terminal queda donde estaba — ahora tenés dos ventanas trabajando juntas: editás en Zed, corrés comandos en la terminal, y el agente puede ver lo mismo que vos.
Cuándo conviene cada uno: nano para cambios rápidos y chicos (un alias en ~/.zshrc, una línea en un .env) sin salir de la terminal. zed . cuando vas a pasar un rato trabajando sobre un proyecto entero — editás múltiples archivos, navegás con el árbol, y el agente te puede leer el código con contexto.
Probá las dos ahora
Agregá un alias útil a tu shell con nano, y después abrí el mismo archivo con Zed para ver la diferencia:
# Camino 1: nano
nano ~/.zshrc # abrís adentro de la terminal
# bajás al final con las flechas, pegás:
alias ll="ls -la"
# Ctrl + O → Enter (guardar) → Ctrl + X (salir)
# Camino 2: zed
zed ~/.zshrc # se abre en una ventana de Zed
# editás con mouse, Cmd + S para guardar, cerrás la pestaña
# En cualquiera de los dos casos:
source ~/.zshrc # recargás la config en esta terminal
ll # probás tu nuevo alias
Por qué te lo mostramos acá: casi toda la configuración de tu máquina — y de las herramientas del viernes (configs de MCP en el Bloque 6, prompts, archivos .env) — vive en archivos de texto. Tener el reflejo nano para algo chico / zed . para meterte en un proyecto entero te ahorra fricción todo el día.
Dos tipos de credenciales, la misma lógica
Hoy viste tu contraseña de Mac en acción (sudo). Más adelante vas a manejar API keys. Las dos son credenciales — identidad + permisos — pero operan en planos distintos:
| Plano | Credencial | Qué gobierna |
|---|---|---|
| Interno (tu Mac) | Tu contraseña de usuario | Qué podés tocar en tu máquina — y cuándo elevar con sudo |
| Externo (servicios) | Tus API keys | Qué podés hacer en servicios remotos — y con qué cuota / permisos |
Las dos se protegen igual: nunca las compartas, nunca las subas a Git, y pensá antes de dar permiso elevado. Ese reflejo vale para tu contraseña de Mac y para una API key, aunque vivan en lugares distintos.
Instalar un par de paquetes nuevos
brew install htop # monitor de procesos — linda alternativa a Activity Monitor
htop # corrélo — Ctrl+C para salir
brew install jq # parsear JSON en terminal (lo vamos a usar mucho)
brew install gh # CLI de GitHub (lo usamos en el Bloque 6)
brew install tree # ver árboles de carpetas (si no lo tenías)
tree ~/Desktop # probá el tree sobre tu escritorio
Cada uno de estos vive ahora en tu $PATH — los podés invocar desde cualquier carpeta.
Para los que van rápido
- Explorá
brew search— tipeábrew search treepara ver todos los paquetes cuyo nombre contiene "tree". - Probá Ghostty como terminal alternativa:
brew install --cask ghostty. Es más rápida y linda que Terminal.app. - Agregá un alias a tu
~/.zshrc(ej.alias ll="ls -la") y despuéssource ~/.zshrcpara que tome el cambio sin reabrir la terminal. - Corré
env | lesspara ver todas las variables de entorno que ya tenés sin saber. Salís conq. - Mirá qué hay en tu
$PATH:echo $PATH | tr ':' '\n'te lo imprime una línea por directorio.
Cómo manejás hoy programas y credenciales
Este bloque toca dos temas: cómo instalás cosas y cómo cuidás las credenciales. Encuadre antes de arrancar:
- Cuando instalás una app nueva, ¿la bajás del sitio oficial o del primer link de Google?
- ¿Dónde guardás tus contraseñas hoy: password manager, un Doc de Google, post-it en pantalla, en la cabeza?
- ¿Te pasó alguna vez pegar una API key, token o password en Slack o un Doc sin querer? Honestidad.
- ¿Sabés de memoria qué apps de las que usás instalaste con un
.dmgvs las que vienen del App Store? ¿Cuál te parece más seguro y por qué?
¿Lo hiciste y lo entendés?
Dos listas independientes. Marcá lo que ya pudiste hacer (izquierda) y los conceptos que ya te cerraron (derecha). Si algo del "Me lo llevo" no te queda claro, preguntale a Gonza antes de pasar al Bloque 3.