@beevibe/daemon
Local. Registers with the API, claims sessions pinned to this machine, and spawns the Claude Code CLI to run them.
The daemon is the bridge between your laptop and the rest of the stack. It exists because your CLI lives on your machine, your tokens live on your machine, and your files live on your machine. The daemon doesn't proxy your work — it sets up the workspace and launches the CLI with the right environment.
Three commands
# 1. one-time registration with an api server
beevibe-daemon setup --api https://api.beevibe.io --user-token bv_u_…
# 2. start claiming
beevibe-daemon start
# 3. self-update (Bun-compiled binaries)
beevibe-daemon update
bash
setup
Probes PATH for known CLIs (claude, etc.), POSTs /runtime/register, and stores a daemon-specific token in ~/.beevibe/config.json. The user token (bv_u_) is used once and never written to disk. The daemon token (bv_d_) is what every later call uses.
start
Loads the config, fetches the latest skills, opens a WebSocket to the API, and begins the claim loop. No flags — everything comes from the config file and environment.
update
Downloads the latest GitHub release, verifies the SHA-256, and does an atomic rename. For npm or source installs it prints the right command and exits.
Config file
Written to ~/.beevibe/config.json with mode 0600 (only the owner can read it). The directory is created at 0700.
{
"api_url": "https://api.beevibe.io",
"external_id": "macbook-pro.local",
"daemon_id": "dmn_…",
"daemon_token": "bv_d_…",
"runtimes": [{ "id": "rt_…", "cli": "claude" }]
}
json
Concurrency
A single global cap across all sessions on this machine. Default is 10. Override at start time:
BEEVIBE_DAEMON_MAX_CONCURRENT=4 beevibe-daemon start
bash
Per-agent caps (one task session at a time, three mesh requests at once) are enforced server-side — you don't have to configure them here.
Polling, heartbeat, reconnect
Workspaces and env
For each session, the daemon writes a per-agent directory under ~/.beevibe/workspaces/<agent_id>/. Inside is an mcp-config.json with the agent's bearer token. The spawned CLI reads that file and calls the API's MCP endpoint directly.
Skills are cached at ~/.beevibe/skills/ and refreshed on every start. The daemon caches by version so unchanged skills don't re-download.
What it isn't
- Not an MCP proxy. The daemon never sees the agent's token in the request path. The CLI calls the API directly.
- Not the agent. Agent semantics, memory rules, task lifecycle — all server-side.
- Not persistent. The only state on disk is the config file and the skills cache. Restart-safe.
Source
For setup-flag details, exact reconnect formulas, and the supervisor's cancellation model, see packages/daemon/README.md on GitHub.