Watchfire
Components

GUI (Watchfire.app)

A guided tour of Watchfire.app, the Electron multi-project client for managing tasks, monitoring agents, and reviewing work.

GUI (Watchfire.app)

The GUI is a multi-project client built with Electron. Unlike the CLI/TUI (which is project-scoped), the GUI shows every registered project in one place and connects to the daemon over gRPC-Web.

Watchfire dashboard showing four project cards with task counts and progress bars

Layout

Watchfire.app window layoutA schematic of the Watchfire app showing the sidebar on the left, the main content area in the centre with a terminal footer, and the collapsible right panel for chat, branches, and logs.watchfireDashboardPROJECTSwatchfirewebsiteafterlightanima+ Add Project⚙ SettingsMAINwatchfireChatmain · github.com/watchfire-io/watchfireTasksDefinitionSecretsTrashSettingsdonein devtodoTerminal⌘`RIGHT PANELChatBranchesLogsClaude CodeOpus 4.7 · 1M contextBRANCHESwatchfire/0061mergedwatchfire/0062in devSIDEBARProjects · SettingsAlways visible

The window splits into three regions:

  • Sidebar — the flame mark, project list, "Add Project," and the Settings entry. Always visible.
  • Main content — either the Dashboard or the active Project View, with the integrated terminal docked as a footer (toggle with Cmd+`).
  • Right panel — Chat, Branches, and Logs. Collapsible — pop it out when you want to focus on the main area.

Dashboard

The dashboard is the home view: every registered project rendered as a card with its color dot, current branch, default agent, and a Todo / In Dev / Done task summary with a progress bar. Click any card to drop into the Project View.

  • Project cards with name, color dot, branch, and active-agent badge
  • Task counts (Todo / In Dev / Done) and a progress bar
  • "Add Project" entry to launch the project wizard
  • Live status — dots and counts update as agents work

Add Project Wizard

A three-step wizard for adding new projects:

Step 1 — Project Info

  • Project name
  • Path (folder picker)
  • Git status (auto-detected)
  • Branch (auto-detected)

Step 2 — Git Configuration

  • Target branch
  • Auto-merge on completion
  • Delete branch after merge
  • Auto-start tasks
  • Coding agent — picker populated from the daemon's SettingsService.ListAgents RPC (Claude Code, Codex, opencode, Gemini, Copilot, plus any future backends). Seeds project.default_agent.

Step 3 — Project Definition

  • Markdown editor for project context
  • Skip option for later

Project View

Selecting a project opens the split layout: a tabbed main area for managing the project, and a collapsible right panel for live agent output and history.

Project view with the Tasks tab open and the Chat panel docked on the right, ready for a new agent session

Main Tabs

Tasks

Tasks are grouped by status (Draft, Ready, Done) with search, filters, and a "New Task" button. Each row shows a compact agent badge when its agent field overrides the project default.

Task list grouped into In Development and Done sections, with status badges on each row

Opening a task brings up the task editor — title, prompt, acceptance criteria, status, and an agent picker with a leading Project default option. The form preserves its contents during background polling, so edits aren't lost when the task list refreshes.

Task edit modal with title, prompt, acceptance criteria, status toggle, and agent selector

Definition

A markdown editor for the project definition — the persistent context every agent reads before starting work. Use it for architecture, key files, conventions, and constraints.

Project Definition tab showing the Watchfire definition rendered as markdown

Secrets

Agent-readable instructions for accessing external services — CLI tools that need to be authenticated, environment variables, API keys, and where to find them.

Project Secrets tab showing Markdown setup instructions for CLI tools, env vars, and credentials

Trash

Soft-deleted tasks live here until you restore or permanently delete them.

Project Trash tab in its empty state

Settings

Per-project configuration — name, color (which propagates everywhere instantly), default agent, and the automation toggles for auto-merge, auto-delete branches, and auto-start tasks. The Danger Zone unregisters the project; no files are deleted.

Project Settings tab showing name, color picker, agent dropdown, automation toggles, and a Danger Zone

Right Panel

The right panel docks live agent output and history. Toggle it open or closed at any time.

Chat

The Chat tab streams the live agent terminal from the daemon. Watchfire clears the terminal before each new subscription, so switching projects or wildfire phase transitions never accumulate stale output. Tasks the agent creates during chat appear in real-time in the Tasks tab without a manual refresh.

Project view with a live Chat session — agent output streaming on the right while the task list updates on the left

The toolbar above the terminal exposes the agent modes — Generate, Plan, Run All, Wildfire, and Stop.

Branches

A live view of every active worktree and branch with status (in development, merged, conflict) and inline actions to merge, delete, or open in your editor.

Branches tab listing watchfire worktrees with merge status badges

Logs

Per-task session history. The Logs tab renders formatted conversation transcripts (User/Assistant messages with tool call summaries) for every supported backend — Claude Code, Codex, opencode, Gemini, Copilot — and falls back to raw PTY scrollback when no transcript is available.

Logs tab listing past task and chat sessions with timestamps and statuses

Integrated Terminal

The GUI includes a built-in shell terminal, separate from the agent Chat terminal in the right panel. It appears as a footer bar at the bottom of the Project View.

Opening the Terminal

  • Click the footer bar at the bottom of the project view, or
  • Press Cmd+` (backtick) to toggle

The footer bar expands upward into a resizable bottom panel. Drag the top edge to adjust height.

Features

FeatureDetails
Tabbed sessionsUp to 5 shell tabs per project
Powered by node-ptyRuns in the Electron main process, not the daemon
Nerd Font supportRich terminal rendering with icons and glyphs
Session cleanupSessions are cleaned up on project switch or app quit

This is a general-purpose shell — use it for running builds, git commands, or anything else without leaving the GUI. The agent Chat terminal in the right panel streams the coding agent's output from the daemon and is a separate interface.

Task Status Display

Internal StatusDisplay LabelVisual
draftTodoDefault style
readyIn DevelopmentHighlighted
ready + agent activeIn DevelopmentAnimated indicator
done (success: true)DoneGreen indicator
done (success: false)FailedRed indicator

Global Settings

Open Settings from the bottom of the sidebar to manage app-wide preferences — appearance, the defaults applied to every new project, and the per-backend binary paths the daemon should use to launch agents.

Global Settings showing Appearance theme picker, defaults for new projects, and agent binary paths with auto-detection status
SectionContent
AppearanceTheme (System / Light / Dark)
DefaultsAutomation toggles for new projects, plus the default coding agent used when a project hasn't chosen one. Includes an "Ask per project" option that forces watchfire init to prompt every time.
AgentsPer-backend binary paths — claude, codex, opencode, gemini, copilot. Leave blank to fall back to PATH and common install locations. Also shows auto-detection status and install instructions for each backend.
UpdatesCheck frequency, auto-download toggle

On this page