pzza.works

PzzaCode

Berke (pzzaworks)Berke (pzzaworks)

September 5th, 2026

PzzaCode is a grid terminal manager for agentic coding. It puts every terminal and every AI coding agent you are running, on every machine you own, into one grid: each tile is a live terminal, either a plain shell or an agent like Claude Code or Codex, and each tile is backed by a tmux session on the device it belongs to. Closing the app only detaches. The sessions keep running on the device and come back exactly where they were when the app opens again.

It ships as a native desktop app built on Tauri and as a browser app. Both talk to a small agent installed on each device, so a laptop can drive a mini PC, a home server and a cloud box from the same window, with every tile badged by the host it runs on.

How it works

A device is any machine with tmux and the PzzaCode agent on it. The agent is a small Node service, installed by a single script or from the in-app setup wizard over SSH, that registers itself as a background service so it survives reboots. It owns the pseudo-terminals, attaches them to tmux, watches listening ports, keeps the saved grid layout and streams everything to the app over WebSockets. A watchdog respawns it if it ever exits.


Because tmux owns the sessions, the app is only a window onto them. It can be closed, updated or crash and nothing that is running on any device is lost. The same agent also backs the MCP server, so coding agents get the same view of sessions and ports that the grid shows.

Core Features

Grid of terminals

Every session is visible and usable at once. Tiles can be dragged to reorder, maximized to take over the workspace, or resized to give a busy agent more room. Focus mode spotlights one tile and dims the rest, and a single click greys out everything but the tile that matters right now. Terminals render with xterm.js on WebGL, so a dozen busy agents scroll without the interface stuttering.

Workspaces

Browser-style tabs group sessions into workspaces. Each workspace keeps its own grid layout, icon and color, so a client project, a side project and an infra box never share a screen. Sessions can be moved between workspaces, and maximize is scoped to the workspace you are in.

Files and code

A tile can also be a file browser for the device it runs on, with a built-in code editor and syntax highlighting for most languages. Read a config, patch a file an agent just wrote or check a log without leaving the cockpit.

Keyboard first

⌥1-9 switches workspaces, ⌃1-9 jumps straight to a tile, and ⌘V pastes an image from the clipboard directly into the focused agent, even when that agent is running on a remote device over SSH. Copy and paste work across remote clients too, with terminal clipboard writes mirrored to the OS clipboard.

Per-device agents

A lightweight agent runs on every device and serves that machine's terminals, listening ports and saved state. The setup wizard installs it on any host reachable over SSH and can auto-discover devices from your SSH config, so adding a new device is a dialog, not a runbook. The agent went through a full security audit: it is locked to the app, clipboard access is opt-in and capped, and control sequences are stripped before anything reaches your clipboard.

Auto port forwarding

Ports that open on a device are mirrored to the machine running PzzaCode automatically. A dev server started inside a tile on the mini PC is reachable from the laptop without touching an SSH flag. PzzaCode owns its SSH multiplexing in-app, counts ports that are already reachable, and heals the forwarding itself if a tunnel drops.

Remote desktop

When a terminal is not enough, a device's Linux desktop opens over an SSH-tunneled RDP session from the same device list. The wizard provisions RDP on the device for you, including a headless port, and the connection recovers on its own if it breaks.

MCP

PzzaCode ships an MCP server and can install its config into Claude, Codex, Zed, Cursor and Windsurf with one click. Agents get tools to list, create and kill sessions, inspect windows and ports, toggle forwarding, read and write files on a device, scan a device, check usage and spend, and even install the agent on a new host.

AreaTools
Sessionslist_sessions, create_session, kill_session, list_windows, session_path
Devicesscan_device, ssh_hosts, install_agent, doctor, capabilities
Portslist_ports, forwarding_status, set_forwarding
Fileslist_dir, read_file, write_file
Accountslist_accounts, get_usage, get_spend
Setupmcp_config, mcp_install

Live agent usage and spend

The 5-hour and weekly usage windows for Claude and Codex, their reset countdowns and the active plan are read from the accounts on each device, straight from the same OAuth usage the official apps show, and cached so the panel is instant. Alongside that, PzzaCode scans the local transcripts and estimates spend per model, warmed in the background so you always know what a session is costing before an agent hits its limit.

Multi-account

A session can be launched bound to a specific Claude or Codex account, which makes it possible to spread work across accounts, keep personal and client accounts apart, or fall back to a second account when the first one is out of budget.

Signed auto-updates

The desktop app updates itself from signed GitHub releases. Install it once and every later version arrives through the in-app updater, notarized for macOS.

Architecture

The desktop shell is Tauri 2 with a Rust core that owns local pseudo-terminals through portable-pty. The interface is React 18 with TypeScript and Vite, rendering terminals with xterm.js on WebGL and keeping state in zustand. Each device runs a Node agent built on node-pty and ws, split into focused modules for tmux, ports, forwarding, files, accounts, usage, spend and installation. The MCP server is a thin client of that same agent, so there is one source of truth for what is running.

Tech Stack

LayerTechnology
DesktopTauri 2, Rust, portable-pty
FrontendReact 18, TypeScript, Vite 6
Terminalsxterm.js (WebGL) + tmux
Device agentNode, node-pty, ws
EditorCodeMirror
Statezustand
AnimationFramer Motion
UpdatesTauri updater with signed releases

Open Source

PzzaCode is MIT licensed. The desktop app auto-updates from GitHub releases, and the agent installs on any device with Node 18+ and tmux.

Keep reading

  • PzzaCode: Every Terminal, Every Agent, One Grid

    How a mini PC under the desk turned into PzzaCode, a grid terminal manager for running many coding agents across machines from one grid, and why it is open source.

  • Jev: What a System One Model Is, and What It Isn't

    TypeSafe shipped Jev, a model that returns typed decisions with calibrated probabilities instead of generating text. Here is what a System One model actually is, where it fits, and which of the claims are worth checking before you wire it into production.

  • Memory Stopped Being Retrieval

    I said in 2025 that retrieval strategy beats storage and that similarity alone would not carry it. A year later the benchmarks and the tooling agree, and they put a number on what it actually takes.