Skip to content

Web UI

The Web UI is where everything Z.E.N. is doing shows up in one place. Workflows, runs, schedules, chat with your AI of choice, the builder for new workflows. Built in, no tokens, no external services.

Get to it

If the daemon is running, the Web UI is at http://localhost:3090. Start the daemon two ways:

bash
# Foreground, prints logs to your terminal
zen serve

# Background via launchd (recommended for daily use; see Operate / Local)
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.choosecadence.zen.plist

Open http://localhost:3090 once it's up. Bookmark it.

What you see

Five tabs:

  • Chat. Talk to your configured provider. Conversations are scoped to whichever project you've selected.
  • Dashboard. Every running and recent workflow run, with status, elapsed time, current node.
  • Workflows. Bundled and project-local workflows. Click one to see what it does, edit, or fire it.
  • Schedules. Scheduled fires, their next-fire time, recent history, skip counts.
  • Settings. Provider defaults, project list, environment.

Firing a workflow from the Web UI

Three ways:

  1. The Workflows tab. Pick a workflow, hit Run, drop in any vars it needs.
  2. The Chat surface. Type "run morning-brief" and the orchestrator picks the workflow up.
  3. The Workflow Invoker in the sidebar. Quick-launch a workflow inside a new conversation.

Workflows run in the background by default. A progress card shows up in the conversation while the run is going. If the workflow has an approval step, the card has Approve and Reject buttons; tap to advance.

The builder

/workflows/builder opens the visual editor. Drag nodes, wire dependencies, edit prompts in a side panel, switch between Visual and Code views. Save writes the YAML into .zen/workflows/.

You can open any existing workflow in the builder to edit. The DAG canvas, node inspector, undo stack, real-time validation are all there.

Live updates

The Web UI is server-sent-events all the way through. When a workflow advances a node, the Dashboard card updates immediately. When the AI streams a response into a chat, you see the tokens land in real time. No refresh.

If the connection drops, the status indicator turns red and the UI reconnects automatically.

Projects

The sidebar lists every codebase Z.E.N. knows about. Click one to scope chat and workflows to that project. New projects are added by cloning a URL (/clone <url> in chat) or by registering a local path. Removing a project unregisters it from Z.E.N.; the files stay.

What lives where in the file system

SurfaceStorage
Conversations~/.zen/zen.db (SQLite)
Workflow runs and logs~/.zen/zen.db
Worktrees and run sandboxes~/.zen/worktrees/, ~/.zen/workspaces/
Workflow files (per-project)<project>/.zen/workflows/
Workflow files (global)~/.zen/workflows/

If you ever want to nuke everything and start fresh, deleting ~/.zen/zen.db clears all history. Files in projects stay.

Auth

The Web UI has no built-in user auth. It binds to 0.0.0.0 by default, which means anyone on your network can reach it if your firewall allows port 3090.

If you're exposing the UI publicly (Tailscale, a server you SSH to, a homelab), put it behind reverse-proxy auth. The deployment pages have examples for Caddy basic auth and Cloudflare Access. See Operate / Cloud.

AI that follows a recipe, not a conversation.