Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
756 changes: 33 additions & 723 deletions README.md

Large diffs are not rendered by default.

319 changes: 215 additions & 104 deletions SECURITY.md

Large diffs are not rendered by default.

43 changes: 43 additions & 0 deletions docs/DOCS-MAINTENANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,49 @@ When moving a topic:
4. Keep normative details here only when the public page links back to the
source contract.

## Public-doc directory boundary

The repository's public-doc directories may contain only two kinds of pages:

- **Canonical pointers** — a stable repository entry point whose body links to
the canonical `docs.opencoven.ai` route. Use this shape:

```md
---
title: "<existing page title>"
description: "Pointer to the canonical <topic> guidance."
---

Canonical <topic> guidance: **https://docs.opencoven.ai/docs/<route>**

<optional one-line note retaining a source-adjacent contract link>
```

- **Source-adjacent exceptions** — a page that must evolve with the code
(contracts, maintainer source maps, verification procedures). Every retained
page states its source-adjacent ownership reason, either in the page itself
or in the ownership table in [`README.md`](../README.md) and
[`docs/index.md`](index.md).

Public-doc directories today: `docs/install/`, `docs/platforms/`,
`docs/start/`, `docs/help/`, `docs/harnesses/`, `docs/models/`,
`docs/memory/`, `docs/guides/`, `docs/reference/`, and the public operation
pages of `docs/daemon/`. Source-adjacent trees (`docs/design/`,
`docs/development/`, `docs/superpowers/`, `docs/architecture/`,
`docs/security/`) and the top-level normative contracts are exempt.

Do not add a new public page to these directories, and do not restore
duplicated prose. If a canonical target is missing, the local page stays
unchanged until the canonical coverage lands in `coven-docs` — topical
similarity alone is not duplication, and an absent canonical target blocks
removal, never forces a rewrite here.

Public user guidance pages that remain because their canonical target is still
pending (for example the platform pages retained until
`scripts/onboarding-docs-test.mjs` is migrated to canonical-pointer
expectations) are listed as pending exceptions in the tracking issue, not
silently kept.

## Public content stance

All committed documentation is public. It should describe OpenCoven and Coven
Expand Down
2 changes: 2 additions & 0 deletions docs/architecture/mobile-device-pairing-delivery-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ Exit criteria: language-level tests and cross-implementation vectors pass.

### PR 3 — TUI enrollment and device administration

Detailed slice plan: [`mobile-device-pairing-tui-bootstrap-plan.md`](mobile-device-pairing-tui-bootstrap-plan.md) (issue #785).

- `coven device pair`
- scope selection and permission preview
- terminal QR plus copyable fallback
Expand Down
777 changes: 777 additions & 0 deletions docs/architecture/mobile-device-pairing-tui-bootstrap-plan.md

Large diffs are not rendered by default.

620 changes: 620 additions & 0 deletions docs/design/mobile-assurance-step-up-v1.md

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,3 +28,5 @@ implementation:
implementation decisions, plans, and historical records.

See [`DOCS-MAINTENANCE.md`](DOCS-MAINTENANCE.md) before adding or moving a page.
Its public-doc directory boundary defines which directories may contain only
canonical pointers or source-adjacent exceptions.
73 changes: 5 additions & 68 deletions docs/install/cargo.md
Original file line number Diff line number Diff line change
@@ -1,73 +1,10 @@
---
summary: "Build and install Coven directly from crates.io with cargo."
read_when:
- You prefer building Rust binaries yourself
title: "Install via cargo"
description: "Install Coven from source with cargo: build the Rust daemon and CLI, drop the binary on PATH, and verify the install with coven doctor."
description: "Pointer to the canonical Coven install guidance."
---

# Install via cargo
Canonical install guidance, including the source-checkout route:
**https://docs.opencoven.ai/docs/guide/install**

Use this route when you want to build the Rust CLI yourself. For most users, [Install via npm](/install/npm) is the shorter path.

## From a checkout

```sh
git clone https://github.com/OpenCoven/coven.git
cd coven
cargo build -p coven-cli --release
mkdir -p "$HOME/.local/bin"
cp target/release/coven "$HOME/.local/bin/coven"
coven doctor
```

On Windows, copy `target\release\coven.exe` to a directory on `PATH`, then open a new terminal and run:

```powershell
coven doctor
```

## Running without copying

From the repository checkout:

```sh
cargo run -p coven-cli -- doctor
cargo run -p coven-cli -- daemon start
cargo run -p coven-cli -- run codex "describe this repo"
```

## Harness setup

Coven still needs a harness CLI for real agent work:

```sh
npm install -g @openai/codex
codex login
```

```sh
npm install -g @anthropic-ai/claude-code
claude doctor
```

Run `coven doctor` after installing or changing harness auth.

## Updating a cargo-built binary

```sh
cd /path/to/coven
git pull --ff-only
cargo build -p coven-cli --release
cp target/release/coven "$HOME/.local/bin/coven"
coven daemon restart
coven doctor
```

Use the Windows binary name when updating a Windows install.

## Related

- [Install from source](/install/from-source)
- [COVEN_HOME layout](/daemon/coven-home)
- [Updating Coven](/install/updating)
Contributor build and verification instructions remain in
[`CONTRIBUTING.md`](../../CONTRIBUTING.md).
35 changes: 5 additions & 30 deletions docs/install/coven-home.md
Original file line number Diff line number Diff line change
@@ -1,35 +1,10 @@
---
summary: "What lives under COVEN_HOME and how to relocate it."
read_when:
- Customizing where Coven keeps state
title: "COVEN_HOME layout"
description: "How to lay out COVEN_HOME on a fresh install: the SQLite ledger, append-only event log, sockets, and per-session directories the daemon expects."
description: "Pointer to the canonical daemon configuration guidance."
---

`COVEN_HOME` is Coven's local state directory. If you do not set it, Coven uses `<home>/.coven`.
Canonical daemon configuration guidance, including relocating `COVEN_HOME`:
**https://docs.opencoven.ai/docs/daemon/configuration**

Coven resolves `<home>` from the normal platform home directory. On Windows this includes `USERPROFILE` and `HOMEDRIVE` + `HOMEPATH`, so `coven doctor` should not require a Unix-style `HOME` variable.

The directory contains:

- `coven.sqlite3` — the local session ledger;
- `daemon.json` and daemon sockets/pipes — local daemon metadata;
- `sessions/` and event logs — per-session artifacts;
- `familiars.toml` — optional local familiar declarations;
- `adapters/` — trusted local harness adapter manifests, including recipes created by `coven adapter install <id>`.

Override it only when you want Coven state somewhere else:

```sh
export COVEN_HOME="$HOME/.coven"
coven doctor
```

PowerShell:

```powershell
$env:COVEN_HOME="$env:USERPROFILE\.coven"
coven doctor
```

See [Install overview](/install/index) for the broader install flow.
The normative source-adjacent state-layout contract remains in
[`../daemon/coven-home.md`](../daemon/coven-home.md).
87 changes: 3 additions & 84 deletions docs/install/docker.md
Original file line number Diff line number Diff line change
@@ -1,88 +1,7 @@
---
summary: "Run the Coven daemon inside a Docker container."
read_when:
- Containerizing Coven for CI or homelab use
title: "Docker"
description: "Run Coven in Docker: a containerized daemon plus harness CLIs, with bind mounts for COVEN_HOME and the project root for each session."
description: "Pointer to the canonical Coven deployment guidance."
---

# Docker

Docker is an advanced setup path. This repository does not define a canonical Coven application image in the install docs; build your own image when you need container isolation for CI, demos, or a homelab.

Use native installs for normal workstation use: [macOS](/install/macos), [Linux](/install/linux), [Windows](/install/windows), or [WSL2](/install/wsl2).

## Minimal source-built image

Create a Dockerfile in your own deployment repo:

```Dockerfile
FROM rust:1-bookworm AS build
WORKDIR /src
COPY . .
RUN cargo build -p coven-cli --release

FROM debian:bookworm-slim
RUN apt-get update \
&& apt-get install -y --no-install-recommends ca-certificates nodejs npm git \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /src/target/release/coven /usr/local/bin/coven
ENV COVEN_HOME=/var/lib/coven
WORKDIR /workspace
CMD ["coven", "doctor"]
```

Build it from a Coven source checkout:

```sh
docker build -t coven-local .
```

## Run with explicit mounts

```sh
mkdir -p "$HOME/.coven-container"
docker run --rm -it \
-e COVEN_HOME=/var/lib/coven \
-v "$HOME/.coven-container:/var/lib/coven" \
-v "$PWD:/workspace" \
-w /workspace \
coven-local coven doctor
```

For real harness work, the container must also contain and authenticate the harness CLI. Provider credentials remain owned by that harness, not by Coven.

## First container session

```sh
docker run --rm -it \
-e COVEN_HOME=/var/lib/coven \
-v "$HOME/.coven-container:/var/lib/coven" \
-v "$PWD:/workspace" \
-w /workspace \
coven-local coven daemon start
```

Then run a session in the same mounted environment:

```sh
docker run --rm -it \
-e COVEN_HOME=/var/lib/coven \
-v "$HOME/.coven-container:/var/lib/coven" \
-v "$PWD:/workspace" \
-w /workspace \
coven-local coven run codex "describe this repo"
```

## Notes

- Bind-mount `COVEN_HOME` if you want session history to survive container exits.
- Bind-mount the project root you intend to run in.
- Do not expose the Coven daemon socket over TCP by default.
- Run `coven doctor` inside the same image and environment that will launch sessions.

## Related

- [Headless server](/install/headless-server)
- [Podman](/install/podman)
- [COVEN_HOME layout](/daemon/coven-home)
Canonical deployment guidance, including manual container integrations:
**https://docs.opencoven.ai/docs/guide/deployments**
94 changes: 5 additions & 89 deletions docs/install/from-source.md
Original file line number Diff line number Diff line change
@@ -1,94 +1,10 @@
---
summary: "Clone the repo and build coven with cargo."
read_when:
- Developing Coven or running unreleased changes
title: "Install from source"
description: "Build and install Coven from source: clone the repo, build the Rust daemon and CLI with cargo, and drop the binary on PATH for daily use."
description: "Pointer to the canonical Coven install guidance."
---

# Install from source
Canonical install guidance, including the source-checkout route:
**https://docs.opencoven.ai/docs/guide/install**

Use a source checkout when you are contributing to Coven, testing unreleased changes, or running on a platform where the npm native package is not available.

## Requirements

- Rust stable.
- Git.
- A supported shell for your platform.
- At least one harness CLI if you want to launch real sessions.

## Build and verify

```sh
git clone https://github.com/OpenCoven/coven.git
cd coven
cargo build --workspace
cargo run -p coven-cli -- doctor
```

Run the binary through Cargo while developing:

```sh
cargo run -p coven-cli -- daemon start
cargo run -p coven-cli -- run codex "describe this repo"
cargo run -p coven-cli -- sessions
```

## Install the built binary

After building, copy the release binary to a directory on `PATH`:

```sh
cargo build -p coven-cli --release
mkdir -p "$HOME/.local/bin"
cp target/release/coven "$HOME/.local/bin/coven"
coven doctor
```

On Windows, copy `target\release\coven.exe` to a directory on `PATH`.

## Harness setup

Install and authenticate a harness in the same shell environment:

```sh
npm install -g @openai/codex
codex login
```

```sh
npm install -g @anthropic-ai/claude-code
claude doctor
```

Then run:

```sh
coven doctor
```

## Development checks

Before changing daemon, session, attach, or ritual behavior, run the workspace
checks described in [CONTRIBUTING.md](../../CONTRIBUTING.md) and
[Documentation maintenance](/DOCS-MAINTENANCE).

For docs-only install work:

```sh
python scripts/check-secrets.py
git diff --check
```

For code work:

```sh
cargo fmt --check
cargo test --workspace --locked
```

## Related

- [Install via npm](/install/npm)
- [Install via cargo](/install/cargo)
- [Linux install](/install/linux)
Contributor build and verification instructions remain in
[`CONTRIBUTING.md`](../../CONTRIBUTING.md).
Loading