View as markdown

hive daemon

The operator surface for Hive’s auto-advancing dispatcher. One long-running process watches every registered project and automatically dispatches the next workflow verb (plan, develop, open-pr, review, artifacts, finalize) for any task that’s ready to move, then archives tasks once their PR merges. Reach for it when you want Hive to drive tasks forward on its own.

The daemon stops at human-input gates — questions, triage, plan approval, and finalize while the PR is still open — so it never advances past a point that needs you.

Usage

hive daemon install [--force]
hive daemon enable PROJECT | --all
hive daemon start [--detach] [--dry-run]
hive daemon status [--json]
hive daemon tail
hive daemon stop
hive daemon disable PROJECT | --all
hive daemon reload
hive daemon queue [list | show <id> | prune]

Subcommands

Subcommand What it does
install Installs the autostart service (systemd-user on Linux, launchd on macOS) so the daemon survives reboot. --force overwrites an existing unit (the previous one is backed up).
enable PROJECT / enable --all Enrols a project for dispatch by setting daemon.enabled: true in its config.
disable PROJECT / disable --all Stops dispatching for a project. The next tick honours it automatically.
start Starts the daemon. --detach runs it in the background; --dry-run logs every dispatch decision without spawning any work.
status Reports running / not-running plus uptime, PID, log path, and autostart-service state.
tail Follows the daemon log.
stop Gracefully stops the daemon, waiting for in-flight children before escalating. Idempotent.
reload Reloads config at the next tick; in-flight work continues.
queue [list\|show\|prune] Read-only inspection of the dispatch-request queue the bot writes and the daemon consumes.

Most subcommands (stop, status, reload, enable, disable, install, queue) accept --json and emit a typed envelope for automated callers.

Key configuration

Concurrency and cost caps live under daemon: in ~/Dev/hive/config.yml:

Key Default Purpose
poll_interval_sec 30 How often to run a full status scan.
max_concurrent_runs 3 Global cap on tasks running at once. Raising it multiplies cost.
max_concurrent_per_project 3 Per-project burst cap.
max_runs_per_day_per_project 50 Circuit breaker for runaway loops.

Examples

# First-time setup: install the service and enrol a project
hive daemon install
hive daemon enable my-project

# Shake it down in dry-run for a while, then go live
hive daemon start --dry-run
hive daemon tail
hive daemon stop
hive daemon start --detach

# Cost runaway? Stop everything, or drop one project mid-flight
hive daemon stop
hive daemon disable my-project

See Operating for the full day-2 guide: service setup, autostart, dry-run shakedown, and troubleshooting.