Skip to main content
Watchfire
~2 min read

A two-minute tour of Watchfire.

Six annotated screens, one screen per step. By the end you'll know what a project, a task, a worktree, and Wildfire mode are — and how the TUI and GUI fit together.

Step 1Define your project

Tell Watchfire what you’re building.

watchfire init drops a project.yaml in your repo. It pins the default agent, the sandbox policy, and a plain-English definition the agent reads on every task — so context arrives the same way every time.

1

definition

A short brief in your own words — stack, conventions, goals. The agent re-reads it on every task, so context doesn’t drift.
2

default_agent

Which CLI runs your tasks: claude-code, codex, opencode, gemini, copilot, or cursor. A task can override it.
3

auto_merge

When the agent finishes, the worktree branch is merged back into main automatically. Set to false to review first.

Full schema in /docs/quickstart.

Step 2Add tasks

Each unit of work is one YAML file.

A task is a title, a prompt, acceptance criteria, and a status. Tasks flow draft → ready → done. The daemon never starts a draft; only ready tasks get an agent.

Task status flow: draft, ready, donedraftreadydoneyou markagent finishes
1

prompt

What the agent should do. Be specific — point at files, name functions, link existing patterns to follow.
2

acceptance_criteria

How the agent (and you) know it’s done. Bullet-list the user-visible outcomes, not the implementation.
3

position

Sort order in the task list. Start All and Wildfire pick tasks in this order.

Build one interactively at /playground, or copy a template.

Step 3Launch the TUI

Drive the whole thing from the terminal.

watchfire opens a Bubbletea TUI: task list on the left, live agent terminal on the right, status bar at the bottom. Everything is keyboard-driven and works the same over SSH.

1

Task list

Every task in the current project, grouped by status. Press j/k to move, s to start the selected one. CLI docs →
2

Agent terminal

The right pane streams the running agent’s PTY — exactly what you’d see if you ran the CLI by hand. shortcuts →
3

Status bar

Daemon state, current project, and a hint for the next keystroke. ? opens the full key map.
4

Project switcher

Press Ctrl+f for the cross-project fleet view to jump between repos without leaving the TUI.
Step 4Pick an agent mode

Six modes, one mental model.

Each mode wires the agent to a different scope of work — from a single conversation to a fully autonomous loop. Pick one in the TUI with a single keystroke, or pass it to watchfire run.

Chat

Interactive session in the project root — pair-program, ask, iterate.

Task

Run one task in its own worktree on branch watchfire/<n>.

Start All

Drain every ready task sequentially, one worktree per task.

Wildfire

flagship

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

Generate Definition

One-shot: scan the codebase and write project.definition.

Generate Tasks

One-shot: read the definition and create new task files.

Plain-English definitions of every mode in /glossary.

Step 5Watch it run

One worktree per task. The daemon is the conductor.

When a task starts, the daemon creates a fresh git worktree on watchfire/<n>, sandboxes the agent inside it, and streams its terminal. When the agent finishes, the branch merges back to main.

Watchfire daemon orchestrating worktreesA schematic of the Watchfire daemon at the center coordinating three isolated git worktrees, each on its own branch, all branching off main.mainwatchfiredconductorwatchfire/0061isolated worktreedonewatchfire/0062isolated worktreerunningwatchfire/0063isolated worktreeready
1

Isolated worktrees

Each task gets its own directory and branch. Tasks can’t step on each other’s files even when they run in parallel.
2

Sandboxed agents

On macOS the agent runs under sandbox-exec; ~/.ssh, ~/.aws, and .env are off-limits.
3

Auto-merge

When success: true lands in the task file, the daemon merges the branch back to main and deletes the worktree.

Architecture deep-dive: /docs/components/daemon.

Step 6Multi-project

Run many projects, each in its own window.

Watchfire.app is an Electron client over the same daemon — a mission-control home window for the whole fleet, plus an independent window per project with the agent chat as the wide main pane and a tabbed reference panel beside it.

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⌘`
1

Home window

Every registered project on this machine, rolled up in the dashboard — what’s running, what needs attention. Click a project to open it in its own window.
2

Chat up front

The agent terminal is the wide left pane of each project window. Pick a backend, start any mode — Wildfire included — and watch it stream.
3

Reference tabs

Tasks, Definition, Insights, Secrets, Trash, Settings — a tabbed panel on the right. Hide it when you want the chat full-width.

Full GUI walkthrough: /docs/components/gui.