Guía11 min

Goose: guía práctica del agente open source (CLI, Desktop y MCP)

Resumen

Goose es el agente open source de Block (ahora en la Agentic AI Foundation): app de escritorio, CLI en Rust y API. Esta guía práctica en español cubre instalación, goose configure, sesiones, extensiones MCP, modos de permiso y .goosehints. Incluye un flujo de 30 minutos y el checklist para no dejarlo autónomo en un repo con secretos.

GitHub
Escritorio y terminal con un agente local conectado a un proveedor LLM y extensiones MCP

Qué resuelve

Esta pieza se queda en la decisión práctica: qué instalar, qué riesgo agrega y cómo aplicarlo sin romper operación.

Goose no es un chat al lado del editor. Es un agente nativo (Desktop + CLI + API) que corre en tu máquina, habla con 15+ proveedores y se extiende con MCP. Vive en la Agentic AI Foundation; el repo activo es aaif-goose/goose. Si buscas “cómo usar Goose IA”, la pregunta real es qué superficie y qué modo de permiso usar.

El mapa de opciones está en mejores agentes de código en 2026. La comparativa Claude Code vs Codex, en Claude Code vs Codex. El hub, en construir agentes.

Qué es Goose, en una frase útil

Goose es un agente de propósito general escrito en Rust. No está atado a un modelo: Anthropic, OpenAI, Gemini, Ollama, OpenRouter, Azure, Bedrock, GitHub Copilot o el router de Tetrate. El CLI y la app de escritorio comparten la misma config. La extensión Developer viene encendida por defecto y puede editar archivos y correr comandos.

El default de permisos es Completely Autonomous. Eso no es un detalle: es el riesgo. Si lo dejas así en un repo con .env, Goose no te pregunta.

Instalar: Desktop o CLI

La guía oficial de instalación da dos caminos. El CLI es el que debes dominar si ya vives en terminal.

curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | bash

Sin wizard interactivo:

curl -fsSL https://github.com/aaif-goose/goose/releases/download/stable/download_cli.sh | CONFIGURE=false bash

En macOS con Homebrew:

brew install --cask block-goose
brew install block-goose-cli

Después: goose --version, goose update para estable, goose update --canary solo si quieres el canal de desarrollo. En Windows el script pide Git Bash, MSYS2 o PowerShell; si avisa PATH, añade $HOME/.local/bin. Si el keyring falla, no guardes el secreto ahí: la instalación lo documenta.

El Desktop se baja como zip o .deb. En Mac M3, si no abre ventana, da permisos de lectura/escritura a ~/.config.

goose configure: el proveedor primero

Sin proveedor no hay agente. En CLI:

goose configure

Elige Configure Providers, el proveedor y el modelo. El quickstart sugiere Tetrate Agent Router (failover y rate limit; $10 de crédito la primera vez que autenticas desde Goose). GitHub Copilot no usa API key: genera un código, lo pegas en el browser y listo.

goose info enseña versión, ruta de config, sesiones y logs. goose info -v añade env y extensiones. No copies ese dump a un chat.

Sesión: un hilo, no un clone

Una sesión es una conversación continua. En CLI:

mkdir goose-demo && cd goose-demo
goose session -n demo-tic-tac-toe

Resume, no abras otra:

goose session --resume -n demo-tic-tac-toe
goose session --resume --session-id 20251108_2

--fork duplica historia en una sesión nueva. --edit (solo con --resume) abre el YAML en $EDITOR para recortar mensajes. --max-turns 25 pone techo (default 1000). --max-tool-repetitions corta loops de la misma tool con los mismos args.

El prompt del quickstart es deliberadamente chico:

create an interactive browser-based tic-tac-toe game in javascript where a player competes against a bot

Goose planea y escribe. Tú revisas el diff. No le pidas “arregla el repo” en el primer turno.

Flujo de una sesión Goose: configurar proveedor, abrir sesión, pedir una tarea acotada y revisar el diff

Extensiones: MCP, no plugins mágicos

Las extensiones son servidores MCP. Goose chequea malware conocido antes de activar una externa.

Built-ins útiles:

ExtensiónQué haceDefault
Developerarchivos y comandoson
Computer Controllerbrowser, scraping, automatizacionesoff
Memorypreferencias entre sesionesoff
Skillscarga instrucciones tipo skillon
Todolista de tareason
Extension Managerenciende/apaga extensiones en calienteon

CLI:

goose configure
# Add Extension → Built-in Extension → Computer Controller, timeout 300

O en una sesión:

goose session --with-builtin developer
goose session --with-extension "memory:npx -y @modelcontextprotocol/server-memory"

Sin name:, Goose nombra la extensión por el launcher (npx__search). Con nombre explícito, memory__search. Resume con goose session -r después de cambiar extensiones.

Computer Controller no es “el navegador de Chrome DevTools”. Es una extensión que abre y raspa. Actívala solo cuando la tarea lo pide.

Permisos: el knob que importa

La tabla oficial:

ModoQué haceCuándo
Completely Autonomousedita, corre tools, borra sin preguntardemos locales, repos desechables
Manual Approvalconfirma cada toolprimer día, repos con secretos
Smart Approvalautoaprueba bajo riesgo, pregunta lo demásel default razonable
Chat Onlyno toca disco ni extensionesleer y planear

Default: Autonomous. En CLI, a mitad de sesión:

/mode smart_approve
/mode approve
/mode chat
/mode auto

Si Goose propone y tú aplicas, empieza en approve o chat. Es el mismo criterio que plan mode vs agent mode.

Cuatro modos de permiso: autónomo, aprobación, smart y solo chat

.goosehints: contexto que no cabe en el prompt

.goosehints es un archivo de texto. Global: ~/.config/goose/.goosehints. Local: en el directorio del proyecto. Si chocan, gana el local. Hace falta la extensión Developer.

Escríbelo cuando te oyes repetir “no toques pnpm, usa worktrees, nunca git add .”. No es un SKILL.md ni un AGENTS.md: es hints de Goose. Si el repo ya tiene AGENTS.md, dile a Goose que lo lea; no dupliques mil líneas.

Reinicia la sesión después de editar hints. Goose no recarga el archivo a mitad de un turno.

Goose vs Aider vs OpenCode

GooseAiderOpenCode
SuperficieDesktop + CLI + APIsolo CLITUI + run
Modelo15+ proveedores / ACPcualquiera con APIproviders del CLI
ExtensionesMCP built-in + directoryrepo-map + gitMCP + AGENTS.md
Permisos4 modos, default autónomogit como redel TUI muestra diffs
Encajeagente general en tu máquinapair programmer de gitagente de terminal en el repo

Si quieres que cada edit sea un commit, usa Aider. Si quieres un TUI atado a AGENTS.md, OpenCode. Goose gana cuando necesitas Desktop + CLI + MCP en el mismo config, o un agente que no es solo código (research, automatización local).

Flujo de 30 minutos

  1. Instala el CLI. goose --version.
  2. goose configure → proveedor que ya pagas. Nada de keys en el prompt.
  3. /mode smart_approve o approve antes del primer pedido.
  4. cd a un repo de prueba, no a producción. goose session -n prueba-30m --max-turns 20.
  5. Un ticket: “añade un healthcheck HTTP en /health y un test”.
  6. Revisa el diff. Si el modo es autónomo y no te gustó, git restore -- path — no reset --hard.
  7. Si necesitas browser, enciende Computer Controller y vuelve a resumir la sesión.
  8. Escribe 8 líneas en .goosehints local. Reinicia. Repite el mismo pedido y mira si deja de preguntar lo obvio.

El curso de arranque sigue en /curso/instalar-agente. Goose es una superficie, no el agente de producción.

FAQ

¿Goose sustituye a Claude Code? No. Claude Code es un CLI de Anthropic con hooks y skills propios. Goose es open source, multi-proveedor y MCP-first. Puedes hasta elegir “Claude Code CLI” como proveedor dentro de goose configure.

¿Puedo dejarlo autónomo? Sí, y es el default. No lo hagas en un repo con secretos, pagos o main desprotegido. Empieza en approve.

¿Dónde viven las sesiones? goose info te da la ruta. goose session list las lista. No pegues el JSON al LLM.

¿Y Ollama? Goose lista Ollama como proveedor. Útil para prototipos locales; el techo de calidad lo pone el modelo, no el CLI.

Checklist

  • CLI instalado con el script stable o Homebrew block-goose-cli
  • Proveedor configurado; key fuera del chat
  • Modo distinto de Autonomous en repos reales
  • Primera sesión con -n y --max-turns
  • Developer on; Computer Controller off hasta que haga falta
  • .goosehints local con 5–15 líneas, no un ensayo
  • Diff revisado antes de commit; paths explícitos, nunca git add .