Every document has three registers. Phi is where it lives. Mu is what it says. Lambda is what it does when you read it. Some documents are still — text and nothing more. Some are alive. You cannot tell by looking.

Site: oma.ooo Source: Beach-Bum/OMA-Library-OS (public, MIT) Manual: Installation & Usage Guide (PDF) Language: Rust Binary: 821KB stripped, 2 crates (chrono, libc) 3,452 lines across 10 modules


The premise

Boot a terminal. You are standing in an entrance hall. The shelves are full. A document rests on the desk. You can read it, explore the rooms, write your own documents, and rebuild the library from the inside.

ΦΜΛ replaces every Unix command with a word a reader would use. browse instead of ls. walk instead of cd. inscribe instead of cat >. The journal is syslog formatted as prose. The basement is root access behind as-archivist. Rooms are directories. Documents are files with executable margins.

No two libraries are ever the same. Same founding collection at birth. Every reader adds different documents, opens different rooms, rewrites different rules. After a week, your library is yours.

Three registers

Every object in the system carries three layers:

  • Φ (Form) — where it is. Its room, its shelf, its classification.
  • Μ (Message) — what it says. The text you read.
  • Λ (Lambda) — what it does. Logic that runs when you read it.

read shows you the message. inspect shows you all three. The friendly surface and the working machinery are never hidden — you just have to ask.

The founding collection

Twelve documents on the shelves when the library first opens. Each one is readable, philosophical, and functional at the same time:

  • welcome — five commands to begin, and a meditation on curation as care
  • catalogue — lists itself, and is therefore always incomplete
  • the garden of forking paths — asks what kind of building you think you're in
  • the letter — from the previous archivist, mentioning rooms that don't appear on any floor plan
  • the book of sand — different text every reading, drawn from the library itself
  • the erosion — loses a line each time it's read, until only the title remains
  • the confession — read once, then deleted. A phantom in the index
  • the mirror letter — knows how many times you've visited
  • the dreamer — reads random fragments and inscribes new documents
  • lesson-1 — creates lesson-2 when you read it

Three phantom catalogue entries point to documents that don't exist on any shelf.

Living machinery

A librarian daemon runs every five minutes. It counts documents, cleans expired ephemera, and writes a line in the journal. If it stops, the library doesn't break — it drifts.

A dreamer daemon runs every hour. It reads random fragments from across the collection, recombines them, and inscribes a new document in ephemera. The library authors itself while you're away. Dreams expire after one day.

The Λ language has twelve instructions: say, write, set, if, loop, inscribe, withdraw, erode self, mutate self, wait, plus expressions for counting, random selection, and reader input. Documents can create documents, destroy themselves, and rewrite their own text.

The grid language

Beneath the readable Λ is a two-dimensional esoteric programming language. Execution moves across a toroidal grid. All three registers must reach consensus before an operation fires — disagreement is logged as a schism, not an error. Every executed instruction mutates after use. Run a program long enough and it destroys itself from the inside.

The specification document is itself a valid ΦΜΛ program encoded in its own whitespace.

Embedded programs

ΦΜΛ programs can be hidden in the whitespace of any host document. Spaces and tabs encode bits. The visible text says one thing. The invisible text does another. oma --embedded FILE extracts and runs it. inspect detects the presence of an embedded program without executing it.

Architecture

Module Lines Purpose
shell.rs 1,203 Command parser, REPL, 30+ commands
grid.rs 545 2D toroidal grid interpreter
founding.rs 477 Founding collection + phantom entries
lambda.rs 439 Λ margin language interpreter
daemon.rs 243 Librarian + dreamer background threads
library.rs 211 Filesystem abstraction, search, journal
embedded.rs 96 Whitespace program extraction
session.rs 87 Multi-reader PID-based sessions

Multiple terminals can connect to the same library. The readers command shows everyone present. The journal records all of them.

The name

ΦΜΛ — Phi Mu Lambda. Form, Message, Function.

In Dutch, oma means grandmother. The keeper of stories. The one whose house you explore as a child, opening drawers, finding things that don't quite make sense yet.

Both meanings are always present.