Connections
308 hand-audited connector specs ship in the repo. Your token is encrypted per user, and the model never sees it.
Connecting an account is the moment most agent systems quietly hand a credential to a language model and hope the prompt holds. oshal does not. The credential is consumed by a schema-bounded server operation, the call completes outside the model, and only the normalized result is allowed into reasoning.
That is the whole reason connectors are a platform concern rather than an app concern: an app declares what it needs, and the platform decides what the model gets to see.
Keep reading
One shell for every app. The left ribbon is drawn from the app you opened, and the URL decides — never a cached preference.
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 →