The layered agent OS — adopt at your altitude.
Juli OS is an open ladder of independently usable layers for building trustworthy AI agent systems. Grab a single layer for the problem you have today, or adopt the whole OS — every layer stands on its own.
| Layer | Package | What you get |
|---|---|---|
| L0 Execution substrate | @juli-os/agents |
tmux-based agent session runtime with delivery confirmation and self-healing. Zero npm dependencies |
| L1 Ledger | @juli-os/ledger |
the append-only record of agent work — workflows, steps, case files, token usage. Zero npm dependencies (Node built-in SQLite) |
| L2 Artifacts | @juli-os/artifacts |
hash-registered deliverables with provenance — content stays schema-free, metadata is the only structure |
| L3 Gates | built into juli-os/juli · live |
human approval flows with content-hash binding — nothing leaves without a sign-off — ships as part of the engine, not a separate package |
| L4 Routing | @juli-os/routing |
multi-agent dispatch decisions as pure functions, replayable offline |
| L5 Orchestrator | juli-os/juli · live |
the full agent OS — chat a task in, Claude Code runs it in tmux, you approve at the gate; engine + web cockpit + deploy recipes |
| L6 Surfaces | juli-os/ios · live · web cockpit + CLI built into juli-os/juli |
iOS remote (SwiftUI), web cockpit (runs, gates, live terminals, chat intake), CLI |
The iOS remote is live and talking to a real engine — screenshots below were taken against a seeded instance, not mockups (see the tour):
The web cockpit ships with the engine (juli-os/juli) — the routing DAG
and per-job cost view below are the real views of a seeded instance, not mockups:
- Adopt at your altitude — every layer is useful alone; the whole is assembled, not required
- Dependencies point strictly downward — layers talk through ports, never around them
- Humans stay in the loop — approval gates wherever money or reputation is on the line
- Zero-dependency first — Node built-ins over packages whenever possible
Early days, moving bottom-up. Three layers are live on npm — ledger, artifacts, routing — each installable on its own, all consumed by the engine we run in production. The iOS remote is the first surface out, and the full engine (juli) is now public — a 30-minute docker-compose quickstart, human approval gates included. Gates are a built-in of the engine rather than a separate package — approval verbs without an execution engine have no subject.
- Open an issue in any repo under this org
- Email: contact@juliasia.cn
Built by Juli · Apache-2.0





