Skip to main content

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.

The Coven daemon is a single Rust process per host. It owns:
  • 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.
Clients (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

PathPurpose
$COVEN_HOMERoot state directory. Default ~/.coven on macOS/Linux.
$COVEN_HOME/coven.sockUnix socket the daemon binds.
$COVEN_HOME/coven.tomlOptional config overrides.
$COVEN_HOME/store.dbSQLite session ledger and event log.
$COVEN_HOME/logs/Per-day daemon logs.
See $COVEN_HOME for the full layout and how to relocate it.

Daemon control

coven daemon start
coven daemon status
coven daemon restart
coven daemon stop
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:
GET /api/v1/health
The response includes:
  • apiVersion — the named contract (coven.daemon.v1).
  • capabilities — the discoverable feature set.
  • daemon.uptime, daemon.pid, daemon.startedAt.
See Capabilities handshake.

Authority boundary

The daemon validates every request, even from local clients. See Authority boundary. Clients are convenience layers, not trust roots.