OpenCanon

Agent-ready. Human-readable. Runtime-enforced.

Runtime

OpenCanon runs as a local service plus isolated project runtimes. The CLI, MCP, hooks, and browser diagnostics all read the same local API.

Service

The global service discovers OpenCanon projects, owns the cross-project registry, and lazily starts project runtimes when a command needs repository data.

service
sh
opencanon status
opencanon service start
opencanon service status --format json
opencanon service open

Project runtime

A project runtime owns one repository. It indexes source files, generates authoring types, stores derived SQLite state, tracks Activity, serves Search, and runs Proof against scoped files or the whole project.

project runtime
sh
opencanon project check
opencanon project status --format json
opencanon project index
opencanon project logs --tail 200
opencanon project open
opencanon project stop
opencanon project start --foreground

State

Committed Project Canon lives under opencanon/ and generated docs live under docs/opencanon/. Derived state lives under .opencanon/ and stays ignored by Git. The OpenCanon home directory stores service registry and installed runtime metadata.

Engine

The native engine handles watching, hashing, fact extraction, code graph indexing, and affected-file calculation. JavaScript and TypeScript facts, Python facts, dependency metadata, semantic chunks, and generated project constants are all runtime-derived.

Updates

Runtime updates are manifest-driven. The CLI selects the current target, checks schema and Node compatibility, verifies asset hashes, and refuses to write while the service or current project runtime is running. Runtime updates do not mutate project files directly; Doctor owns managed project artifact repair through opencanon doctor --fix.

runtime update
sh
opencanon service stop
opencanon project stop
opencanon update check --manifest ./opencanon-runtime-manifest.json
opencanon update apply --manifest ./opencanon-runtime-manifest.json
opencanon doctor --fix

API

The service exposes project discovery and project-runtime proxy endpoints. Project runtimes expose Project Canon, Proof, Knowledge, Activity, Health, file, graph, and context endpoints for local clients.