Every terminal, every agent, one grid

PzzaCode runs every terminal and AI coding agent in one grid. Free, open source, tmux-backed.

PzzaCode cockpit: Claude Code, a file manager, a shell and a dev server running side by side in one grid
Built for agentic coding
Claude CodeCodextmuxTauriMCPSSHRDPmacOSOpenCode

PzzaCode runs every terminal01, watches every agent02, and keeps every session alive03.

Main · grid

Claude Agent
Codex Agent
Dev Server
Infra Shell

01

Run everything in one grid

Every tile is a shell or a coding agent such as Claude Code or Codex. Drag to reorder, maximize or resize any tile.

Sessions · under investigation

#112CClaude Agent · building1,521high
#87CCodex Agent · refactoring340medium
#65DDev Server · :5173109low
Investigating · Medium priorityCKD

02

Watch every agent live

Live usage windows, reset countdowns and plans. See what every session is doing without tab-hopping.

tmux · persistent

7
8
9
10
11
12
13

03

Never lose a session

Sessions are backed by tmux on the device, so closing the app only detaches. Reopen and keep going.

“Closing the app just detaches. Everything is exactly where you left it.”

BerkeBerke(pzzaworks)

01

Know about every session before it drifts

PzzaCode keeps every terminal visible in one grid. Workspaces act like browser tabs with their own layout, icon and color, so backend, frontend, agents and infra each get a home.

Sessions & spaces

  • Grid of live terminals: drag to reorder, maximize or resize any tile
  • Every tile is a shell or a coding agent such as Claude Code or Codex
  • Sessions backed by tmux on the device, so closing the app only detaches
  • Workspaces as browser-style tabs with their own layout, icon and color
Claude⌃1Devbox
> cover auth routes with tests
⏺ I'll add tests for the auth routes.
⏺ Glob(src/auth/*.ts)
⎿ Found 4 files
⏺ Edit(routes.test.ts)
⎿ Updated with 18 additions
⏺ Bash(npm test)
⎿ 128 passed · 0 failed
✻ Baked for 41s · done 14:07
────────────────────────────
❯ add retry with backoff█
? for shortcuts
Codex⌃2Devbox
› refactor Grid.tsx for 4 tiles
• exploring src/grid.tsx
✓ read 212 lines
• apply_patch Grid.tsx
M Grid.tsx
✓ compiled in 3.1s
• exec npm test
✓ 6 passed
12.4k tokens used · esc to interrupt
────────────────────────────
› █
Shell⌃3Devbox
~/infra git:(main) ❯
$ git status -sb
## main...origin/main
M docker-compose.yml
?? deploy/coolify.md
$ ssh box-fra uptime
14:07 up 22 days, load 0.12
$ docker ps --format '{{.Names}}'
web-1 api-1 db-1
$ █
Dev Server⌃4Devbox
$ npm run dev
VITE v6.0.3 ready in 214 ms
➜ Local: http://localhost:5173/
➜ forwarded → :5173
hmr update /src/App.tsx
page reload /index.html
hmr update /src/Grid.tsx
$ █

02

Understand what is actually going on

It goes beyond tabs and windows. Focus and dim spotlights one terminal, per-device agents install over SSH from a setup wizard, and ports forward automatically to your machine.

Devices & ports

  • Focus and dim to spotlight one terminal and grey out the rest
  • Keyboard-first: switch workspaces, jump to tiles, paste images to agents over SSH
  • Per-device agents installed over SSH from a setup wizard
  • Automatic port forwarding from every device to your machine
Shell⌃1Devbox
~/infra git:(main) ❯
$ git status -sb
## main...origin/main
M docker-compose.yml
?? deploy/coolify.md
$ ssh box-fra uptime
14:07 up 22 days, load 0.12
$ docker ps --format '{{.Names}}'
web-1 api-1 db-1
$ █
Dev Server⌃2Devbox
$ npm run dev
VITE v6.0.3 ready in 214 ms
➜ Local: http://localhost:5173/
➜ forwarded → :5173
hmr update /src/App.tsx
page reload /index.html
hmr update /src/Grid.tsx
$ █
Claude⌃3Devbox
> cover auth routes with tests
⏺ I'll add tests for the auth routes.
⏺ Glob(src/auth/*.ts)
⎿ Found 4 files
⏺ Edit(routes.test.ts)
⎿ Updated with 18 additions
⏺ Bash(npm test)
⎿ 128 passed · 0 failed
✻ Baked for 41s · done 14:07
────────────────────────────
❯ add retry with backoff█
? for shortcuts
Codex⌃4Devbox
› refactor Grid.tsx for 4 tiles
• exploring src/grid.tsx
✓ read 212 lines
• apply_patch Grid.tsx
M Grid.tsx
✓ compiled in 3.1s
• exec npm test
✓ 6 passed
12.4k tokens used · esc to interrupt
────────────────────────────
› █

03

Ship with confidence, stay in control

Turn insight into action: keyboard-first jumps, image pastes to agents over SSH, and an MCP server exposing sessions and ports to every coding client. Closing the app just detaches - everything is exactly where you left it.

Built for speed & setups of any size

  • Multi-account Claude & Codex
  • SSH devices & RDP desktop
  • Automatic port forwarding
  • MCP server for every client
  • Keyboard-first navigation
  • Workspaces for every setup
Claude⌃1Devbox~/projects
> wire tmux sessions into the grid
⏺ I'll wire the tmux sessions into the grid,
starting with the session switch.
⏺ Read(src/session.ts)
⎿ Read 84 lines
⏺ Glob(src/*.test.ts)
⎿ Found 6 files
⏺ Edit(src/grid.ts)
⎿ Updated src/grid.ts with 6 additions and 1 removal
- const dev = useLocalShell(id);
+ const dev = useTmuxSession(id);
exposeOverMcp(dev, ports);
+ persistLayout(dev);
⏺ Edit(src/paste.ts)
⎿ Updated src/paste.ts with 3 additions
+ uploadImage(clipboard);
+ typePathForAgent(file);
return grid.mount(dev);
⏺ Bash(npm test)
⎿ 142 passed · 0 failed
⏺ Bash(npx tsc --noEmit)
⎿ Exit code 0
✻ Cooked for 3m 05s · done 14:07
────────────────────────────────────────────────────────────────
❯ █
? for shortcuts

Local-first

Yours by design.

Safe by default.

Read the docs

MIT licensed

Free and open source, forever. Your terminals stay yours.

Your machines only

Sessions live in tmux on your own hardware. No hosted agents, no lock-in.

Ship software that never stops

Download PzzaCode and put every terminal and agent into one grid.