Local-first
Plain text on your machine. No cloud, no accounts, no lock-in.
Plain-text templates and processes that decide how memory, context, and trust work, whichever AI runs them. One blueprint, many expressions.
You work with AI every day. The reasoning is good, but nothing persists: memory, context, and working agreements evaporate between sessions and between tools.
loci fixes this at the substrate level. It is plain-text firmware for a persistent, private cognitive system: the templates and processes that decide how memory, context, and trust work, whichever AI runs them. Your setup (loci calls it a palace) is a folder of markdown files you own completely.
All seven ship as plain-text templates. The full map is features/features.yaml in the repo.
The substrate is the same underneath both. Start in plain text and add the CLI later without migrating anything.
The beginner path. Clone the repo, copy the templates/ kit into a folder of your own, open FIRST-SESSION.md, and point any file-aware AI at your palace CLAUDE.md. No build. Start here.
loci-cli (Rust, v0.6.0-beta) is a small, read-only terminal door into your palace: five commands (status, crystals, read, handover, init), no network, no inference, no daemons. See the CLI guide.
One substrate, six shapes. The repo's README maps each to its feature sets, and tutorials/ has a walkthrough per set.
| Component | Purpose | Where |
|---|---|---|
| Templates kit | The substrate: palace, rooms, crystals, garden, personas, skills, governance | templates/, plain markdown |
| CLI | Read-only palace reader, five commands | loci-cli/, Rust, v0.6.0-beta |
| Update protocol | A read-only, consent-based check: reports what your palace is missing, applies only what you accept | PALACE-UPDATE.md |
More: the architecture, and the changelog for what shipped in v0.6.0-beta.