Getting started with Zod
Zod Agent is a client-side, agentic AI chat workspace that runs entirely in your browser. Zero backend, no account, no server — your sessions, memory, and settings live in your browser's localStorage, and the only data that leaves your machine is the requests you send to the LLM providers you configure.
What is Zod?
Zod gives you a hub-first conversation UI on top of any OpenAI-compatible API — OpenAI, OpenRouter, Together, Groq, or local servers like Ollama and LM Studio. It runs a real multi-round tool loop in the browser, renders structured output as rich cards, is configured with YAML everywhere, and can schedule prompts and workflows to run in the background.
Everything is stored locally in a single localStorage key (zodagent). Close the tab and come back later — it is all still there.
Run it
Zod is a static app, so the same build ships as a web app, a Chrome extension, or a desktop app.
Web app (PWA)
Open the hosted page in any modern browser. Installable as a progressive web app with an offline shell.
Chrome extension
The same app packaged as a browser extension (MV3), giving the agent control of every tab and page.
Desktop app
A thin shell around the same static build. No server runtime is needed anywhere.
Self-host
Requires Bun 1.3+. Build the static site and serve it anywhere.
# 1. Install dependencies
bun install
# 2. Run the dev server
bun run dev
# → open the printed http://localhost:5173 URL
# 3. Production build (all three targets: web → dist-web/, extension → dist-extension/, desktop → dist-desktop/)
bun run build
# 4. Preview the production build
bun run preview
# 5. Run the native desktop app (Electrobun)
bun run desktop
First-run setup
Add a provider, set it as the default, and start chatting. The whole flow happens in the Settings drawer — no account required.
Open Settings → Providers
The Providers tab is a live, syntax-highlighted YAML editor. Secrets are masked until you choose to show them.
Add a provider
For example, OpenRouter with baseUrl https://openrouter.ai/api/v1 and model gpt-4o or openrouter/free:
providers:
- name : OpenRouter
baseUrl : https://openrouter.ai/api/v1
apiKey : sk-or-v1-REPLACE-ME-00000000000000
model : openrouter/free
enabled : true
Save, then set it as the default provider
Open the General tab, pick your provider as the default, and optionally choose a fallback and tune the request timeout, retries, and rate limit.
Start chatting on the hub
Type into the big prompt box, or use the calendar-clock Schedule button in the chat bar to schedule a prompt to run later.
Privacy. API keys are stored only in your browser's localStorage and are sent only to the provider baseUrl you configured.
The four UI surfaces
Zod organizes the workspace into four surfaces you can jump between from the top bar.
Hub
The home screen: greeting, current time, a large prompt box, and quick actions for search, settings, the orchestrator, and new conversations.
Chat
Streaming conversation with a context-length meter, message actions, slash commands, mentions, and file attachments.
Drawers
Sliding panels for sessions and harness search, the orchestrator workflow editor, and the task scheduler. Widths are resizable and persisted.
Settings
Nine tabs — General, Providers, Memory, Tools, MCP, Agents, Webhooks, Schedule, and Pairing. Providers, memory, tools, and MCP are live, syntax-highlighted YAML; the rest have their own dedicated UIs.