Skip to main content
Watchfire
Honest comparison

Watchfire vs Goose.

Goose is Block's open-source, MCP-native agent — a CLI and desktop app that hosts a Claude (or other) model behind a tool-use loop and a growing catalogue of MCP extensions.

block.github.io/goose

The verdict

Pick Goose when you want a single, MCP-native agent runtime with a strong extension ecosystem and resumable conversational sessions. Pick Watchfire when you'd rather wrap whichever agent CLI you already use in a worktree, sandbox, and task contract.

At a glance.

The axes that actually differ between the two tools. The prose below this table is where the nuance lives — don’t pick a tool from a row alone.

  • Agent backend

    Goose

    Goose is itself an agent — runs Anthropic, OpenAI, Google, Bedrock, Ollama, or any LiteLLM-supported model.

    Watchfire

    Pluggable: Claude Code, OpenAI Codex, opencode, Gemini CLI, GitHub Copilot CLI, or Cursor Agent CLI.

  • Isolation

    Goose

    Runs in your working tree; sessions persist to disk so you can resume them.

    Watchfire

    Per-task git worktree on a dedicated watchfire/<n> branch.

  • Sandbox

    Goose

    No OS-level sandbox; tool calls (filesystem, shell, MCP extensions) are model-driven with per-call confirmation prompts.

    Watchfire

    Seatbelt on macOS, Landlock or Bubblewrap on Linux; ~/.ssh, credential stores, and .git/hooks blocked by default.

  • Parallelism

    Goose

    One session per terminal or desktop window.

    Watchfire

    One agent per project, many projects concurrently from a single daemon.

  • Git workflow

    Goose

    Edits the working tree; you commit yourself.

    Watchfire

    Reviewable branch per task; auto-merge opt-in.

  • Autonomy

    Goose

    Interactive conversational loop with sessions you can pause and resume.

    Watchfire

    Interactive or autonomous via Wildfire mode.

  • Local vs cloud

    Goose

    Local.

    Watchfire

    Local — nothing leaves your machine unless you ship it.

  • Multi-project

    Goose

    Per session.

    Watchfire

    First-class — many projects active concurrently.

  • Open source

    Goose

    Apache-2.0.

    Watchfire

    Apache-2.0.

  • Pricing

    Goose

    Free; you pay model API costs.

    Watchfire

    Free; you pay whatever your agent CLI's model costs.

When to pick Goose.

Pick Goose when you want an MCP-native agent runtime — extensions are first-class, the catalogue grows quickly, and adding a new tool is often as simple as installing an MCP server. Goose's session model (resume, branch, share) is genuinely useful for longer conversational work, and the desktop app is a clean way to keep a few agents handy without living in a terminal. Goose is Apache-2.0 and backed by Block's engineering team, with deliberate investment in MCP as the integration surface. If you want one CLI or desktop runtime that pulls together many tools through MCP, Goose is the right fit.

When to pick Watchfire.

Pick Watchfire when you want to keep using whichever agent CLI suits the job — Claude Code, Codex, opencode, Gemini, Copilot CLI, or Cursor Agent — and add isolation around it rather than swap it out. Watchfire runs that agent inside a per-task worktree on a watchfire/<n> branch under a platform sandbox that blocks ~/.ssh, credential stores, and .git/hooks by default. It also coordinates many projects from one daemon, with a Wildfire mode loop you can opt into. The agent loop stays where it is; the boundary around it is new.

Can they coexist?

Yes — they live at different layers. Goose is itself an agent; Watchfire is an orchestrator that drives agent CLIs. You can keep running Goose interactively in one terminal for conversational, MCP-extension-heavy work and use Watchfire to run task-shaped runs on a different agent CLI in another. They do not share working directory state — Goose edits your working tree, Watchfire works inside .watchfire/worktrees/ — so the only coordination needed is at merge time.

Side by side.

The same intent expressed in each tool’s idiom.

Goose

# Open an MCP-native conversational session
goose session start
> Fix the 500 when items is empty.

Watchfire

# Write the task once, walk away
watchfire task add "Fix 500 on empty items[]"
watchfire run all
Ready to go

Get started with Watchfire

Install in seconds. Define tasks. Let agents ship code for you.

Download for macOS

Available for macOS, Linux, and Windows

install
# Install via Homebrew (macOS)
$brew tap watchfire-io/tap
$brew install --cask watchfire-io/tap/watchfire
# Set up your project and go
$watchfire init
$watchfire task add "Build the login page"
$watchfire start --all

Includes GUI, CLI, and daemon. Also available via Homebrew.