Lorekeeper
A second-brain kit: capture into Markdown, then search it with citations.
Theme pilotProvenance attestedFamily chrome layer + CLI identity
0.3.0
create-lorekeeper on npm27 Sept 2026published
0.2.0pinned
wonder-wagon-ui generatorWhat its terminal prints
╭───╮ ╭╯ ╰╮ │ ✦ │ L O R E K E E P E R v0.3.0 · LK-047 ╰╮ ╭╯ You already wrote it down. Find the passage that answers. ╰───╯ Usage: lore init <dir> Create a brain, or adopt an existing vault lore capture <brain> <item> Write a thought or a URL into that brain lore search <brain> <query> Rank the spans of that brain against a query lore --help Show this message lore --version Print the version A captured thought lands in inbox/ as YYYYMMDD-HHMMSS-subject.md, with the same name as its id. Two captures in one second never collide: the second one takes the next free -2, -3 suffix. A captured URL lands in sources/ instead, named for the stable source id it carries. URLs that name the same thing are one source, so capturing one you already have reports the file that holds it and writes nothing. The URL is identified, never visited. Search ranks spans, not files: each result names a path, the heading it sits under, its line range, and its score, and prints the lines themselves. Add --json for that same result shape as JSON, or --limit to change how many come back. A score ranks; it never proves an answer is absent. Give several wordings of one question, each in its own quotes, and search fuses their rankings into one list. Three wordings find what one misses, so ask in other words rather than trusting a single phrasing. Spans that repeat the same text in several files are reported once. Search reads. It writes nothing, builds no index file, and works on any directory of Markdown, whether or not lore init has run there. Lorekeeper runs offline and takes no credentials.
npx create-lorekeeper@0.3.0 --help · PTY 100 cols · COLORTERM=truecolor TERM=xterm-256color · exit 0╭───╮ ╭╯ ╰╮ │ ✦ │ ╰╮ ╭╯ ╰───╯ L O R E K E E P E R v0.3.0 · LK-047 You already wrote it down. Find the passage that answers.
npx create-lorekeeper@0.3.0 --help · PTY 40 cols · COLORTERM=truecolor TERM=xterm-256color · exit 0 · first 11 of 41 lineslorekeeper-bay.vercel.app
Screenshots of the public site as a first-time visitor sees it, in each colour scheme.




Family chrome layer + CLI identity
Takes from Wonder Wagon
- A generated --ww-* theme layer that styles the family chrome only: the day/night toggle and the LK-047 plate
- A CLI identity module generated by wonder-wagon-ui/cli and drift-checked in CI
Keeps for itself
- The reading-room site: its grounds, ink, lines, type scale and layout, as --lk-* tokens
- Reliquary Indigo, gilt, the four-point star
Does not consume
- The family grounds and ink (the site's page, surface and ink are Lorekeeper's own)
- The family type scale (the reading room runs one step larger)
- The React components
Measured at dd3552b
| File | What was measured | Result |
|---|---|---|
apps/docs/src/styles/site.css | var(--lk-*) against var(--ww-*) references in the site stylesheet | product 157 · family 3 |
apps/docs/src/styles/wonder-wagon-lorekeeper.css | generated Wonder Wagon theme layer | generator 0.2.0 · theme lorekeeper |
packages/cli/src/identity.ts | CLI identity module generated by wonder-wagon-ui/cli | true |
package.json | Pinned wonder-wagon-ui generator | 0.2.0 |
- Provenance: SLSA provenance from
.github/workflows/release.yml, source commitdd3552b(attestation). - Terminal specimens and their capture script
- Its theme values held to Lorekeeper's own tokens.json by a pinned fixture