Skip to main content
Watchfire
Main content

Glossary

Quick definitions for Watchfire-specific terms — release codenames, agent modes, components, project model, isolation, Beacon vocabulary, and integrations.

Quick definitions for Watchfire-specific terms. For deeper explanations follow the cross-links.

Index

Release codenames

Ember

The 0.x and 1.0 release line that shipped the original Claude Code-only daemon, CLI/TUI, and GUI on macOS, Linux, and Windows. Changelog →

Spark

The 2.x release line that introduced the pluggable agent backend interface and shipped Claude Code, OpenAI Codex, opencode, and Gemini CLI as first-class backends. Changelog →

Blaze

The 3.x release line that added GitHub Copilot CLI as a fifth first-class backend. Changelog →

Beacon

The 4.x release line — the consolidated dashboard, notifications, insights, and integrations release. Changelog →

Flare

The 5.x release line — closes the Beacon inbound loop with the GitHub PR-merge handler and Slack HTTP transport, adds OAuth bot tokens, GitHub Enterprise / GitLab / Bitbucket inbound parity, per-IP rate limiting, Slack interactive components, Discord guild auto-registration, the run-all auto-merge halt fix, and macOS-style category sub-pages with search in Settings. Changelog →

Agent modes

Chat mode

Free-form interactive session with the coding agent at project root, with no task context. Agent modes →

Task mode

Single-task execution where the agent receives a task's prompt and acceptance criteria and works inside an isolated worktree. Agent modes →

Start All mode

Sequential execution of every ready task in turn, each in its own worktree. Agent modes →

Wildfire mode

Fully autonomous three-phase loop — execute ready tasks, refine drafts, generate new tasks, then repeat until no work remains. Agent modes →

Generate Definition mode

One-shot mode where the agent analyses the codebase and writes the project definition. Agent modes →

Generate Tasks mode

One-shot mode where the agent reads the project definition and creates a batch of task files. Agent modes →

Components

Daemon

The always-on Go process (watchfired) that owns orchestration, PTY management, git worktree workflows, the gRPC server, and the system tray. Daemon doc →

CLI/TUI

The watchfire binary — project-scoped CLI commands plus a Bubbletea-based interactive split-view TUI. CLI/TUI doc →

GUI

The Electron desktop client (Watchfire.app) that shows every project across the fleet at once. GUI doc →

Echo server

The inbound HTTP server inside the daemon (internal/daemon/echo) that receives signed requests from external services like Slack, Discord, and GitHub. Integrations doc →

Relay dispatcher

The outbound delivery component (internal/daemon/relay) that subscribes to the notification bus and fans events out to every registered adapter. Integrations doc →

System tray

The dynamic menu-bar icon rendered by internal/daemon/tray that surfaces per-project status, today's notifications, and quick stop/quit actions. Daemon doc →

Project model

Project

A registered Watchfire workspace — one git repository plus its .watchfire/ directory and entry in ~/.watchfire/projects.yaml. Projects and Tasks →

Task

A unit of work described by a YAML file in .watchfire/tasks/, flowing through draft → ready → done and optionally pinned to a specific backend. Projects and Tasks →

Project YAML

The project.yaml file inside .watchfire/ that holds project id, default agent, sandbox mode, auto-merge / auto-delete-branch / auto-start flags, and the project definition. Projects and Tasks →

Task YAML

A single <n>.yaml file inside .watchfire/tasks/ that carries task_id, task_number, title, prompt, acceptance_criteria, status, success, and an optional per-task agent override. Projects and Tasks →

.watchfire directory

The per-project gitignored directory that holds project.yaml, tasks/, memory.md, secrets/, and active worktrees/. Projects and Tasks →

Isolation

Worktree

A per-task git worktree at .watchfire/worktrees/<task_number>/ on branch watchfire/<task_number>, where the agent makes changes without touching the main working tree. Worktrees doc →

Sandbox

The platform-specific isolation layer Watchfire wraps every agent process in, configured via sandbox: auto | seatbelt | landlock | bwrap | none. Sandboxing doc →

Seatbelt

The macOS sandbox backend (sandbox-exec / Apple's App Sandbox) that enforces a kernel-level filesystem and credential-directory deny-list generated from the runtime SandboxPolicy. Sandboxing doc →

Landlock

The preferred Linux sandbox backend, using the kernel's Landlock LSM (5.13+) with no external dependencies. Sandboxing doc →

Bubblewrap

The fallback Linux sandbox backend (bwrap) that uses mount namespaces with a read-only root and a writable project directory. Sandboxing doc →

Backend

A single Go implementation of the Backend interface in internal/daemon/agent/backend/ — one per supported coding agent (claude-code, codex, opencode, gemini, copilot) — that owns binary resolution, command construction, system-prompt delivery, transcript discovery, and sandbox extras. Supported agents →

Beacon vocabulary

Notification bus

The typed channel-fan-out Bus in internal/daemon/notify that emits stable-ID notification events to every subscriber, with a JSONL fallback at ~/.watchfire/logs/<project_id>/notifications.log. Daemon doc →

Notification kind

The discriminator on every notification event — TASK_FAILED, RUN_COMPLETE, or WEEKLY_DIGEST — that determines toast routing, channel rendering, and gating. Integrations doc →

Notification preferences

The defaults.notifications block in ~/.watchfire/settings.yaml controlling master toggle, per-event toggles, sounds, volume, quiet hours, and per-project mute. Daemon doc →

Idempotency cache

The 1000-entry / 24-hour LRU+TTL cache in internal/daemon/echo/idempotency.go that drops duplicate inbound deliveries via Seen(key). Integrations doc →

Signature verification

The constant-time HMAC-SHA256 (GitHub, Slack) and Ed25519 (Discord) verifiers in internal/daemon/echo/verify.go that authenticate inbound requests with a 5-minute drift window. Integrations doc →

Insights

The per-project and cross-project aggregation surface that turns <n>.metrics.yaml files into KPIs, agent donuts, duration histograms, and rollup cards. Insights doc →

Metrics

The <n>.metrics.yaml siblings in .watchfire/tasks/ capturing duration, exit reason, agent, tokens, and cost for every completed task. Insights doc →

Diff viewer

The structured FileDiffSet produced by internal/daemon/diff (capped at 10 000 lines) that resolves pre-merge diffs against <merge-base>...HEAD and post-merge diffs against the merge commit, surfaced in the GUI Inspect tab and the TUI overlay bound to d. Worktrees doc →

Focus events

The DaemonService.SubscribeFocusEvents stream that routes click-throughs from the system tray and OS notifications to the right project, task, or digest in a connected client.

Status bar

The muted dashboard line N working · N needs attention · N idle · N done today rendered above the project grid in the GUI. GUI doc →

Filter chips

The dashboard pill chips (All, Working, Needs attention, Idle, Has ready tasks) whose selection persists in localStorage[wf-dashboard-filter]. GUI doc →

Layout toggle

The dashboard LayoutGrid / Rows3 toggle that switches the GUI dashboard between project cards and a one-row-per-project list, persisted in localStorage[wf-dashboard-layout]. GUI doc →

Integrations

Adapter

A single implementation of the relay Adapter interface — one per outbound destination (webhook, Slack, Discord, GitHub auto-PR) — owning its template rendering, retry timing, and circuit breaker. Integrations doc →

Webhook adapter

The generic adapter that POSTs the canonical notify.Notification payload to a user-supplied URL with an X-Watchfire-Signature: sha256=<hex> HMAC over the raw body. Integrations doc →

Slack Block Kit

The three header / section / context / actions envelopes (TASK_FAILED, RUN_COMPLETE, WEEKLY_DIGEST) rendered by internal/daemon/relay/slack.go for the Slack adapter. Integrations doc →

Discord rich embed

The three project-color-tinted embed envelopes rendered by internal/daemon/relay/discord.go for the Discord adapter, with a defensive 4000-rune description trim. Integrations doc →

GitHub auto-PR

The opt-in per-project end-of-task lifecycle in internal/daemon/git/pr.go::OpenPR that pushes the watchfire/<n> branch and opens a pull request via gh api. Integrations doc →

Slash command router

The transport-agnostic Route(ctx, cmd, subcmd, rest, CommandContext) CommandResponse in internal/daemon/echo/commands.go that powers status, retry <task>, and cancel <task> across every inbound transport. Integrations doc →

On this page