Skip to content

Repository files navigation

lal

A permissioned memory tree for you and your AI — served over MCP. Live at lal.dev. Free to use, open source, no plans and no payment method anywhere in the app.

lal is a knowledge graph you write in Markdown-ish leaves and your AI reads through the Model Context Protocol. Every leaf carries its own audience, so a person, a team, and a customer each see exactly their slice — and the AI inherits precisely the access of whoever is asking, never more.


Connect your AI

claude mcp add --transport http lal https://lal.dev/api/mcp

Then sign in and approve. Claude Desktop / web: add it as a custom connector with the same URL. Walkthrough: lal.dev/connect.

Access on lal.dev is by invitation. Anyone can create an account (Google / GitHub), but a memory tree only opens up once an organization invites that email — there is no self-serve org creation, on purpose. If you want your own instance today, self-host this repo.

Tools exposed to the model: memory_index, memory_search, memory_read, memory_suggest, my_suggestions, plus the curator set memory_health, memory_curation, memory_verify.

What's in it

  • Tree + editor — leaves with frontmatter, folders, tags, aliases, full-text search.
  • Version history — append-only revisions, per-editor drafts with optimistic concurrency, soft-delete → archive → bin. Nothing is ever hard-deleted except by an admin purge.
  • Access tiers — reader suggests · writer edits live · keeper approves · admin manages people, with an edit ⊆ read invariant. Hidden leaves are indistinguishable from missing ones.
  • Suggestions + review — anyone can suggest; keepers approve; approved suggestions publish in place.
  • Curator — health scoring, staleness/duplicate/orphan detection and verification passes, driven by your own AI through MCP prompts. No server-side model, no vendor lock.
  • Graph — a live view of the tree with four renderers (3D force graph plus three hand-rolled Canvas2D modes) and read-traffic heat.
  • Multi-tenant — organizations and divisions. An invite stays pending until the invited person actually signs in with that email, and binds only to rows addressed to it.
  • Bilingual UI — Indonesian and English.

Stack

Layer What
Client Vite SPA (React 19, TypeScript, Tailwind)
API + MCP Hono on Cloudflare Workers (worker/)
Data Supabase Postgres — schema db_memory, reached only through mem_* RPCs
Auth OAuth 2.1 / magic link via the AMA Forum identity server

Brutalist dark theme on purpose: hard 2px borders, zero rounding, amber on near-black.

Running it

npm install
npm run dev        # Vite dev server
npm run typecheck  # app + SPA + worker
npm run build      # SPA + worker bundle into dist/
npm run deploy     # build, then wrangler deploy (needs your own Cloudflare + Supabase)

Config lives in .env.production for the three public, client-inlined values (Supabase URL, publishable key, app URL). Everything secret — the Supabase service key and friends — is set as a Cloudflare Worker secret (wrangler secret put), never committed.

Honest caveat about self-hosting: the data layer is RPC-only and lives in Postgres. This repo mirrors the migrations from 2026-06-30 onward, not the full original db_memory schema, so git clone && npm run deploy will not give you a working instance yet. Run it against your own Supabase and expect to fill in the earlier schema by hand. If you want that gap closed, say so in an issue — it's the main thing standing between this repo and a turnkey self-host.

Donate

lal is free and stays free. Nothing in the app charges, meters, or counts seats.

There is no donation link yet. If you want to support it — or just talk — reach me on X · @lalss08 or Threads · @lalss. Nothing you send buys a feature, priority, or a support tier.

What's not here

The content of the maintainer's own memory tree is private and always will be — this repo is the application, not the knowledge in it. A handful of migrations that are pure AMA-internal billing plumbing are also left out; nothing lal-the-app needs depends on them.

License

MIT.

About

lal — a permissioned memory tree for you and your AI, served over MCP. Live at lal.dev. Free, MIT.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages