Interlocking gears laced with glowing neural wires, suggesting an agent that drives real tools through many connected extensions.
Goose runs the machinery on your own box: an on-machine agent that drives real tools through MCP extensions.

Goose is an open-source AI agent that runs on your own machine as a desktop app, a command-line tool, and an embeddable API. It goes beyond suggesting code: it installs dependencies, executes commands, edits files, and tests its work locally. It extends through the Model Context Protocol , so the same agent can reach databases, APIs, browsers, and services through a growing set of MCP extensions. It is released under the Apache-2.0 license and is written mostly in Rust.

Goose was created by Block and is now governed by the Agentic AI Foundation (AAIF) at the Linux Foundation, a vendor-neutral, community-run home. The project moved to the aaif-goose organisation, and its documentation now lives at goose-docs.ai. It is a general-purpose agent rather than a coding-only tool, which makes it useful for research, data work, and automation as well as writing software.

Where Goose sits in the stack

Interfaces
Desktop app CLI API macOS, Linux, and Windows
Agent core
Planning and tool-calling loop Runs locally Installs, executes, edits, and tests on your machine
Extensions
MCP servers Built-in, command-line, remote Recipes (portable YAML) Connect databases, APIs, browsers, GitHub, and more
Models
Anthropic, OpenAI, Google Azure, Bedrock, OpenRouter Local: Ollama Model-agnostic, 15+ providers

Installation

Goose installs as a command-line tool through an official script. The desktop app is a separate download from the releases page.

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

After installing, configure a model provider before your first run.

bash
goose configure    # choose "Configure Providers", pick a provider, enter an API key

Two ways to use it

The first pattern is an interactive session. You start a session, work with the agent, and resume it later where you left off.

bash
goose session        # start a new session
goose session -r     # resume the previous session

The second pattern is adding an MCP extension so Goose can reach a new system. You can add one interactively, or load it directly when starting a session.

bash
# load a built-in extension and an MCP server at launch
goose session --with-builtin "developer" \
              --with-extension "uvx mcp-server-fetch"

For repeatable work, Goose captures a task as a recipe: a portable YAML file you can share with your team and run in CI. A minimal recipe needs a title, a description, and either instructions or a prompt.

yaml
version: "1.0.0"
title: "Summarize open issues"
description: "Fetch and summarize this week's open GitHub issues"
prompt: "List open issues opened in the last 7 days and group them by label"
settings:
  goose_provider: "anthropic"

Typical workflow

Step 1 Configure Run goose configure to set a model provider and API key.
Step 2 Extend Add MCP extensions so the agent can reach your tools and data.
Step 3 Run a session Ask Goose to do the work; it executes and tests locally on your machine.
Step 4 Capture a recipe Save the workflow as YAML to share with the team or run in CI.

How it compares

GooseOpenCodeClineClaude Code
MaintainerAAIF (Linux Foundation)Anomaly (SST)Cline BotAnthropic
LicenseApache-2.0MITApache-2.0Proprietary
SurfaceDesktop, CLI, APITerminal, IDE, webVS Code, CLITerminal, VS Code
ScopeGeneral-purpose agentCoding agentCoding agentCoding agent
Extends viaMCP plus recipesMCPMCPMCP
Best forOn-machine automationProvider-agnostic codingReviewed IDE editsAnthropic-native depth

When not to use it

  • You want a managed cloud service. Goose runs on your machine, so you own setup, secrets, and sandboxing. If you want a hosted agent with no local footprint, a cloud offering suits better.
  • You only want one model in one terminal. Goose is a broad, general-purpose agent. For a narrow single-vendor coding CLI, Claude Code or a lighter tool is less overhead.
  • You cannot grant local execution. Goose installs and runs commands on your machine. In environments where an agent cannot have that access, it is the wrong fit.
  • You need per-edit approval in an editor. For a reviewed, diff-by-diff IDE workflow, Cline is designed around that gate.

Further reading

Sources