◆ on-device · one script tag

Give any app a voice.
On the device. Nowhere else.

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.

Get the snippet

The demo runs the real model on your device — a one-time ~310 MB download. That download is the product.

🪺 The nest is empty until you fill it
Tap Try it live and the actual HawkTalk widget loads onto this page — same code you'd embed, running on your GPU.
nesting… pulling the model onto your device
🔒

Private by construction

Runs in the tab on WebGPU. No server, no account, no logging — the words physically can't leave the device.

📴

Works offline

Loads once, then answers with zero signal. The model lives in the browser cache, not a data center.

💸

$0 per query

No API bills. It runs on the user's silicon, so it scales to infinity for the price of zero.

🧩

One script tag

A Shadow-DOM-sealed web component. It can't touch your styles and your styles can't touch it.

Actions, not chatter

Turns speech into verified tool calls — grammar-constrained, retrieval-grounded, never a hallucinated command.

🛟

Always answers

No WebGPU? It falls back to a deterministic rule parser. The window never goes dead.

Two lines to nest it

Self-host the widget on your origin (same-origin keeps it CSP-clean and offline-ready), then drop the element anywhere.

your-page.html
<!-- 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>

What's under the nest

MODEL

Feedseed · 270M

A vocab-trimmed function-calling model, fp16 on WebGPU. Small enough to ship, sharp enough to be trusted.

DECODE

Grammar + retrieval

Output is constrained to valid tool-call JSON with real, retrieved names — structure by construction, not by hope.

FALLBACK

Deterministic floor

Where there's no WebGPU, a rule parser answers. Critical paths never depend on a model's mood.

TRUST

Signed, verifiable

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.

Copied ✓