Pavlos Zafiropoulos6 downloadsReveal your vault's true shape and grow "memory corals" for your AI agents
Render a folder of your vault as a living Liefwork coral — a chronological, growing structure where every branch is a folder and every lief a note. Built as the visible half of the Liefwork memory system for AI-assisted work.
Four words cover everything:
order
frontmatter, and a branch only follows your editorial order when every
sibling has it — so adding a file to a deliberately-ordered branch drops it
to date sorting. For strict editorial order, keep Notes only or park
attachments in a subfolder.Growth Charter.md (the open instruction set any AI agent
reads to grow the coral), pointer files for the big CLI agents (CLAUDE.md,
AGENTS.md, GEMINI.md — each redirects its agent to the Charter), and the
root meristem note; "Undo seeding" reverses it exactly.fs
(statSync birthtime) — mobile has no such API.created, order (and on archive actions:
kind, originalParent, originalOrder, archivedAt). Rendering a coral
never modifies existing notes.Growth Charter.md (the coral's canonical growth instructions), three
short agent pointer files (CLAUDE.md, AGENTS.md, GEMINI.md) that
redirect Claude Code, AGENTS.md-standard agents (Codex, Copilot, Cursor and
friends) and Gemini CLI to the Charter, and the root meristem note. When you type a founding prompt, it is also captured as a prompt — founding intent.md note (the coral's founding lief). The three
pointer files are deliberately not rendered in the coral — they are
configuration breadcrumbs, not memory; they remain visible in Obsidian's file
explorer as normal. If enabled, seeding also writes a Claude Code logging hook — .claude/settings.json (merged non-destructively into an existing one), .claude/hooks/coral-log-keeper.mjs — a readable Node script that Claude Code (not Obsidian) executes on each prompt in that folder; it reads only that folder tree, writes only its own state file (.claude/.coral-log-state.json), and never touches the network. Hook or not, seeding always records a provenance manifest (.claude/.coral-seed-manifest.json) listing exactly what was planted. "Undo seeding" removes exactly what was planted.The plugin is free and fully functional for individual, non-profit, and educational use; no primary feature is gated. Other organizations need a commercial license for internal use — see the LICENSE. An optional supporter licence ("Liefwork Pro") is a one-time purchase made externally through Lemon Squeezy, then activated by pasting the key into the plugin's settings. Pro unlocks cosmetic perks only — a free hand with the agent terminal color picker (the three named deep-sea swatches plus any color at all from the wheel; the first five preset swatches are always free) and an optional spectral-pulse effect that drifts agent tints through neighbouring hues — and permanently stops the support prompts below.
Support prompts. Two moments qualify as a prompt occasion: opening a coral agent terminal while another is already live, and every fifth coral open (the tally persists across sessions). Either way at most one dialog shows per Obsidian session; after the first five gentle prompts the plugin mostly stays silent, with a playful ice-cream vignette on some later occasions. The dialogs never block or gate anything: "Not now, thanks." or the modal's close button dismisses them, and activating Pro stops them permanently.
The plugin's only network surface is licence handling, and every call is user-initiated from the settings tab:
api.lemonsqueezy.com, via Obsidian's
requestUrl). On success the entitlement is stored locally and trusted
from then on — there is no startup or recurring validation, ever.Nothing else ever leaves your vault: no telemetry, no analytics, no update checks, no other requests of any kind. "Get a licence key" links simply open the store page in your default browser.
The canvas renders on Liefwork's own dark palette in both Obsidian themes; the HUD and controls follow your theme.
Source-available — see LICENSE. Free to read, run, audit, and modify for individual, non-profit, and educational use; competing redistribution is not permitted, and bespoke client work must credit Liefwork and pass the license along (LICENSE §2.4). Every released version automatically converts to Apache-2.0 four years after its release date as recorded in the CHANGELOG.
This repository contains the plugin and exactly the systems it depends on — the release tree of a larger private monorepo:
obsidian-plugin/ — the plugin itself (source, tests, build config).src/ — the Liefwork growth engine (pure functions: hierarchy in, plant out).viewer/src/ — the shared canvas renderer the plugin mounts.test/, viewer/test/ — the suites covering everything above (bun run test:all).scripts/verify-plugin-release.ts — the release gate.main.js in each release is built from this tree with esbuild —
cd obsidian-plugin && npm run build reproduces it.