Every command, every flag, every example. Sourced directly from the implementation.
Package the current state of your work and upload it to the Context Core. A deposit is an immutable record in the context journal — it captures what happened, what was decided, what's still open, and what the next actor should know. Use --auto for git-state snapshots (fires from the stop hook); use explicit flags when the value is in the reasoning, not just the diff.
| Flag | Description | Default |
|---|---|---|
| --title <title> | Package title. Required for non-auto deposits. | Untitled deposit |
| --description <desc> | Short description of what this package contains. | — |
| --decisions <...> | Space-separated list of decisions made. Multiple values accepted. | — |
| --questions <...> | Open questions that need resolution. Multiple values accepted. | — |
| --handoff <note> | Handoff note for the next actor. Appears in orient bundles. | — |
| --files <paths...> | Deliverable file paths to bundle into the package. | — |
| --status <status> | Package status: complete, in_progress, or pending_review. |
complete |
| --review <type> | Review type: human, agent, or none. |
none |
| --project <id> | Target project ID. Overrides CWD-based project detection. | CWD-detected |
| --parent <id> | Parent package ID for explicit lineage chaining. | auto from session |
| --topic <topic> | Topic/subject area (e.g., cli, dashboard). Auto-inferred if omitted. | auto |
| --type <type> | Artifact type: decision, analysis, handoff, question, milestone. Auto-inferred if omitted. |
auto |
| --auto | Auto-generate from git state and session info. Used by the stop hook. | false |
| --quiet | Suppress output. Useful when running from hooks. | false |
Pull context packages from the Context Core. Use --latest to get the most recent package for the current project, pass a specific package ID to retrieve by reference, or use --query for semantic search. The pulled package is tracked in the current session and sets the parent for the next deposit.
| Flag | Description | Default |
|---|---|---|
| [package_id] | Positional argument. Pull a specific package by ID. | — |
| --latest | Pull the single most recent package for the project. | false |
| --project <id> | Project ID to pull from. Defaults to CWD-detected project. | CWD-detected |
| --query <terms> | Semantic search — returns the most relevant package(s) for the search terms. | — |
Print a compact wake-up bundle for the current (or specified) project. Designed to be called from a Claude Code SessionStart hook so every session begins oriented without the agent having to explicitly pull context. The bundle includes the top-significance packages, the latest meaningful handoff, and the most pressing open questions — all in approximately 250 tokens of markdown.
| Flag | Description | Default |
|---|---|---|
| --project <id> | Project ID. Omit to use CWD-resolved or configured default. | CWD-detected |
| --json | Emit JSON instead of markdown. Useful for programmatic consumption. | markdown |
| --key-packages <n> | Number of top-significance packages to include in the bundle. | 3 |
| --open-questions <n> | Number of open questions to include. | 5 |
| --window <days> | Time window in days for package selection. Overrides meta control. | 14 |
relay orient is designed to be non-fatal. If it fails (no packages, misconfigured project), it prints a note to stderr and exits 0 — it will never block session creation.
Assemble a comprehensive context digest across one or all projects. Outputs structured data — packages, decisions, open questions, handoff notes, and semantic snippets — to stdout for agent consumption. The calling agent (Claude Code or another LLM) synthesizes the output into insights. Omit --project for a global digest across all registered projects.
| Flag | Description | Default |
|---|---|---|
| --project <id> | Project ID for single-project digest. Omit for global digest. | all projects |
| --focus <topic> | Focus the digest on a specific topic or area. | — |
| --snippets <n> | Number of semantic search snippets to include. Increase for deeper context. | 25 |
relay orchestrate assembles raw context from the Core and writes it to stdout. The agent reading that output does the analysis. This means synthesis quality scales with your LLM, not with Relay's server.
Manage the mutable facts whiteboard — the current-truth layer that sits alongside the immutable package journal. Facts are (subject, relation, object) triples. Asserting a fact with the same (subject, relation) as an existing active fact automatically supersedes it. Use facts for things that change over time: configuration choices, boolean feature flags, who owns what. Packages are the historical record; facts are the current truth.
| Flag | Description |
|---|---|
| --source <pkg_id> | Optional package ID this fact was derived from. |
| --project <id> | Project ID. Omit to use default. |
| Flag | Description |
|---|---|
| --project <id> | Project ID. Omit to use default. |
| Flag | Description | Default |
|---|---|---|
| --subject <s> | Filter by subject. | — |
| --relation <r> | Filter by relation. | — |
| --object <o> | Filter by object. | — |
| --as-of <iso> | Time-travel: facts active at this ISO timestamp. | now |
| --include-ended | Also return ended (superseded) facts. | false |
| --limit <n> | Cap result count. | — |
| --json | Emit JSON instead of formatted lines. | false |
| --project <id> | Project ID. Omit to use default. | — |
Manage the Relay session lifecycle. Sessions track which packages were pulled and deposited, maintain a parent package chain for lineage, and register the actor with the Context Core. The stop hook handles auto-deposit on session exit; relay session start is optional for manual session tracking.
| Flag | Description |
|---|---|
| --project <id> | Project ID for this session. |
| --description <desc> | Description of this agent or session instance. |
Show a project status overview: the 10 most recent packages with their status labels, any packages pending review, and a summary of open questions. A quick health check for the current project without needing to pull full package content.
| Flag | Description | Default |
|---|---|---|
| --project <id> | Project ID to check status for. | CWD-detected |
Structured daily workflow commands. boot runs a global orchestrate, cross-references your Obsidian TODOs, and prints a morning brief. logoff summarizes the day's activity, reconciles the TODO list against what was done, and deposits a day summary to the meta project. Integrates with Obsidian Vault via the obsidian_vault config key.
| Flag | Description | Default |
|---|---|---|
| --todo-today <path> | Override path to TODO TODAY markdown file. | Obsidian vault |
| --todo-tomorrow <path> | Override path to TODO TOMORROW markdown file. | Obsidian vault |
| --deposit | Deposit the boot analysis to the configured meta project. | false |
| --focus <topic> | Focus area for the orchestrate pass. | — |
| --quiet | Suppress progress messages to stderr. | false |
| Flag | Description | Default |
|---|---|---|
| --thoughts <text> | End-of-day reflection to include in the summary (deposited to thoughts project if configured). | — |
| --skip-deposit | Generate the summary without depositing it. | false |
| --quiet | Suppress progress messages. | false |
relay config set obsidian_vault /path/to/vault to enable TODO integration. meta_project and thoughts_project control where deposits go. See relay config.
Manage Relay projects. Each project is an isolated context namespace with its own package journal and facts whiteboard. Projects are referenced by their ID (e.g., proj_dev_relay) in all other commands. Projects can be soft-archived when they go dormant — archived projects are hidden from listings and digests, and auto-deposits routed to them are skipped.
| Flag | Description | Default |
|---|---|---|
| -a, --include-archived | Include archived projects in the list. Archived rows are tagged [ARCHIVED]. | false |
| Flag | Description |
|---|---|
| --description <desc> | Project description. |
archived_at. Reversible — no data is deleted. Once archived: deposits routed to this project are skipped (auto-deposits exit cleanly, manual deposits error), the project is hidden from relay projects list, and relay orchestrate's global digest excludes it.| Flag | Description | Default |
|---|---|---|
| --force | Required to archive the meta project (proj_dev_relay) — guarded to prevent accidentally silencing the project that owns Relay itself. | false |
archived_at. Deposits and digests resume immediately.proj_dev_relay) is the project that owns Relay's own context. Archiving it without --force is rejected to prevent footguns — silencing it would mute the system that's tracking the rest of your work.
Export a project's packages, facts, sessions, and blob payloads to a local directory. Output is protocol-portable — NDJSON for tabular data, a blobs/ subdirectory for binary deliverables — so any conformant Agentic Protocol implementation (not just Relay) can consume the result. Safe to run while Relay is in use; the backup is read-only against the live store.
| Flag | Description | Default |
|---|---|---|
| --project <id> | Target project. Resolved from CWD via ~/.relay/config.json project_paths if omitted. |
CWD-detected |
| --out <path> | Output directory. Created if missing. | ./relay-backup-<iso>/ |
| --all-projects | Back up every accessible project. Each project lands in its own subdirectory under --out. |
false |
--project nor --all-projects and the CWD has no project_paths mapping, the command errors out rather than guessing.
The export side of portability shipped in v0.1. The import side and the cross-implementation sync layer are landing in v0.2, alongside pluggable storage adapters that let Relay run against backends other than Supabase.
relay backup. Reads a backup directory (NDJSON + blobs) and replays it into the active Core. Idempotent — re-importing the same backup is safe.RelayStorage interface lets Relay run against backends other than Supabase. SQLite (single-user, embedded) is first; flat-file NDJSON and S3-backed object stores follow.
Read and write the global Relay configuration file at ~/.relay/config.json. All other commands read from this file. Keys use underscores internally but accept hyphens on the command line (auto-normalized).
project_paths to ~/.relay/config.json manually: { "project_paths": { "/path/to/repo": "proj_abc123" } }. The stop hook uses this to route auto-deposits without flags.