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 the plain-text firmware for a persistent, private cognitive system: the templates and processes that decide how memory, context, and trust work, regardless of which AI runs them. Your setup (loci calls it a palace) is a folder of markdown files you own completely.
The desktop app and the CLI shipped in the 0.6 open beta are two expressions built on top of the substrate. They are not the substrate. You do not need either to start.
Everything ships as plain-text templates. The full map lives in the repo at features/features.yaml.
The substrate is the same underneath all three.
The door. 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: plain markdown setup.
The cockpit (Tauri, v0.6.0-beta). A native Operations dashboard, plus one tab per instrument your palace generates for itself, plus a tool shelf that renders your palace's gate ledger: one card per external tool with its quarantine verdict. It lists; it never loads. See the desktop guide.
loci-cli (Rust, v0.6.0-beta). A small terminal-native door into your palace. Read-only: no network, no inference, no daemons. Five commands:
loci status: palace path, layout, room and crystal countsloci crystals: list crystals, optionally scoped to one roomloci read: print a crystal's contentsloci handover: print the most recent handoverloci init: interactive setup, writes a config fileSee the CLI guide.
One substrate, six shapes. The repo's README maps each to its primary feature sets, and tutorials/ in the repo has a walkthrough per feature set.
If you want the quickest working setup, start in plain markdown. Clone, copy templates/, point your AI at it.
If you want the cockpit view of a palace you already keep, start with the desktop app.
If you live in the terminal, start with the CLI.
All three run the same markdown palace. You can start in plain text and add the app or the CLI later without migrating anything.
| Component | Purpose | Where |
|---|---|---|
| Templates kit | The substrate: palace, rooms, crystals, garden, personas, skills, governance | templates/ in the repo, plain markdown |
| Desktop app | Cockpit: Operations dashboard, instrument tabs, tool-shelf gate ledger | desktop/, Tauri, v0.6.0-beta |
| CLI | Read-only palace reader, five commands | loci-cli/, Rust, v0.6.0-beta |
| Update protocol | PALACE-UPDATE.md: a read-only, consent-based check that reports what your palace is missing and applies only what you accept | Repo root |
Both palace layouts are supported by the app and the CLI: rooms inside a _palace/ subfolder (the original shape) and rooms at the root (palaces ported from older structures).
Read the full architecture for implementation details, or the changelog for what shipped in v0.6.0-beta.