Widget Settings
Enter a Hugging Face repo ID and load the available files. The rest is optional.
Live Preview
This is what the widget looks like when embedded with the current settings.
Pick a model from Hugging Face, we build you the right link or embed snippet. Everything runs locally in your users' browser – no API keys, no tracking, no backend.
Get startedAll inference happens on the user's device. No data ever leaves the browser.
Leverages the GPU via WebGPU for fast local inference – even on mid-range hardware.
Copy-paste an iframe or use the dynamic JS snippet – integrate in seconds.
Host the page anywhere (even on Cloudflare Pages) – no backend, no maintenance.
Configure the model, appearance, and behaviour – then copy the generated link.
Enter a Hugging Face repo ID and load the available files. The rest is optional.
This is what the widget looks like when embedded with the current settings.
You have configured everything above and the generated link works. Now you probably want to embed it somewhere. There are a few ways – pick the one that fits your setup best.
This is the easiest way. Take the generated link and put it into an iframe. The widget automatically adapts to the available height and runs completely isolated.
<iframe src="YOUR_LINK_HERE" style="width:100%;height:600px;border:none;border-radius:12px;"></iframe>
If you don't need embedding at all, just share the generated link. Anyone opening it gets the full-page widget – no distractions, just the chat interface.
Create the iframe element dynamically and set the src to the generated link. Useful when the chat should appear after a button click or based on user input.
const iframe = document.createElement('iframe');
iframe.src = 'YOUR_LINK_HERE';
iframe.style.cssText = 'width:100%;height:600px;border:none;border-radius:12px;';
document.getElementById('my-container').appendChild(iframe);
This entire page is a single HTML file. You can drop it directly into a Cloudflare Pages project (Git or direct upload). Cloudflare delivers it fast via CDN – the widget runs entirely client-side via WebGPU.
If you prefer to build the URL by hand, here are all parameters the widget understands. Only repo and file are truly required.
repo — Hugging Face Repository, e.g. bartowski/Llama-3.2-1B-Instruct-GGUF file — Filename in the repo, e.g. Llama-3.2-1B-Instruct-Q4_K_M.gguf title — Title in the widget header icon — Emoji in the widget header placeholder — Placeholder text in the input field theme — dark or light autoload — true or false, load model automatically header — true or false, show header greeting — Greeting text from the AI system — System Prompt ctx — Context length in tokens (default: 8192) maxTokens — Maximum output tokens (default: 2048) temp — Temperature (default: 0.7) topP — Top P (default: 0.95) topK — Top K (default: 40) repPenalty — Repetition Penalty (default: 1.1) settings — true or false, show settings button systemChange — true or false, user can change system prompt allowModelChange — false, suggest, or free (user can change model repo) allowQuantChange — false, suggest, or free (user can change quantization file) hideSettings — Comma-separated: temp,topp,topk,reppenalty,maxtokens,ctx,system