Goose
Type: full-code · Vendor: Block · Language: Rust (CLI), TypeScript (desktop) · License: Apache-2.0 · Status: active · Status in practice: emerging · First released: 2025-01-28
Block's open-source on-device general-purpose AI agent for code and workflows, with first-class MCP extensions, portable YAML recipes, parallel subagents, and a broad provider matrix.
Description. Goose is a Rust-based desktop app + CLI + API agent that runs on the user's machine and connects to 15+ LLM providers and 70+ MCP extensions. Workflows are captured as portable YAML recipes that bundle instructions, extensions, parameters, and subrecipes — shareable across teams and runnable in CI. Subagents fan out independent tasks in parallel against isolated file scopes. Computer-use is via MCP extensions (browsers, screens) rather than a native screen-grab loop.
Agent loop shape. Single-process agent (desktop app or CLI) with a ReAct tool-use loop over MCP extensions. The active recipe (if any) seeds instructions, parameters, and extensions; the agent then iterates: tool call → observation → next call, until done. Subagents can be spawned to run independent tasks in parallel against isolated file scopes; subrecipes encapsulate reusable sub-workflows.
Primary use cases
- on-device general-purpose AI agent for code and workflows
- MCP-extension-driven tool integration across 70+ tools
- portable YAML recipes for shareable, CI-runnable workflows
- parallel subagents for fan-out tasks
Key concepts
- MCP extensions → mcp (docs) — 70+ MCP servers wire databases, APIs, browsers, GitHub, and more.
- Recipes → skill-library (docs) — Portable YAML workflows packaging instructions, extensions, parameters, and subrecipes.
- Subagents → subagent-isolation — Independent agents spawned to handle tasks in parallel.
- Provider matrix (docs) — 15+ LLM providers (Anthropic, OpenAI, Google, Ollama, OpenRouter, Azure, Bedrock).
- Desktop + CLI + API — Three surfaces over the same core agent.
Patterns this full-code implements —
- ★★Code Execution
Goose can install, execute, edit, and test inside the user's machine.
- ★★Model Context Protocol
70+ MCP extensions are the documented tool surface.
- ★★ReAct
ReAct-style tool-use loop: model uses extension-provided tools and tool calls drive iteration until task completes.
- ★★Step Budget
GOOSE_MAX_TURNS environment variable + recipe `max_turns` setting + per-subagent budget (GOOSE_SUBAGENT_MAX_TURNS) define a documented turn-limit step-budget knob.
- ★★Tool Use
Tools are functions within extensions; 70+ extensions provide them; autonomy/permission per tool is configurable.
- ★Subagent Isolation
Subagents handle tasks in parallel with isolated file scopes per agent.
- ★Skill Library
Recipes (YAML) are portable, shareable workflows with subrecipes — a skill library by another name.
- ★Computer Use
Computer-use is wired in via MCP extensions (browsers and similar tools), not a native screen-grab loop.
Neighbourhood
Click any neighbour to follow the lineage. Scroll to zoom, drag to pan.