Pizza Docs
Pizza Docs · v1.0.0

Turn several agents
into one team.

Pizza is a local-first multi-agent workspace. Solo mode gives you the full power of Claude, Codex, DSH and other single agents. Team mode lets a leader route work by capability so you can brainstorm, build software, or run a research discussion.

Local-first · SQLite storage macOS · Windows · Linux Apache-2.0 open source
Pizza team conversation: the leader delegates tasks and members return results
A team turn: the leader delegates, members report back, and the result converges into a workspace artifact.
Overview

A local-first agent workspace

Pizza brings models, agents, and team structure into one desktop app. It does not force a single “best” model. Instead, it lets you combine agents with different strengths and costs, and lets a leader decide who takes the field.

Agent differences

Same model, different agent

Tools, prompts, and runtime behavior change the result. Pizza treats an agent as a configurable, reusable unit.

Domain differences

Models have different strengths

Put a strong planner in the leader seat, then add agents for code, research, or writing and match them to the task.

Cost tiers

Capability tracks price

Stronger models lead. Lighter models participate. Team structure becomes a way to control cost.

Two working modes

Solo mode

Talk to one agent directly

Best for clear, continuous work. Streaming output, tool calls, stop, retry, and run traces live in one conversation.

Team mode

Let a leader organize several agents

Best for decomposition, parallel exploration, or cross-checking. The leader routes work with @ and converges the result into an artifact.

Core capabilities

  • Solo and team conversation modes
  • Leader-assigned role instructions
  • Claude Code, Codex, DSH and more runtimes
  • Skill imports, MCP setup, and tool approvals
  • Sessions, runs, and artifacts stored in local SQLite
  • Streaming, stop, retry, and concurrency limits
  • Workspace file indexing and Markdown preview
  • Light / dark themes and Chinese / English UI
Pizza home screen: start a conversation with an agent or a team
Choose a single agent or a team on the home screen. Team sessions are orchestrated by the leader.
Quick start

Install and launch

Installers do not bundle or download model runtimes. Install and sign in to your runtime using its official documentation first.

Requirements

  • macOS 13 or later
  • Windows 10 or later
  • A mainstream x64 Linux distribution (AppImage / deb)
  • At least one local agent runtime, or a generic ACP / CLI runtime
  • A writable data directory; the default is ~/.pizza
macOS

dmg

Open Pizza-<version>-arm64.dmg and drag Pizza into Applications. If macOS warns about an unidentified developer, allow it in Privacy & Security.

Windows

Setup / zip

Run Pizza-Setup-<version>.exe, or unzip and launch the app. If SmartScreen warns, choose “More info → Run anyway”.

Linux

AppImage / deb

Make the AppImage executable and run it, or install the deb with your system package manager.

First launch

  1. Detect local runtimes

    Select “Start detection”. Pizza only runs which/where and --version; it never executes unknown scripts.

  2. Select and import

    Check the installed runtimes and choose “Import selected”. Pizza tests each connection and registers the ones that pass.

  3. Create your first agent

    After a successful import, create the default assistant or configure model, thinking level, and concurrency later.

Your data stays local. Sessions, runs, messages, and artifacts live in ~/.pizza by default. You can move the data directory in Settings or set PIZZA_DATA_DIR.
Runtimes

Supported runtimes

A runtime is how Pizza executes work. It can be a CLI such as Claude Code or Codex, or a local service that speaks ACP. Different runtimes can be bound to different models and capabilities.

Runtime Connection Notes
Claude CodeCLI · stream-jsonStreaming, tool calls, session resume, and model discovery
CodexCLI · app-serverThread reuse, turn/interrupt, and structured events
PiCLI · session filesRestores context from session files; good for local-model workflows
Oh My PiCLI · Pi protocolReuses the Pi protocol with native OMP session files
DeepSeek HarnessACP · dshUses the ACP profile by default; custom JSONL profiles can switch to CLI
HermesACP · stdioConnects to Hermes Agent over ACP stdio
OpenCodeACP · stdioConnects through opencode acp
Qoder CNCLI · stream-jsonUses the Claude-compatible event protocol with Qoder session and model flags
Gemini CLIACP · stdioConnects through gemini --acp
Kimi CodeCLI · stream-jsonParses Kimi Code assistant text, tool calls, and resume hints
Generic ACP / Custom CLIACP / CLIProvide a command or address for other local runtimes

Detection and manual setup

  • On first launch Pizza scans common install locations, including Homebrew, nvm, fnm, bun, pnpm, ~/.local/bin, ~/.opencode/bin, ~/.qoder-cn/entry, and ~/.kimi-code/bin.
  • Select any number of detected runtimes and import them together. Each one is tested for real; only passing runtimes are registered.
  • To set a custom command, arguments, environment, or timeout, use Settings → Runtimes → Add runtime.
Nothing detected when launched from Finder or the Dock? GUI apps on macOS may inherit a very short PATH. Pizza fills in common locations automatically. If a runtime is still missing, verify that which claude works in a terminal, or enter its absolute path manually.
Agents

Create an agent

An agent binds a runtime, a prompt, and a capability boundary. Open Settings → Agents → New agent, then enter a name, description, runtime, and initial prompt. Optionally choose a model, thinking level, and concurrency limit.

The description is the capability card

Agent descriptions become part of the team’s capability catalog, so the leader can decide who fits the task. Say what the agent is good at, what it produces, and what it should avoid; keyword stuffing is less useful.

Two instruction sources

Mode 1

Saved initial prompt

The member uses its own saved role, boundaries, and output format. The leader only describes the task. Best for stable responsibilities.

Mode 2

Leader-assigned instructions

No fixed role prompt. Each time the leader routes work with @, it sends the full role instruction and constraints. Best for capability-tiered teams.

Agent editor with instruction source configuration
In mode 2 the initial prompt becomes an optional solo fallback; team runs are driven by the leader.
Teams

Team collaboration: @-routing

Team mode is not a group chat. It makes the leader the only dispatch hub. Members register capabilities like skills, and the leader decides who enters the field based on the task.

Dispatch

One single-turn task at a time

Every @ carries a goal, input, and completion criteria. The member returns the result to the leader, who decides whether to dispatch more or converge.

Boundary

Members do not connect directly

An @ between members does not start another run. It is a suggestion carried back to the leader, which avoids cross-member loops and runaway parallelism.

How messages move

Team routing diagram: user messages go to the leader, the leader delegates to members, results return to the leader, and the turn converges

Run trace and convergence artifact

The trace panel records participants, each dispatch, run status, user waits, and convergence events. When the leader summarizes, the structured result is written to .pizza/artifacts/ in the workspace and appears in the artifact panel.

Pizza team run trace panel
Every dispatch, run state, and convergence event is traceable.
A converged team artifact in the workspace
Conclusion, evidence, disagreements, open questions, and next steps are saved as workspace Markdown.

How users step in

  • Mention a member with @ in the input box to direct a message to them.
  • When the leader mentions @me, the turn waits for your reply.
  • The default hop guard is 64. It only prevents runaway @ loops; whether to keep debating and when to converge remains the leader’s call.
Pizza team editor with leader, members, roles, and capability catalog
The team config is the capability catalog: each member card shows its description, role, and instruction source.
Daily use

Daily use

Solo conversation

Return to the home screen, pick an agent, and send a task. You can watch streaming output and tool calls, stop the run, or retry.

Team conversation

Pick a team and send a task. If you do not mention anyone, the message goes to the leader by default. The leader selects members from the capability catalog and sends each a single-turn task. Mention a member or answer the leader when you want to step in.

Settings and data

  • Settings → Language & appearance switches the theme and UI language.
  • Settings → Runtimes / Skills / MCP manages runtimes and capability access.
  • Settings → Archived sessions restores or permanently deletes sessions.
  • Data lives in ~/.pizza by default; migrate it in Settings or set PIZZA_DATA_DIR.

Keyboard shortcuts

ShortcutAction
⌘KOpen the command palette
⌘NNew conversation
⌘,Open settings
Development

Build from source

Requires Node.js 22+ and npm.

npm install
npm run dev            # development
npm run build          # production build
npm run package:mac    # macOS dmg/zip
npm run package:win    # Windows nsis/zip
npm run package:linux  # Linux AppImage/deb

Build output goes to release/. For development, test, and packaging details, see docs/USAGE.md.

FAQ

Frequently asked questions

Pizza cannot detect my installed runtime.

Check that which claude works in a terminal, then restart Pizza or select detect again. If it is still missing, enter its absolute path manually in Settings → Runtimes.

The connection test passes, but chatting fails.

Check whether the runtime needs a separate sign-in and whether the selected model is available. CLI flags are not identical across products; Pizza uses the matching flags and event parser for each known runtime.

Why is deleting an agent blocked?

An agent that is still referenced by active sessions cannot be permanently deleted. Archive the agent, or archive / delete the related sessions first.

When does a team turn end?

The leader decides. When it stops mentioning new members and writes a summary, the turn ends and the structured summary is saved as a workspace artifact.

Where is my data stored?

By default in ~/.pizza. Sessions, runs, messages, and artifacts remain on this machine and are not uploaded to a Pizza server.

License

Open-source license

Pizza is released under the Apache License 2.0. You may use, modify, and distribute the project, provided you keep the copyright and license notices and include a copy of the license when distributing.