Using Zana
Once you've installed the app and spawned your first agent, this guide covers the day-to-day surfaces — the ones you'll live in as you scale from one session to a fleet.
ZCC uses a three-column layout: the sidebar (projects and global surfaces) → a list pane (what's inside the selected surface) → the main pane (threads, terminals, and panels). Everything below is reachable from the sidebar.
New Chat#
New Chat is the home composer. Pick a launch mode, then describe the work:
- Thread (default) — a conversation with the selected harness in the project you pick. This is the usual path for day-to-day work.
- CLI Agent — a real PTY running the native CLI, with the same tools and permissions as a standalone terminal.
- Autonomous Team — launch a saved team of personas against the project when the work benefits from parallel roles.
The composer also picks the environment (Work locally, a new or existing worktree, or personal scratch). See Environments.
Agents#
The Agents board is the home base for orchestration: every running session across every project, grouped by status — needs you, working, idle, done. It's the answer to "which of my agents is stuck?" without tabbing through terminals.
From the board you can:
- Jump to any session's terminal in one click.
- Star an agent to pin it — starred agents are never reclaimed by auto-close-idle.
- Close a session when its work is done.
A CLI Agent tab is a real harness PTY, so the native Claude Code, Cursor, OpenCode, Codex, or Pi workflow remains available inside Zana. Threads are the default conversation surface from New Chat.
Environments#
A launch picks an environment — the directory the agent actually writes in. The composer picker on a local git project offers:
- Work locally — the registered project folder. Palette, Inbox, scheduler, shell, team, and remote launches always use this default.
- New worktree — a managed git worktree on
zcc/<name>-<id>, created under~/.zcc/worktrees/<environmentId>/<repoName>. Optional Base branch defaults to the server's policy (usuallymain/master). The main checkout is left untouched. - Existing worktree — attach another agent to an existing ready worktree.
- Personal scratch — a non-git folder under
~/.zcc/personal-workspaces/<environmentId>.
Remote SSH projects can only use Work locally. This slice does not create managed worktrees over SSH.
Leftover folders under ~/zcc-worktrees (the previous desktop mint path) stay
on disk as unmanaged checkouts. New worktrees are not created there.
Two optional files in the source repo customize a new worktree:
.worktreeinclude— gitignore syntax. Matching untracked files (for example.env) are copied into the new worktree. Symlinks are not followed and tracked files are never overwritten..zcc-env-setup.sh— runs after the worktree is created. A non-zero exit rolls the worktree back and the thread does not start.
From the agent detail panel you can commit, squash into the local default
branch, and open a PR against gh on the host.
Keeping the fleet tidy#
Two optional automations (both off by default, toggled under the Agents rail and in Settings) help a large fleet manage itself:
- Auto-close-idle — closes a non-background agent after it has sat idle for a configurable number of minutes. Starred agents and the foreground session are always spared. A parked question is preserved as a follow-up before the close, so nothing is lost.
- Overseer — a lightweight supervisor mode. Start with dry-run to see what it would do before letting it act.
Inbox#
The Inbox is the single place agents talk to you. Rather than scrolling each terminal, agents push here when they:
- finish an analysis or a multi-step task (often linking a report doc),
- hit a decision only you can make,
- get blocked on an error, or
- want to summarize an outcome.
Reply inline. When an entry is a question, your answer routes straight back to the waiting agent as if typed at its prompt — you never have to find the right terminal.
Signal vs. noise. The feed keeps high-value items (reports, ideas, questions, goals) inline as solo rows, and folds high-volume routine events (scheduled runs, auto-closed agents, heartbeats) into collapsible per-project sections so they can't bury what matters.
AI Summary. A card at the top digests recent activity into a few lines, so even a busy inbox is readable at a glance. It refreshes on its own as the inbox changes.
Teams#
A team is a saved composition of agents — each with its own persona — that you can launch together against a project. Instead of spawning and briefing several agents by hand, you launch the team and each member starts in its role.
Use teams for recurring shapes of work: a review team (implementer + reviewer + security), a research team fanning out across sources, or a council that deliberates and returns a verdict. Teams and their member personas are edited from the sidebar, and plugins can contribute their own.
Goals & Follow-ups#
These two surfaces capture work that outlives a single session:
- Goals — autonomous objectives. You state an outcome; the app pursues it across multiple agent turns, surfacing progress and decisions to the Inbox.
- Follow-ups — durable parked questions. When an agent genuinely needs a human and the session might end first, the question is parked here and survives restarts. You answer when you're ready; it doesn't get lost in scrollback.
Plugins for tickets and more#
Core does not ship a project ticket board. The Agents board is about session state, not sprints. Install workflow plugins from the Plugins hub (for example tasks, or a GUS/Tickets plugin) when you want a persistent work list that agents can claim. Browse official and community catalogs from Plugins → Browse. See the Plugins overview.
Scheduler#
The Scheduler runs recurring tasks — a nightly review, a periodic dependency audit, a morning digest. Scheduled runs report into the Inbox (folded as routine so they don't crowd the feed) and can notify you when they find something worth surfacing.
Settings worth knowing#
- Theme — light and dark are both first-class; the toggle lives in the nav.
- Automations — the auto-close-idle and Overseer switches, plus their thresholds.
- Feed-noise classifier (optional) — a small background helper that demotes ambiguous routine reports into the folded "Routine" section. Off by default.
- Machines — pair another computer so projects and threads can run there. See Using Zana on multiple machines. SSH remotes stay a separate path.
- Plugins — the top-level Plugins hub (not a Settings page) installs
from the marketplace and manages what's installed. This is ZCC's catalogue,
not Claude Code's
~/.claude/plugins. See the Plugins overview.
Where to go next#
- Getting started — if you skipped the five-minute setup.
- Using Zana on multiple machines — enroll a host daemon on another computer.
- The `zcc` CLI — drive ZCC from the command line.
- Build your first plugin — extend the cockpit in TypeScript.