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.
Layout
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.ListAgentsRPC (Claude Code, Codex, opencode, Gemini, Copilot, plus any future backends). Seedsproject.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.
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.
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.
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.
Secrets
Agent-readable instructions for accessing external services — CLI tools that need to be authenticated, environment variables, API keys, and where to find them.
Trash
Soft-deleted tasks live here until you restore or permanently delete them.
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.
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.
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.
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.
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
| Feature | Details |
|---|---|
| Tabbed sessions | Up to 5 shell tabs per project |
| Powered by node-pty | Runs in the Electron main process, not the daemon |
| Nerd Font support | Rich terminal rendering with icons and glyphs |
| Session cleanup | Sessions 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 Status | Display Label | Visual |
|---|---|---|
draft | Todo | Default style |
ready | In Development | Highlighted |
ready + agent active | In Development | Animated indicator |
done (success: true) | Done | Green indicator |
done (success: false) | Failed | Red 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.
| Section | Content |
|---|---|
| Appearance | Theme (System / Light / Dark) |
| Defaults | Automation 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. |
| Agents | Per-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. |
| Updates | Check frequency, auto-download toggle |