Skip to main content
Watchfire
Commands
Main content

watchfire daemon

watchfire daemon manages the watchfired background process — start, stop, restart, and inspect the daemon that orchestrates every agent session.

Manage the Watchfire daemon (watchfired).

Usage

watchfire daemon <subcommand>

Subcommands

daemon start

Start the daemon process.

watchfire daemon start

Starts watchfired if it's not already running. This is usually not needed — the daemon is started automatically when you run any project-scoped command.

daemon status

Show daemon status information.

watchfire daemon status

Displays the daemon's host, port, PID, uptime, and number of active agent sessions.

daemon stop

Stop the daemon.

watchfire daemon stop

Sends a SIGTERM to the daemon process, gracefully shutting it down. All active agent sessions will be terminated.

Notes

  • The daemon starts automatically when you run commands like watchfire run, watchfire wildfire, or launch the TUI
  • Multiple CLI/TUI instances can connect to the same daemon simultaneously
  • If the daemon shuts down, all connected CLI/TUI instances will close
  • The daemon manages all projects registered in ~/.watchfire/projects.yaml
  • The daemon orchestrates every supported agent backend (Claude Code, Codex, opencode, Gemini, Copilot) — it is not tied to a specific agent. See Supported Agents.

Examples

Start the daemon manually for debugging

watchfired --foreground

Running watchfired directly in the foreground prints startup output to your terminal — useful when watchfire daemon start exits silently and you need to see why. See Daemon won't start.

Quick health check

watchfire daemon status

Sample output:

host:    127.0.0.1
port:    37291
pid:     54812
uptime:  4h 12m
sessions: 2 active

The sessions line tells you how many agent sessions the daemon is currently driving across all registered projects.

Stop and restart cleanly

watchfire daemon stop
watchfire daemon start

Use this pair after a Watchfire upgrade or when the connection-info file has gone stale and the CLI hangs on connection refused.

Common pitfalls

  • Daemon already runningwatchfire daemon start exits because watchfired is already up. Fix: run watchfire daemon status first; only stop/start if you actually want a fresh process.
  • Stop terminates every active sessionwatchfire daemon stop kills every connected agent across every project, not just the current one. Fix: let in-flight tasks finish first, or stop only the specific session via the TUI/GUI.
  • Stale ~/.watchfire/daemon.yaml — CLI reports connection refused even though the daemon "should" be up. Fix: see CLI/TUI can't connect to daemon.

On this page