Your data stays yours.
Your values never leave the tab.
QDev opens your JSON, YAML, and TOON files and writes jq from your schema when you ask in plain English. All of that happens inside the page: your file is parsed and rendered locally, and jq runs on-device in WebAssembly. The three local AI modes send nothing off your machine at all. And when you choose hosted QDev Pro, the only things that cross the wire are a value-masked schema and your question — never your actual values, never the document.
What actually leaves your device
Here is every category of data QDev touches, and whether it ever crosses the network — in the local AI modes (WebLLM, Chrome's Gemini Nano, and Ollama) versus hosted QDev Pro. The one line that never changes: your values never leave, in any mode.
| DATA | LOCAL MODES | HOSTED (PRO) |
|---|---|---|
Your document The JSON / YAML / TOON file itself. | Never leaves | Never leaves |
Your values Every actual value inside the file — strings, numbers, secrets. | Never leaves | Never leaves |
The schema Field names and their types, with every value stripped out. | Never leaves | Sent |
Your question The plain-English ask you type into the bar. | Never leaves | Sent |
email of type string, but never that its value is you@company.com. The document and its contents stay in the tab.Local modes send nothing. Full stop.
QDev can write jq without any server at all. Three on-device modes keep every byte — document, schema, and question alike — inside your machine:
The hosted proxy is stateless and zero-retention by default
When you opt into hosted QDev Pro, requests pass through a thin proxy that does exactly three things and remembers none of them. It validates entitlement, forwards to the model, and returns the completion — prompts and results are not logged unless you opt in to training sharing.
Connecting your account links entitlement — not data
Account linking is deliberately minimal. To use Pro you connect the extension through Clerk sign-in, which mints an opaque tokenthe extension uses to prove it's entitled. That's the whole handoff.
- It's a link, not a login to your files. Connecting associates your account with a Pro entitlement so the proxy can answer "is this subscription active?" — nothing more.
- The token is opaque. The extension carries a bearer token, not your credentials, and it stands in only for the entitlement check on each request.
- Connecting ≠ data access. Linking your account grants the service no access to your documents, your values, or anything in your tabs. Those never travel to us.
The whole thing is source-available.
Every claim on this page is verifiable, because the extension is inspectable on GitHub. You can read exactly how the file is parsed in-page, how jq runs in WebAssembly, what the value-masked schema contains, and what the proxy does — and doesn't — with a request. Nothing here rests on taking our word for it. And it behaves identically on Chrome and Firefox.
Your file stays in the tab, jq runs locally, and even in hosted mode your values never leave. Read the full policy, or see how each AI mode handles your data.