Back to docs

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.

1

Open Settings → Providers

The Providers tab is a live, syntax-highlighted YAML editor. Secrets are masked until you choose to show them.

2

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
3

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.

4

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.