Docs
kernl documentation
Concepts, how-tos and the reference for every package: the guard and its profiles, messaging providers, bridges and the shell's composition root.
Developers
An applet for kernl is a small, self-contained web page in the open applet format. It gets a sealed window, asks for what it needs, and reaches the world through the shell. That constraint is the feature.
Start here
Docs
Concepts, how-tos and the reference for every package: the guard and its profiles, messaging providers, bridges and the shell's composition root.
Toolkit
The open, unopinionated toolkit kernl is built on. If you want to build a different shell with different opinions, start there.
Format
How applets are packaged, addressed and verified, and the message domains an applet can ask a shell for. kernl hosts this format without changing it; the full specification lives on the applet format's site.
What to expect
Your code runs in a frame with no origin and a policy that blocks every direct network call. Draw, compute, and talk to the shell over its message port.
Ask for the domains you need. The shell narrows what it advertises to what the user has granted, shows every overwrite or deletion as what it changes before signing it, and lets the user take a grant back. Knowing who is signed in is a grant too: ask for the user's account if you need it.
Rate limits, size caps, a hidden-window download allowance and focus-aware tightening are on. Design for them: batch requests, do less when hidden, and expect a refusal to carry a stable reason you can show.
Your applet is identified by the hash of its content. Ship a new version and it is a new identity with fresh grants. That is deliberate.
One messaging surface spans every provider the user enables. You do not pick the provider; the user does. In this alpha private, legacy and ratchet messages work in the live shell when the signed-in account can encrypt, and nothing is available while nobody is signed in. Ratchet sessions are experimental and one to one. A send through a provider that cannot serve it fails with the reason unavailable. Feature-detect messaging and handle unavailable as a normal answer, not a crash.
Source
Four small packages and one app. Behaviour is specified in scenarios before it is implemented, and coverage is complete. Decisions, and the reasons for them, are written down and published now. The source itself is private during alpha and opens under the MIT licence with the first public release.
For agents
Every page has a Markdown twin at index.md next to it, listed in llms.txt. The full text is in llms-full.txt, and the docs publish their own.