Skip to main content
Watchfire
GUIShowing GUI interface

Better context. Better code.

Define what you want. Let Claude Code, Codex, opencode, Gemini CLI, GitHub Copilot CLI, and Cursor build it — safely.

Watchfire turns clear specs into scoped tasks, then hands each one to an agent in its own git worktree and sandbox. Better context in, better code out — with clean transcripts and full control at every step.

Read the manifesto →

Get updates

Releases, deep dives, and the occasional behind-the-scenes note. No spam.

Star us on GitHub

Help us reach more developers.

Modes

From pair programming to autonomous loops

Seven modes that cover interactive chat, single tasks, spec upkeep, and fully hands-off Wildfire runs.

Wildfire

Autonomous loop — execute ready tasks, refine drafts, generate new tasks, repeat.

Chat

Interactive session with the coding agent — ask questions, iterate, and pair-program.

Task

Execute a single task from the task list in its own worktree.

Start All

Run every ready task sequentially, one worktree per task.

Generate Definition

Auto-generate a project definition by scanning your codebase.

Generate Tasks

Break down the project definition into discrete, ready-to-run tasks.

Retrofit Definition

Fold completed tasks back into the definition — tasks are temporary, the definition is durable.

Any agent. One orchestrator.

Watchfire is backend-agnostic. Plug in your favourite CLI coding agent — or mix and match across tasks.

Fleet operations

One window for the whole fleet

Watchfire turns agents you have to babysit into a fleet you can supervise. The dashboard, notifications, insights, and integrations work together to keep you in the loop without staying on the keyboard.

Telegram bridge

Watchfire in your pocket

Pair your own bot with the daemon and run the fleet from any phone. Just type in the chat to talk to an agent — one starts if nothing is running — and watch mode streams the replies back.

  • /wildfireStart the autonomous loop from the bus stop and get a milestone feed: generated, implementing, merged.
  • /status allOne line per project — what's working, what's idle, what needs you.
  • /loginClaude's OAuth token expired? Tap the link, send the code back. No trip to the keyboard.

Outbound long-poll only — nothing listens on your machine. Pairing is a one-time code; unpaired chats get silence.

Set up the bridge in five minutes
Key features

Built for real agent workflows

Isolation, sandboxing, and orchestration — the plumbing that makes multi-agent safe.

01Orchestration

Task Orchestration

Ship work without babysitting sessions. Write tasks in YAML and the daemon handles the rest — picking up ready work, stopping sessions on completion, and chaining to the next task. Every run lands in the same clean transcript, no matter which backend produced it.

02Isolation

Git Worktree Isolation

Every task runs in its own git worktree on a dedicated `watchfire/<n>` branch — never the working tree you're in. Tasks run one at a time per project (the agent finishes one before starting the next), but each one is isolated from your branch and from any work in flight. Finished tasks auto-merge back to your default branch.

03Security

Sandboxed Execution

Your credentials and dotfiles stay off-limits, even if an agent goes off-script. Every session runs inside a platform-native sandbox — Seatbelt on macOS, Landlock or Bubblewrap on Linux — blocking ~/.ssh, credential stores, and git hooks by default. Restart protection stops runaway loops before they burn budget.

04Scale

Multi-Project Management

Drive every repo on your machine from one place. A single daemon runs multiple projects concurrently — each with its own task queue and one active agent at a time — so spreading work across repos is how you get real parallelism. The system tray keeps them all one click away.

Why Watchfire

What you get that the raw CLI doesn’t

Same agents you’d run yourself — wrapped in the safety rails you’d otherwise build by hand.

Isolation

Edits land directly on your working tree; one bad refactor and you're fighting git stash.

Isolation

Each task runs on its own git worktree and branch. Failed runs leave your main branch untouched.

Sandboxing

The agent inherits your shell's PATH, SSH keys, and cloud creds. One prompt-injected command, one bad call.

Sandboxing

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

Parallelism

One repo, one agent, one terminal. Three tasks waiting on the previous to merge.

Parallelism

One agent per project, but every project on your machine runs concurrently — open several repos and they all make progress at once.

Reviewability

Scrollback in your terminal is the only record. Hope you didn't clear it.

Reviewability

Clean transcripts captured per task; inline diff viewer on the worktree branch; insights track duration, tokens, and cost.

Orchestration

You manage what runs when, by hand.

Orchestration

Wildfire mode runs ready tasks, refines drafts, and generates new ones toward your project definition.

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.

The app

Every project, its own window

Watchfire.app puts your repos, tasks, branches, and live agent terminals in a multi-window desktop client — one window per project, one mission-control dashboard for the fleet — built on the same daemon as the CLI.

Watchfire.app project window layoutA schematic of a Watchfire project window showing the agent chat terminal as the wide left pane, the tabbed reference region for tasks, definition, and insights on the right, and the integrated terminal footer at the bottom.watchfireCHAT · PRIMARYChatBranchesLogsWildfire · ExecuteClaude CodeOpus 4.7 · 1M contextAGENT TERMINALChat · Branches · LogsFocus toggle → full widthREFERENCETasksDefinitionInsights···donein devtodoREFERENCE TABSTasks · Definition · InsightsSecrets · Trash · SettingsTerminal⌘`
Layout

Chat first, reference beside it

Each project window is chat-primary: the agent terminal is the wide left pane, with everything else in a tabbed reference panel on the right — so the live work surface leads and the paperwork stays one tab away.

  • Home window

    Mission control for the fleet — the dashboard rolls up every project, flags what needs attention, and opens each one in its own window. An always-on-top mini-monitor keeps it glanceable.

  • Chat pane

    The agent terminal, front and center — pick a backend, start any mode including Wildfire, and watch it work. A built-in terminal stays docked at the footer.

  • Reference panel

    Tasks, Definition, Insights, Secrets, Trash, and Settings in tabs on the right. Hide it when you want the chat full-width, pop it back when you need the paperwork.

Architecture

Three components, one system

A daemon orchestrates in the background while the CLI and GUI give you full control.

CLI / TUI

watchfire

Project-scoped commands plus a rich interactive TUI with split-pane task navigation and live output.

GUI (Watchfire.app)

Watchfire.app

Electron multi-window client with a native feel — one window per project, a mission-control dashboard, and embedded live terminals.

Daemon (watchfired)

watchfired

Background service handling orchestration, PTY management, git workflows, and the gRPC API.

FAQ

Questions, answered

The honest version — what Watchfire does, what it doesn’t, and how it stays out of your way.

How is this different from running Claude Code, Codex, or another agent directly?
Watchfire wraps any of those CLIs in a per-task git worktree and a platform sandbox, fed by structured task files and reviewed through clean transcripts. Each project runs one agent at a time, but every project on your machine runs concurrently — so you can spread work across repos and let it drain in parallel, then inspect every change before it lands on your default branch. The agent stays the same; the workflow around it gets safer and repeatable.
How does Watchfire compare to Aider, Cursor, or Devin?
Short version: those are agents (or in Cursor’s case, an editor with an agent mode); Watchfire is an orchestrator that runs the coding-agent CLIs you already trust inside sandboxed per-task git worktrees, with one agent per project and many projects running concurrently. See the full comparison for tool-by-tool positioning.
Which agent backends are supported?
Claude Code, OpenAI Codex, opencode, Gemini CLI, GitHub Copilot CLI, and Cursor Agent today. Backends are pluggable, so you can mix and match across tasks or switch any time. See the supported-agents reference for install paths and per-backend notes.
Is my code and are my credentials safe?
Every macOS and Linux session runs inside a platform-native sandbox — Seatbelt (sandbox-exec) on macOS, Landlock (kernel 5.13+) with a Bubblewrap fallback on Linux — with ~/.ssh, credential stores, and .git/hooks blocked by default. Restart protection caps runaway loops before they burn budget. Full sandboxing details.
What platforms does Watchfire run on?
macOS, Linux, and Windows. Sandboxing is enforced on macOS (Seatbelt) and Linux (Landlock or Bubblewrap); Windows currently runs agents unsandboxed, so prefer macOS or a recent Linux kernel for security- sensitive work.
Is it free? Open source?
Yes — Watchfire is open source under the Apache License 2.0. The full source for the daemon, CLI/TUI, and GUI lives at github.com/watchfire-io/watchfire.
Do I need to use the GUI, or can I run everything from the terminal?
The CLI (watchfire) and the interactive TUI cover everything the GUI does — they all talk to the same daemon over gRPC. The Electron GUI is just another client; pick whichever fits your workflow, or use both side by side.
Can Watchfire post to Slack or Discord, or open GitHub PRs automatically?
Yes. Watchfire ships outbound adapters for webhooks, Slack, Discord, and GitHub auto-PR, plus an inbound HTTP server with HMAC + Ed25519 signature verification, OAuth bot tokens for Slack and Discord, per-IP rate limiting, GitHub Enterprise / GitLab / Bitbucket parity, Slack interactive buttons, and Discord guild auto-registration — so those services can drive the daemon back. See the integrations docs.
How do I see what an agent actually did?
Every task has an inline file-by-file diff viewer that works pre-merge (against the merge base of watchfire/<n>) and post-merge (reconstructed from the merge commit), and a per-task Insights record captures duration, tokens, and cost. GUI walkthrough · Insights & metrics.
Blog

From the blog

Notes, releases, and deep dives from the team building Watchfire.

View all posts

Torch 10.0: Watchfire in your pocket

7 min

Torch pairs a Telegram bot with the daemon so you can supervise every project from your phone — and not just with commands: just type in a paired chat and you're talking to a chat agent, with the replies streaming back. It works with no public endpoint, no tunnel, and no port forward, because the daemon dials out. Around the tentpole: a definition-retrofit mode, batch quick-add, and a burn-down of long-standing friction.

Firestorm 9.4: the tofu and the bell

3 min

Two GUI issues had been sitting open: every Nerd Font icon in the embedded terminals rendered as a missing-glyph box, and the notification bell was a read-only list with a count that only ever went up. 9.4 closes both. The font fix is a small lesson in how Chromium resolves glyphs; the notification fix is a small lesson in never shipping a badge without a way to clear it.

Firestorm 9.3: cleaning up after ourselves

4 min

Every non-Claude agent session materializes a scratch home directory under ~/.watchfire — and until now, nothing ever deleted it. One directory per project × mode × task, forever, surviving even project deletion. 9.3 fixes the leak twice: sessions clean up after themselves, and deleting a project sweeps whatever its sessions left behind. The interesting part is deciding what not to delete.

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.