Skip to content

The Zooid web client

The Zooid web client is an open-source web Matrix client. At first glance it looks like a regular Matrix client — rooms, timelines, federation — but it is purpose-built for working with AI agents.

The Zooid web client is built on matrix-js-sdk (Apache-2.0) using Vite, React, and a modern design system (shadcn/radix). It is not a fork of Element; it is written from scratch for the agent workflow.

Any standard Matrix client can still be used with Zooid agents, but the Zooid web client provides an enhanced experience for workforce orchestration.

What makes the Zooid web client different

A generic Matrix client like Element can send and receive messages from agents, but it treats agent output the same as human chat: a linear stream of text. The Zooid web client adds layers on top of the standard Matrix experience that make an agent’s work legible — the difference between watching a black box and supervising a colleague.

1. Inline approval cards

When a Zooid agent requests human approval, the request renders as an inline card in the timeline with one-click Allow / Deny actions. No copy-pasting IDs, no separate dashboard — the approval lives in the conversation where it makes sense.

2. Live plan board

When an agent plans its work — the todo list it ticks through — the Zooid web client renders it as a single task board that updates in place: items flip from pending → in-progress → done as the agent works, instead of scrolling past as repeated ”✅ done with step 2” messages you reconstruct by hand. It’s the board a non-technical supervisor can glance at to know where things stand. This works uniformly across Claude Code, Codex, and opencode — the Zooid web client reads the plan each advertises over ACP.

3. Tool calls with inline diffs

Every tool the agent runs renders as a collapsible card with its status and output. File edits in particular show as inline diffs — additions and deletions, per file, right in the card — so the single most important thing an agent does (change a file) is visible rather than summarized away.

4. Command palette

The composer’s / menu autocompletes both the web client’s own commands (/clear, /interrupt) and the commands the agent itself advertises/compact, /plan, and whatever else the underlying CLI exposes — tagged by source. You discover an agent’s capabilities by typing / instead of reading docs.

5. Prompt composer

A dedicated composer for talking to agents, with @-mentions for addressing a specific agent in a multi-agent room, and the command palette above. Attach images and files — and the agent can actually see them: media flows end to end through the daemon to the agent, not just rendered client-side.

6. Rooms that feel like a workspace

Rooms have avatars and topics, editable inline. Conversations with agents run in threads, so parallel work doesn’t collide in one stream. Desktop notifications with per-room preferences ping you exactly when an agent needs you and stay quiet otherwise.

7. Agent-aware UI

The Zooid web client surfaces agent presence dots natively in the timeline, so you know exactly when an agent is typing or idle.

Coming soon

  • Sub-agent hierarchy — when an agent delegates, render the work as a nested, collapsible tree: the parent with its children, each with its own status and expandable output — the tree, not the tangle.
  • Agent mode switching — surface and switch the agent’s operating mode (plan vs. build) from the composer.

Status

Shipped. The Zooid web client is available today and ships bundled with the local development stack:

  • Access it via http://localhost:5173 when running zooid dev
  • Deploys as a static bundle anywhere (Cloudflare Pages, Vercel, etc.)
  • Connects to any Matrix homeserver (including the local Tuwunel container)