Skip to content

Getting Started

PizzaPi has two parts:

PartWhat it does
CLI (pizzapi)Wraps pi on your dev machine and streams session events to the relay
Relay ServerBuffers and broadcasts events; hosts the web UI

You always need the CLI. The relay can be hosted by someone else (quickest) or run yourself with Docker.


Before you start, make sure you have:

  • Node.js 18+ (or Bun) installed
  • An AI provider API key — PizzaPi uses the pi coding agent under the hood, which needs an API key from at least one provider (Anthropic, OpenAI, Google, etc.). Alternatively, a Claude Pro/Max subscription works via the Claude Code OAuth flow.
  • A relay server URL — either a hosted relay someone has shared with you, or you’ll self-host one below.
  • Docker + Docker Compose — only if you self-host with pizzapi web

Option A — Use a Hosted Relay (Quickest)

Section titled “Option A — Use a Hosted Relay (Quickest)”
  1. Install the CLI

    Terminal window
    npx @pizzapi/pizza
  2. Run first-time setup

    The first time you run pizzapi without a saved config it launches the setup wizard automatically:

    ┌─────────────────────────────────────────┐
    │ PizzaPi — first-run setup │
    └─────────────────────────────────────────┘
    Relay server URL [http://localhost:7492]: https://relay.example.com
    Your name (leave blank if account exists): Jordan
    Email: you@example.com
    Password: ••••••••
    Connecting to relay server… ✓
    ✓ API key saved to ~/.pizzapi/config.json
    ✓ Relay: wss://relay.example.com

    You can re-run setup at any time:

    Terminal window
    pizzapi setup
  3. Start a session

    Terminal window
    pizzapi

    Open the relay’s web UI in your browser — your session is streaming live!


Want complete control? Run the relay + web UI yourself.

If you have Docker installed, one command does everything:

Terminal window
pizzapi web

This clones the repo, builds the containers, and starts the relay at http://localhost:7492. See the Self-Hosting guide for details.

  1. Clone the repository

    Terminal window
    git clone https://github.com/Pizzaface/PizzaPi.git
    cd PizzaPi
  2. Start the server stack

    Terminal window
    docker compose -f docker/compose.yml up -d
    ServicePortDescription
    redis6379Session event buffer
    server7492Relay API + Web UI

    The web UI is now live at http://localhost:7492.

  3. Open the web UI and sign in

    • Open http://localhost:7492 in your browser
    • Sign in or create an account from the Sign up tab
  4. Install the CLI & connect

    Terminal window
    npm install -g @pizzapi/pizza
    pizzapi setup
    # Relay server URL: http://localhost:7492
    # Email: you@example.com
    # Password: your-password
  5. Start your first session

    Terminal window
    cd /your/project
    pizzapi

    Then open http://localhost:7492 to watch it live.


Once your session is running, open the web UI. Here’s what to expect:

Live Token Stream

The agent’s response streams in token-by-token — just like watching it type. Markdown is rendered inline with syntax highlighting.

Tool Calls & Results

Every file read, bash command, and edit appears as a collapsible tool call with full input/output. You can see exactly what the agent is doing.

File Diffs

File edits show as syntax-highlighted diffs so you can review changes at a glance before the agent moves on.

Todo List

If the agent creates a task plan, it appears as a live-updating todo list in the sidebar — items move from pending → in progress → done.

You can type messages in the chat input at the bottom to ask questions, give corrections, or steer the agent — all without touching the terminal.


Run these checks after setup to make sure everything is working:

CheckCommand / ActionExpected
CLI workspizzapi --versionPrints PizzaPi CLI version
Relay configuredpizzapi setupShows saved API key + relay URL
Web hub healthy (if self-hosted)pizzapi web statusDocker services listed
Session visible in UIStart pizzapi sessionSession appears in browser
Models availablepizzapi modelsAt least one model listed (after /login)

ProblemFix
pizzapi web fails immediatelyMake sure Docker Desktop/Engine is running and docker compose version works.
Setup says Could not register with the relay serverVerify URL, email/password, and that relay is reachable in browser.
Setup asks for a name but account already existsLeave Your name blank for existing accounts.
Session not visible in web UIRe-run pizzapi setup, then start a fresh session.
No model available in sessionRun /login, then /model inside the session.

Skip relay setup entirely — If you run pizzapi without any saved config, the setup wizard asks “Skip setup and continue without relay?” Type y to start with no relay for this run only. To skip permanently, see Standalone Mode.

Re-run setup — Run pizzapi setup at any time to re-configure or switch relay servers.

Full reset — To wipe all PizzaPi state and start fresh:

Terminal window
rm -rf ~/.pizzapi
pizzapi setup

See the Installation guide for partial reset options.


Installation Details

Platform-specific notes, binary downloads, and alternative install methods.

Installation guide →

CLI Reference

All pizzapi commands and flags — setup, session management, config overrides.

CLI reference →

Configuration

Customize config files, environment variables, model defaults, and relay settings.

Configuration →

Runner Daemon

Run a headless daemon that lets you spawn and manage agent sessions entirely from the web UI.

Runner daemon →

Self-Hosting Guide

Production Docker setup with HTTPS, custom domains, backups, and scaling.

Self-hosting →