entorhinal is the project and agent registry for
CortexKit. It gives every project
a durable id (pj-…) and answers which project a directory belongs to, so
modules that keep per-project state agree on what a project is, even when a
directory moves or has several names. It also holds agent identity (names,
roles, placement), records which of the operator's Macs holds an agent or a
role, moves idle agents between Macs, and keeps the consent state behind the
tools agents use to create workspaces, projects and hires. It runs as a module
supervised by the subc daemon and provides the project-identity/v1 and
agent-identity/v1 capabilities; modules that cannot work without them declare
them required, and the daemon holds those modules unroutable until
entorhinal has registered.
| Crate | Role |
|---|---|
crates/entorhinal-core |
The store and every domain rule: projects, roots, agents, the registry journal, shared-log entries, move checkpoints and consent state. Knows nothing about subc. |
crates/entorhinal-module |
The ck-entorhinal binary: the supervised module (admission, dispatch, the shared-log writer, move and consent drivers) and the ck projects, ck workspaces, ck agents and ck roles commands. |
These need only a Rust toolchain and a C compiler (SQLite is built from the bundled source). Every CortexKit dependency comes from crates.io, so a fresh clone builds on its own.
cargo build --workspace --release
cargo test --workspace --all-targets --lockedThe tests open their own scratch stores and run the other modules they talk to
as in-process stand-ins, so they need no daemon. CONTRIBUTING.md lists the
full gate CI runs.
One test needs more: real_daemon_e2e starts a real subc daemon built from a
subconscious checkout placed next to this repository, so it is ignored by
default. Run it explicitly with:
cargo test --workspace --test real_daemon_e2e -- --ignored --nocaptureck-entorhinal --manifest prints the module manifest as JSON without
connecting to anything. Everything else needs a running subc daemon.
The binary ck-entorhinal is the module. People use it through ck, which
runs it under the names ck-projects, ck-workspaces, ck-agents and
ck-roles:
ck projects list | resolve | register | remove | add-root | attach | remove-root
rebind | owned-remotes | approve | unapprove | trust | verify
log status | log name | log enable
ck workspaces list | assign | set-root | clear-root
ck agents create | rename | retire | tag | labels | hire-cap | list | show
avatars | repair-workspaces | where | move | moves | move-abort | lid-close-moves
ck roles read | take
ck projects, ck workspaces, ck agents or ck roles on its own prints the
full usage. --json prints the raw response. Agent identity writes, hire caps,
role takes and moves from ck land only after the operator approves the exact
change at a Touch ID prompt the daemon shows.
Start with docs/architecture.md.
- Architecture: architecture, data model, module surface.
- Contracts: identity log, agent moves, consent, session liveness.
- Operator guides: projects and roots, agents, sharing between Macs, moving agents, mutation proofs.
- CONTRIBUTING.md and SECURITY.md.
MIT. See LICENSE.