live demo

the ledger, running

A small desh, in your browser. The commands are simulated over a virtual filesystem — we say so up front — but the record-keeping is real: everything that happens lands on an append-only log, content is stored and verified by its hash, and nothing with side effects runs without an approval you can see. The one thing worth approving is connect: this shell reads a real remote log, live. Back to the investigation →

nothing is discarded

Every command, output, byte, and approval becomes an entry in the log at the bottom of this page. The whole UI is just a view of that log.

outputs don't burn

Output is kept, addressed by its hash. Re-view it, replay it, diff it — without re-running anything.

forks are pointers

Scrub the timeline and fork: one new entry, instant. Files are computed from the log, so any past moment can be revisited.

agents request, handlers decide

An agent here can only ask for actions. Risky ones wait for you, and your refusal is recorded — the agent has to adapt to it.

the resource is the command

Type a path with no command in front: directories list themselves, files open as their kind, and a resource's own verbs run bare. ls and cat are the legacy layer.

remote logs are ledger facts

connect to a real AYNIL store (the read token goes into the approval, never the record) and form submissions from a static page stream in as files. The connection remembers its own place; scrub back and it rewinds.

content is verified, not trusted

Remote content is re-hashed on arrival — one tampered byte and the fetch fails instead of landing. Names and sizes arrive first; the bytes follow on first read.

code arrives signed by its hash

Every file is at least [text]; known formats open as richer views, like [table] for csv. Running fetched code is gated, and only code whose hash is already known ever runs.

event 8 / 8

You're in / [dir] — a session starts inside a resource, and this one already has 8 events on its ledger (the seed filesystem went through the log too). The entries below are its affordances: type one, or README.md first. Tab completes.

entrytype
data/dir
notes/dir
README.mddoc
typed projection [dir] — the default view, not a command you ran
entries of [dir]
/ [dir] $