The Coven daemon is a single Rust process per host. It owns:Documentation Index
Fetch the complete documentation index at: https://docs.opencoven.ai/llms.txt
Use this file to discover all available pages before exploring further.
- Live session state and PTY lifecycle for every supported harness.
- The SQLite session ledger and the append-only event log.
- The HTTP-over-Unix-socket API under
/api/v1. - Capability discovery and action routing in front of adapters.
- Path canonicalization, project-root validation, and authority checks.
coven CLI/TUI, comux, OpenMeow, the external OpenClaw plugin) never spawn harness PTYs themselves. They ask the daemon.
Lifecycle
start, status, restart, stop — and what each one actually does.Socket API
HTTP over Unix socket. Handshake with
GET /api/v1/health.Safety model
Trust boundary, secret handling, and automation approvals.
Where the daemon lives
| Path | Purpose |
|---|---|
$COVEN_HOME | Root state directory. Default ~/.coven on macOS/Linux. |
$COVEN_HOME/coven.sock | Unix socket the daemon binds. |
$COVEN_HOME/coven.toml | Optional config overrides. |
$COVEN_HOME/store.db | SQLite session ledger and event log. |
$COVEN_HOME/logs/ | Per-day daemon logs. |
$COVEN_HOME for the full layout and how to relocate it.
Daemon control
status shows the pid, socket path, uptime, and the negotiated apiVersion. Use it before depending on the daemon in a script.
Health handshake
Every client should begin with:apiVersion— the named contract (coven.daemon.v1).capabilities— the discoverable feature set.daemon.uptime,daemon.pid,daemon.startedAt.