Panels and runtimes
Click exposes exactly three extension-facing panel runtimes.
| Runtime | Trust boundary | Best for |
|---|---|---|
| Agent Canvas | Sandboxed browser iframe | Rich HTML/CSS interfaces, agent-created tools |
| daScript | Budgeted Click runtime | Native ImGui panels with fast iteration |
| Widget ABI v2 | Trusted, hash-approved WASM side module | Deep native integration and persistent terminal rendering |
All backend calls are capability-addressed. A panel declares capability ID, version range, and operations before the Click broker accepts a query, subscription, or invocation.
Canvas
Section titled “Canvas”Canvas receives a frozen, versioned click.ui theme API and broker calls through the trusted shell. The shared design kit is enabled by default; panel CSS loads afterward and can override it. Canvas never receives Host pairing tokens.
daScript
Section titled “daScript”daScript panels render native ImGui controls and can use styled Ui* primitives such as cards, tabs, badges, metrics, switches, and toasts. Callback budgets prevent a faulty panel from monopolizing Click’s frame loop.
ABI v2
Section titled “ABI v2”Trusted widgets share Click’s WASM address space. Click verifies content hashes and settings-schema artifacts before activation. This is a trusted extension mechanism, not a sandbox.
Terminal
Section titled “Terminal”Persistent Terminal is an ABI v2 widget backed by the dev.formless.tty Host capability. Host owns process persistence; the browser owns only presentation and input forwarding.