Chat & context
Everything you see in the chat workspace is local-first: your sessions, memory, and preferences persist in a single localStorage key (zodagent). No data leaves your machine except the requests you send to the LLM providers you configure.
The hub
The hub is the home screen you land on. It shows the logo, a greeting, the current time, a large prompt box, and a set of quick actions: search sessions, open settings, open the orchestrator, and start a new conversation.
Sessions & search
The sessions drawer lets you create, search, switch, rename, and delete sessions. Search matches session titles and message content, and also covers harnesses — so you can jump straight back into any past conversation or workflow.
Title + content search
Full-text search across message bodies, not just session names.
Harness coverage
Named workflows stored as harnesses appear in search results too.
Streaming chat
Messages stream in token by token over SSE from your configured provider. The input auto-resizes, send with Enter, and the context meter tracks how much of the window you are using.
Context-length meter
A live meter in the chat bar shows approximate token usage as a percentage of a 4096-token window, alongside the message count — so you know when a conversation is getting long.
Message actions
Every assistant reply has actions for copy, regenerate, delete, a thumbs up / thumbs down rating, and its timestamp. User messages can be edited, copied, or deleted.
Assistant replies
Copy, regenerate, delete, rate, timestamp.
User messages
Edit, copy, or delete your own prompts.
Rich rendering
Structured output renders as cards — see Agents & Sessions.
Chat input superpowers
Slash commands
Type / to insert a prompt template: think step by step, write code, explain, fix bugs, review, docs, tests, refactor, plan, summarize, translate, optimize, diagram, table, expand.
@ mentions
Type @ to mention agents, sessions, and tools with a searchable, grouped picker. Both popovers support keyboard navigation (arrows, Enter/Tab, Esc).
File attachments
The paperclip in the chat bar attaches text files (.txt, .md, .json, .yaml, .js, and more). Their contents are embedded in the LLM context and shown as chips on your message.
Session data panel
A panel collapses in next to the chat with two tabs, all persisted across sessions:
Tasks
A persistent to-do list — check, edit, delete, clear.
Memory
Your long-term memory blocks, editable in Settings · Memory.
Local-first persistence
There is no backend and no account. The whole app state — sessions, agents, harnesses, preferences, memory, and scheduled tasks — is stored as a single JSON document under the zodagent key in localStorage and survives reloads. For background scheduling, the same document is mirrored into IndexedDB (zod-bg) so the service worker can read it. You can export or import the full state as JSON from Settings → General.