HashAgent is a free, open-source web app that packs an entire AI agent — its name, system prompt, greeting, and settings — into a link. Open that link on a WebGPU-capable browser and the model downloads and runs on your own device, with no account, no server round-trip for your chat, and nothing to install.
Short answer: HashAgent lets you build a small AI agent and share it as one URL. The agent definition is compressed into the link itself, so opening it runs a local model (via WebGPU, using WebLLM or Transformers.js) right in the recipient's browser. It's free, MIT-licensed, works offline after the first model download, and tops out around 8B parameters on desktop, 1B on phones.

I spent an afternoon building agents on HashAgent's hosted instance and picking apart the open-source repo to see how the URL trick actually holds together, and in my test the part that impressed me wasn't the chat quality — it's small, local models, so don't expect GPT-4-level answers — it's that a link genuinely works with the tab closed and reopened days later, no login screen in sight. This guide covers what you need, how to build and share your first agent, and where it falls over.
What you'll need
A WebGPU-capable browser: Chrome or Edge 113+, or Safari 26+ on macOS, iOS, iPadOS, or visionOS, per web.dev’s browser support rundown. Chrome on an iPhone still runs on Apple's WebKit engine underneath, so it inherits Safari's limits, not Chrome desktop's. You'll want a few hundred megabytes of free storage for the model weights (the smallest default model is roughly 210MB, the desktop 8B option runs closer to 4.3GB), and a decent first-run internet connection since nothing loads until the model finishes downloading. No account, no API key, and no install — everything runs from the browser tab.
Step-by-step: Building and sharing a HashAgent
1. Open the hosted app or run it yourself
Go to HashAgent's hosted instance, or clone the GitHub repo and run npm install && npm run dev for a local copy at localhost:5173. The hosted version is the faster path for a first try.
2. Name the agent and write its system prompt
Give it a name, an emoji, and a system prompt that scopes what it should do — the more specific, the better a small model performs. A one-line "answer only using the tools provided, don't guess" instruction goes a long way with an 8B or smaller model.
3. Pick a device profile
Choose Auto, Mobile, Balanced, Quality, or Vision. Auto detects the visitor's hardware and picks accordingly; Mobile defaults to SmolLM2 360M for anyone opening the link on a phone, while Quality reaches for a heavier model like Llama 3.1 8B on a capable desktop. Set this based on where you expect the link to be opened, not where you built it.
4. Add a greeting and temperature
An opening message sets the tone before the visitor types anything. Temperature defaults to 0.7; I dropped mine to around 0.3 for a fact-lookup agent, since lower temperature made it stick to the tools instead of inventing an answer.
5. Generate and copy the link
HashAgent compresses the whole definition into /#agent=c.<base64url data> — a full permanent link that needs no database — or you can create a short /s/<id> link, which does store a payload server-side for social-preview cards. If you want zero server involvement at all, stick with the long link.
6. Send the link and let the recipient's browser do the work
Whoever opens it triggers the download on their own device — you're not hosting inference for them. First open is the slow part; every open after that reuses the cached weights, so the agent works offline once loaded.
Example prompts you can copy
These work well as system prompts when you're setting up your own agent:
- "You are a unit-conversion assistant. Use the calculator tool for every numeric answer. If asked anything outside conversions, say you're not built for that."
- "You are a trip-planning helper. Use the weather tool before recommending outdoor activities, and cite the city and date in your answer."
- "You are a study buddy for [subject]. Use the Wikipedia tool to check facts before answering, and say 'I'm not certain' rather than guessing."
- "You are a quick-lookup agent. Use the local time tool for any time-zone question instead of calculating it yourself."
- "You are a decision sounding board. Ask one clarifying question before giving an opinion, and list the strongest counterargument to your own suggestion."
Keep prompts narrow. HashAgent's own documentation is blunt about this: small local models "do not call tools as reliably as frontier hosted models," so an agent scoped to one job beats a generalist every time.
Common mistakes to avoid
The one that got me first: picking the Quality profile for a link I planned to send to phone users, which meant the first person to open it on an iPhone hit a multi-gigabyte download over cellular data. Match the device profile to your actual audience. Second, expecting chat-app memory — conversation history isn't in the URL at all (only up to 50 recent messages persist, and only in that visitor's local IndexedDB), so a shared link doesn't carry a conversation, only the agent's setup. Third, assuming web search works like a real search engine; HashAgent's gateway tool parses public search-result HTML and RSS rather than calling a licensed API, so it can break when a search provider changes its markup. Fourth, testing only on desktop Chrome and assuming iOS will behave the same — WebKit caps a single browser tab around 1.5GB of memory no matter how much RAM the iPhone has, which is why image input gets disabled on phones entirely. Fifth, forgetting that a long #agent= link is the whole definition in plain sight; anyone with the URL can read the system prompt, so don't put anything in it you wouldn't want a recipient to see.
HashAgent vs. other ways to run or share an agent
| Tool | Where it runs | Setup for the sender | How it's shared | Cost |
|---|---|---|---|---|
| HashAgent | Recipient's own browser (WebGPU) | Fill in a form, no install | One URL | Free, MIT-licensed |
| Custom GPTs | OpenAI's servers | Build inside ChatGPT | Link, requires a ChatGPT account to use | Needs ChatGPT Plus, $20/month to create |
| Ollama | Your own machine, terminal-based | Install Ollama, pull a model | Not link-shareable by default | Free, self-hosted |
| LM Studio | Your own machine, desktop app | Install the app, download a model | Not link-shareable | Free |
HashAgent's whole pitch is the middle ground those rows don't cover: no account needed to use it, and no server bill for the person who built it, because the visitor's device does the work.
Tools that make this easier
If you're building agents more seriously than a one-off share link, it's worth understanding the broader landscape first. My guide to ChatGPT agents covers the hosted, heavier-duty alternative when a task needs real web browsing and file creation rather than a scoped local chatbot. If HashAgent's model ceiling feels too small for what you're building, I also tested Needle2, a 14MB agentic model built for phones and constrained devices, which takes the "tiny local model" idea even further. For agents that need to run code safely rather than just answer questions, see how Docker sandboxes isolate AI agents from your real filesystem. And if cost is the whole reason you're looking at browser-local tools, my running list of free AI tools worth using and how to use ChatGPT without paying cover the no-budget path on the hosted side. If you're curious how other builders think agent interfaces should look beyond a plain chat box, this Show HN discussion on AI agent GUIs is worth a read.
My take
HashAgent isn't trying to replace a hosted assistant, and it says so itself — these are single-task agents, not GPT-4 replacements. What it does well is the specific thing it set out to do: zero-hosting-cost distribution of a scoped agent, with the sharing mechanic actually holding up under real use. If you need a quick tool that a friend or teammate can open without signing up for anything, it's a genuinely clever use of a URL. If you need reliable tool-calling or long conversations, stick with a hosted model.
Frequently Asked Questions
Is HashAgent free?
Yes. It's free to use on the hosted instance and MIT-licensed if you want to run or modify it yourself. The only cost that could ever apply is to whoever deploys their own copy, since Cloudflare's free plan for the optional short-link feature caps out at 1,000 writes and 100,000 reads per day.
How long does it take to set up a HashAgent link?
Building the agent itself takes a couple of minutes — name, prompt, greeting, device profile. The slow part is the first model download for whoever opens the link, which ran anywhere from under a minute for the small mobile default to several minutes for an 8B desktop model on a slower connection in my test.
What is the easiest way to try HashAgent?
Open the hosted link, use the demo agent instead of building your own, and pick the Auto device profile so it matches whatever device you're on. That skips every setup decision on your first run.
Does HashAgent work offline?
After the first successful load, yes — the model weights are cached in the browser, so reopening the same link doesn't require a fresh download. Tool calls that need the internet, like web search or weather, still need a connection.
Is it safe to share a HashAgent link?
The link only contains the agent's setup, not any conversation, and nothing is sent to a server when someone opens it — except the optional search/weather tools, which only receive the model's derived query, not the full chat. That said, the system prompt is stored in plain text inside the URL, so treat it the way you'd treat any public link: don't put anything sensitive in it.