/software
Lisp is the interface.
A REPL, a structural editor, and a 64-cell VM live on the deck out of the box. CAR selects. CDR traverses. CONS binds. The cartridges speak the same grammar.
The REPL is built in
The bare deck boots into a working Fe REPL. Three small evaluations: arithmetic, list construction, an empty-list predicate. Every cartridge inherits the same environment.
try it — click to advance
nEmacs — Structural Editing
The cursor moves over forms, not characters. Parens auto-balance on insert; deleting a form that would unbalance is refused with an inline message. The kill ring holds whole sub-forms; yank places the ring entry into a syntactic slot, not a column.
Live Redefinition
A function gets redefined while a polling loop is using it. The loop's next tick reflects the new binding — no restart, no state lost. Lisp's promise, unironically.
One Key, Many Verbs
The same keystroke binds to different verbs in different surfaces. TERM in the REPL halts evaluation. TERM inside nEmacs swaps to the REPL with the current form. TERM during a cartridge mission yields the cartridge's contextual action.
in REPL
TERM → halt eval
in nEmacs
TERM → send form to REPL
in cartridge
TERM → cartridge-defined
The Fe VM
A small embedded Lisp on a fixed cell pool. Arena allocation, no mark-and-sweep — the arena resets at cartridge-load and mission-instance boundaries. Cartridges author against a 54-primitive FFI surface; cell pressure is bounded by construction.
Follow the runtime
Dispatches track nOSh, the Fe VM, cartridge primitives, and the bare-deck REPL as they move from prototype to hardware.
> GET DISPATCHES_