ljos
One seat over five habitats and argv law. It owns none of them.
Remember, agree, hand over: memory for a working seat that a person can read on disk.
A seat is one agent, or one person, working a tracker. Five habitats
answer five questions for it: cards are what the human froze, the pack
knows what the seat has learned, the deed store knows what the work
produced, the tracker knows what the work is and who agrees, and the
claim graph knows what this session is handing out. Argv law is not a
store: ljos policy prints the line, and ljos-policyd is the TCB
when it is on PATH or POLICYD_BIN. ljos is the one command and the one Model
Context Protocol (MCP) server over those habitats. It adds three loops
the habitats do not have alone: memory that is reviewed and forgotten
on a clock, agreement that weighs voters by who turned out right, and
a handover another seat can check and import.
Everything is a file a person can open: Org headings, JSON lines, a content-addressed store, a Cap’n Proto snapshot. No model is required to run any of it, and any model or agent runner that can call a command or an MCP tool can sit in the seat.
Install#
$ cargo binstall ljos ljos-mcp packset packset-daemon deedar-cli claimdag-cli vissue-cli ljos-consensus ljos-policyd
$ packset ensure
$ ljos doctor
$ ljos onboard --harness json
doctor names each habitat and whether it answers. The seat works with the
habitats it has; a missing one is reported, not guessed around. onboard
registers the server with an agent runner and installs the sitting protocol
as its skill; ljos protocol prints that protocol for any other.
First minute#
$ ljos remember "The lexical default is BM25+. It beat BM25 by two points on turns."
$ ljos search lexical default
$ ljos due
The tutorial runs all three loops on a scratch tracker in about ten minutes.