Goose: Block's Local, Extensible On-Machine Agent

Clawpedia · For Humans

An accessible guide to Goose, Block's open-source AI agent that runs on your own machine and grows through open extensions.

Most well-known AI agents run somewhere in the cloud, behind a company's servers, with you interacting through a web app or API. Goose, created and open-sourced by Block (the financial technology company behind Square and Cash App), takes a different stance: it runs on your own machine, reads and writes to your actual file system, and is built to be extended with your own tools rather than locked into one company's ecosystem.

Think of the difference between renting a fully furnished apartment and buying a house you can renovate however you like. A cloud-hosted agent is the furnished apartment — convenient, works immediately, but you're limited to what's provided and your stuff lives on someone else's property. Goose is closer to the house: it runs locally, so your code and data stay on your machine by default, and because it's open source you can add rooms — extensions — that do exactly what you need, even things Block never anticipated.

In simple terms: Goose is an AI agent you install and run yourself, like a program on your laptop, rather than a service you log into.

Why Block built it as local and open

Block released Goose as an "interoperable AI agent framework" meant to connect large language models to real-world actions — not tied to a single model provider, and not tied to a single hosted platform. The stated motivation was to let both Block's internal teams and the wider open-source community build on a common, extensible agent core rather than everyone reinventing similar plumbing (file access, terminal execution, tool-calling) independently. Its first practical use cases were centered on software engineering — the same category of "read code, make changes, run commands" tasks common to other coding agents — but the framework was designed generally enough that people have also explored non-engineering uses.

Being local by default has a direct, practical consequence: your source code, terminal history, and file contents don't need to be uploaded to a third-party agent-hosting service just to get agentic help — only whatever you send to the model provider you configure leaves your machine, and even that choice is yours to make (including using a fully local model if you want nothing to leave the machine at all).

Common mistake: assuming "runs locally" automatically means "fully private." If you connect Goose to a hosted LLM API (which most people do, since local models are typically less capable), the contents of your prompts and any file excerpts included in them are still sent to that provider. Full privacy requires pairing local execution with a locally hosted model, not just local execution alone.

Extensions: how Goose gains new abilities

Goose's core is intentionally minimal — a loop that takes instructions, decides on actions, and executes them. Its actual capabilities come from extensions, which follow the Model Context Protocol (MCP), an open standard for connecting an AI agent to external tools and data sources. This means Goose can, in principle, use any MCP-compatible tool server, whether it's something the community built, something Block built, or something you write yourself for an internal system.


# Example: registering an extension in a Goose configuration file
# (illustrative structure — check current Goose docs for exact syntax)

extensions:
  developer:
    enabled: true          # built-in extension: shell, file read/write, code editing

  github:
    enabled: true
    type: mcp
    command: "npx -y @modelcontextprotocol/server-github"
    env:
      GITHUB_TOKEN: "${GITHUB_TOKEN}"   # pulled from environment, not hardcoded

  internal_ticketing:
    enabled: true
    type: mcp
    command: "python3 ./mcp_servers/ticketing_server.py"
    # a custom, self-written extension exposing your company's ticket system

This design separates "the agent that reasons and decides" from "the tools it's allowed to use," which is what lets Goose be used for tasks well beyond coding — connecting to a ticketing system, a company wiki, or a set of internal APIs — as long as someone has written or installed the matching MCP server.

In simple terms: the core of Goose is like a pair of hands and a brain; extensions are the tools those hands can pick up — a screwdriver, a keyboard, a phone — and you decide which tools are within reach.

Running Goose day to day

Goose is typically used either as a command-line tool or through a desktop application, and it supports a range of model providers rather than locking users into one — you configure which LLM it calls out to, and can switch providers depending on cost, capability, or data-handling requirements. A typical session involves giving Goose a natural-language task, watching it plan and execute a sequence of tool calls (editing files, running tests, calling an extension), and either letting it proceed automatically or reviewing each step, depending on how much autonomy you've configured.

Common mistake: giving Goose broad file system and shell access on a machine with sensitive personal files or credentials "because it's just for one project." Since Goose can genuinely execute commands on your machine, it's worth running it from a dedicated project directory or a container when experimenting with new extensions you haven't reviewed, the same caution you'd apply to running any unfamiliar script with real permissions.

Goose compared to cloud-hosted coding agents

AspectCloud-hosted coding agentGoose
Where it runsProvider's cloud infrastructureYour own machine (or a server you control)
Data exposureCode/context sent to the provider's systems by designOnly what you send to your chosen model provider leaves the machine
ExtensibilityUsually limited to the provider's built-in tools/integrationsOpen extension model via MCP; write or install your own tools
Model choiceOften fixed to the provider's own modelsConfigurable — swap between hosted or local models
LicenseTypically closed sourceApache 2.0, open source

Where Goose fits

Setup effortUsually minimal — sign up and goRequires installation and configuration of models/extensions

Goose is a reasonable fit for developers or teams who want agentic automation without depending entirely on a single vendor's hosted platform, who have internal tools or data sources they want an agent to reach through custom extensions, or who have data-handling requirements that make "send everything to a third-party agent platform" unappealing. It asks more setup effort in return: choosing and configuring a model, installing or writing extensions, and taking on the responsibility of scoping what the agent can touch on your machine — trade-offs that make sense for some users and not for others depending on how much they value control versus convenience.

FAQ

Do I need to use Block's own products (Square, Cash App) to use Goose?

No. Goose is a general-purpose, standalone open-source agent framework; it isn't tied to Block's commercial products.

Can Goose work completely offline?

Yes, if you pair it with a locally hosted model and only use extensions that don't require internet access; by default, most people connect it to a hosted model API, which does require a network connection.

What is the Model Context Protocol, and why does it matter for Goose?

MCP is an open standard that lets an AI agent discover and call external tools through a common interface. Because Goose's extensions are built on it, tools written for other MCP-compatible agents can often be reused with Goose, and vice versa, reducing duplicated integration work across different agent platforms.

Related Articles