Skip to main content

CLI commands

The sibyl binary is a read-only project inspector with one explicit remote synchronization command. Local commands inspect metadata and a local registry snapshot; they do not execute project code or install dependencies.

Initialize metadata

sibyl init [--path <PROJECT>] [--force]

--path defaults to .. The command detects package.json, Cargo.toml, pyproject.toml, go.mod, and composer.json, plus supplementary workspace, Astro, and Docusaurus evidence. It creates .agent/config.json, rules.md, skills.json, memories.json, and context.ignore. Existing owned files are not replaced without --force.

Check local policy

sibyl check [--path <PROJECT>] [--registry <SNAPSHOT>] [--json]

--path defaults to .. --registry takes precedence over SIBYL_REGISTRY_SNAPSHOT; remote registry URLs are rejected. Human output includes package, severity, reason, and approved replacement. --json emits machine-readable diagnostics without ANSI escapes.

Add a memory

sibyl memory add <TITLE> <CONTENT> --category <CATEGORY> [--path <PROJECT>] [--force] [--json]

The path defaults to .. The command validates the entry, appends it in stable order, and preserves malformed existing documents when refusing an update. It makes no network request.

Explicit synchronization

sibyl sync --payload <PAYLOAD>

sync requires SIBYL_SYNC_ENDPOINT=https://..., authorization in SIBYL_SYNC_AUTH_TOKEN, and a schema 1.0 payload of kind episodic-memory or ast-skeleton. Endpoints cannot contain credentials. Payloads cannot contain credentials, private keys, or executable directives. Timeout and retry behavior is bounded, and success is reported only after a successful response.

Build a release binary with:

cargo build -p sibyl-cli --release --locked

The output is target/release/sibyl. Only sync may contact a remote service; the other commands remain local even when synchronization configuration is present.