Drop a voice command layer into any web app that runs entirely in the user's browser — private, offline, and free to run. No backend. No account. No data leaving the tab.
The demo runs the real model on your device — a one-time ~310 MB download. That download is the product.
Runs in the tab on WebGPU. No server, no account, no logging — the words physically can't leave the device.
Loads once, then answers with zero signal. The model lives in the browser cache, not a data center.
No API bills. It runs on the user's silicon, so it scales to infinity for the price of zero.
A Shadow-DOM-sealed web component. It can't touch your styles and your styles can't touch it.
Turns speech into verified tool calls — grammar-constrained, retrieval-grounded, never a hallucinated command.
No WebGPU? It falls back to a deterministic rule parser. The window never goes dead.
Self-host the widget on your origin (same-origin keeps it CSP-clean and offline-ready), then drop the element anywhere.
<!-- 1. load the widget (self-hosted, same-origin) --> <script type="module" src="/hawktalk-widget.js"></script> <!-- 2. drop it anywhere on the page --> <hawktalk-chat app="opencairn"></hawktalk-chat>
A vocab-trimmed function-calling model, fp16 on WebGPU. Small enough to ship, sharp enough to be trusted.
Output is constrained to valid tool-call JSON with real, retrieved names — structure by construction, not by hope.
Where there's no WebGPU, a rule parser answers. Critical paths never depend on a model's mood.
The model can be grown from a signed seed and verified chunk-by-chunk before it's ever run.
Honest scope. This is a function-calling widget, not a chatbot. It's built to turn what a user says into the right action in your app — and to correctly do nothing when they're just talking. It won't out-write a cloud giant at open-ended conversation, and it isn't trying to. Its edge is narrow, structured, private, and offline — which is exactly the ground the giants can't stand on.