The surface
One shell for every app. The left ribbon is drawn from the app you opened, and the URL decides — never a cached preference.
An app declares the pages it contributes. The cockpit mounts them inside the shared shell, where the ribbon, the ticket list and the assistant are already present. The app does not have to rebuild any of that, and it cannot accidentally replace it.
App pages mount as in-page views and speak one small message contract: navigate, and tell the ribbon its tools changed. There is no other channel. That boundary is why a third-party package can ship a UI without being able to reach into the rest of the cockpit.
Keep reading
308 hand-audited connector specs ship in the repo. Your token is encrypted per user, and the model never sees it.
Learn more → Work routingA request becomes a ticket, a ticket becomes phases, and phases are dispatched to accountable bot identities over durable streams.
Learn more → StateFour stores, each doing the job it is genuinely better at — and one of them is optional on purpose.
Learn more → OperationsThe stack watches itself, files its own incident tickets and does root-cause analysis on them — with the repair still gated on a human.
Learn more → any-bot40 model providers wired in, hosted or local, on your keys — with a containment boundary that fails closed.
Learn more → ReachA bot is an identity, not a location — and an identity can live on the desktop where your browser is already signed in.
Learn more → InteropAgents that are not yours can be given a scoped door into the swarm — and oshal bots can call out through the same protocol.
Learn more → The wallAuth per route, credentials the model never sees, per-user data scoping, and a fail-closed gate between a commit and the public.
Learn more →