LILYLILYDOCS
Docs/Concepts

Concepts

The four ideas you need before you read the rest of the docs.

LILY is a CLI on top of a compiler and a fleet. You build bricks. The fleet runs them as voids. Plugins extend the CLI. Everything else is operations.

The LILY orbit
llyCLIBRICKWASM HOSTRAPTORCAPPLATFORMAUTH
One CLI, one bundle format, one fleet. Plugins extend the CLI; voids extend the fleet.

The four words, in one paragraph each

Brick

A brick is the unit of compilation. One or more .wasm modules, a manifest, and any static assets your program needs, all sealed into a single file addressed by its sha256.lly compile hello.c -o hello.brick produces one. lly bundle inspect reads one. Bricks are the only thing the runtime knows how to execute. Multi-module bricks share linear memory and are opt-in with --multi; everything else is single-module by default.

Void

A void is a brick that has been placed on the CAP fleet and is answering HTTPS at<slug>.app.lilylabs.io. You create one with lly void deploy ./void.brick, list yours with lly void list, tail it with lly void logs, and stop it withlly void kill. The fleet picks the placement; you only ever address it by slug.

Plugin

A plugin is a small binary in ~/.lly/plugins/<name>/ that adds a verb to the CLI. The nextjs plugin teaches lly how to compile a Next.js App Router project to a brick. The void plugin teaches it how to deploy that brick to the fleet. Plugins are versioned, signed, and installed with lly plugin install.

Architecture

Five services hold the world together. Platform is the dashboard at platform.lilylabs.io. Auth issues short-lived CLI tokens. Raptordecides which CAP runs which brick. CAP machines run the Wasmtime-based runtime.RC serves the install script, the lly binary, and plugin manifests. You only ever talk to the CLI; the CLI talks to everything else.

The whole loop in one terminal

end-to-end
$ lly compile hello.c -o hello.brick → frontend-c v0.8.2 · 1 TU · 42 LOC ✓ wrote hello.brick (38 KB, sha256 7a1c9f…) $ lly bundle inspect hello.brick name: hello · modules: 1 · memory: single · runtime: wasmtime-23 $ lly void deploy ./hello.brick → uploading 38 KB · placement requested ✓ live at https://lazy-fox.app.lilylabs.io

What to read next

Start with Bricks if you want to understand the bundle format, or jump to Voids if you have a brick and want it on the internet. TheCLI reference documents every verb; the plugin index lists what extends them.