‹01-overview

01-overview

all docs

01 — What Zero Is

In one sentence

Zero is a shapeless software substrate — closer to an operating system than to an app — that has no inherent form and becomes what the moment demands by assembling itself, on demand, from versioned building blocks held in stores.

In plain English

Most software is a *thing*: a fixed application, written by hand, frozen the day it ships, and bound to one device or platform. To change what it does, someone writes more code and ships a new release. To run it somewhere new, someone ports it.

Zero starts from the opposite end. On its own it is almost nothing — a tiny program whose single innate power is to execute action-files. It has no screens, no features, no opinions. It is, in effect, a "hello world" with one superpower: it can run instructions written in a small language, and those instructions can pull in *more* instructions from the outside world.

So Zero constructs itself. Point it at a description of what it should be, and it fetches exactly the pieces it needs — the behavior, the data, the look — assembles them into a running thing, does the job, and keeps only what that job required. The same install, on the same device, can be an employee's office when they sign in, a storefront when a customer visits, a scanner on a warehouse handheld, or an assistant on a TV. Not different apps — the same engine becoming a different thing, decided at that moment by *who* is asking, *where* they are, and *what* they came to do.

The pieces it assembles from are folders. Each folder is a self-contained block: some actions (what it can do) plus some data (what it knows). Folders reuse each other's actions, and they cross-connect on demand — brokered, when needed, by an LLM (running locally, via your own key, or borrowed from a peer device). Each folder is, in effect, a small intelligent thing. Compose them and you can build anything; and the library of folders only ever grows.

Two more properties make it unusual:

• It evolves itself. Given a goal, Zero can author new actions, run them, and

verify the outcome against a known-good result before keeping the change — and every version is saved, so any past version can be run again at will. The system improves its own execution platform, and a deterministic check (not a human reviewer) guards correctness.

• It hardens as it grows. The edges change at a rapid pace — that is the point.

But Zero's own core is on a deliberate path of code reduction: the kernel converges, shrinks, and resists change, because everything that *can* live in the store is pushed out of the engine. The floor gets smaller and more permanent over time; the world above it gets richer.

In mechanism (the precise version)

Zero is a thin C++ tree-walking interpreter of a filesystem-tree DSL. The whole system rests on a handful of facts that are true in the code today:

1. The kernel is the irreducible floor. main() parses one request of the form

<object>.<action>, loads exactly one seed action (boot), and runs it. Everything else — locating the object, loading its class chain, routing, rendering — is self-hosted in the DSL. The native engine is ~2,400 lines with ~80 built-in primitives. (kernel/main.cpp)

2. Action-files are the unit of behavior. An action is a plain-text .action

file; the filename is the action's name and the body is a short list of statements (return, if/ifnot, foreach, a native call functions/<name>, or a call to another action). (kernel/exec_statement.cpp)

3. A folder is a class is a block. .action files are its methods, .data is

its state, and parent = gives single inheritance. A class library — *all behavior* — lives in stores, not in the binary. (functions/core/loadchain.cpp)

4. Stores deliver the world on demand. A class the machine lacks is pulled once

over HTTP and is local from then on (copy-on-hydrate). One cache serves every home, folder, and user. (kernel/remote_store.h)

5. The DSL and the engine are versioned together. The engine declares a schema

window [kSchemaMin, kSchemaMax]; a class can carry a .schema marker; a load-time gate refuses-above / migrates-below / runs-in-window. No flag day — borrowed from how browsers and Kubernetes version their APIs. (kernel/interp.h, functions/core/loadchain.cpp)

6. Intelligence is a provider, not a dependency. The oracle primitive (the LLM)

resolves per device to local (llama.cpp + GGUF), bring-your-own key, or a peer node over an encrypted mesh — never one hardcoded brain, always able to fall back to fully local. (../VISION.md, "Intelligence is a provider")

7. It runs everywhere from one library. The same engine (zero_serve()) is a

child process on desktop and an in-process call on mobile, behind a thin native shell that is "not an app — a door." (kernel/embed.h)

What Zero is *not*

• Not an app, and not an app framework. It ships no fixed product surface.

• Not "the AI." The model is a routed provider behind one interface, never the

engine and never a required external brain.

• Not a system that "does things" on your device. It *executes actions*, and what

an action can do is exactly: capabilities installed × OS permissions granted × grants authorized. Three independent gates. (../VISION.md, "The three laws," Law 2)

The tension to hold (read this carefully)

Zero is built to change at a rapid pace at the edges and to settle and resist change at the core, simultaneously. These are not in conflict — they are the same design choice seen from two ends:

• Behavior, data, look, and even speed (compiled views) ship from the store, and

can change as fast as a model can author and verify them. No release required.

• The engine is held to a north-star of *code reduction*: anything that can be

pushed into the store is pushed out of the binary, so the floor converges toward a small, stable, near-permanent core.

The result is a system whose surface area is effectively unbounded and whose trusted base is deliberately tiny and shrinking. That is the whole bet — and the rest of this folder is about why it is possible and what it is worth.