Every agent you're running,
on one screen.
Griddler is a grid of live terminals for Claude Code and Codex. Instead of cycling through tabs to find the session that's blocked, every pane tells you where it stands — amber while the agent is working, green when it's waiting on you.
macOS · Windows · Linux — built in Griddler, by the agents running in it
The grid
The borders do the triage
A pane is amber while its agent is working and green the moment it needs a person. Nothing else in the window moves, so a glance from across the room is enough to tell you which one to walk to.
Green is not a guess about idleness. It's driven by Claude Code's own Stop and Notification hooks, and the only thing that clears it is you answering the question. Sessions without hook coverage — every Codex pane — fall back to a work-burst-then-quiet heuristic.
With the window unfocused, a pane turning green fires a desktop notification that jumps you straight to it.
Two agents. One grid.
Claude Code and Codex run in the same window — here they are on one repo at the same time, Claude on idempotency keys, Codex on webhook retries. Same launcher, same borders, same resume list. Neither knows the other is there.
The launcher asks the same four questions either way: agent, repo, model, reasoning effort — with options read live from each agent rather than hardcoded. Where they genuinely differ, the pane differs: Codex panes get a bypass-approvals toggle, Claude panes get the hooks that drive the green.
The repo list is built from both agents' history — ~/.claude/projects
and ~/.codex/sessions — so anywhere either one has ever run is one
dropdown away, and the header dropdowns always show the model the session is
actually using, mid-session switches included.
Cells don't have to be terminals
A cell can be a web page — the docs beside the repo, the dashboard beside the deploy. And a browser cell can be handed to an agent: flip agent may drive and it can read and click that page for you.
That switch is the whole security story, so it's built like one. HTTPS and loopback only, credential-bearing URLs refused, every permission request denied, downloads and popups blocked, node off and sandbox on — and consent is bound to one origin, revoked the instant the page navigates somewhere else.
The brain
A brain you can move, and a ring around it
One floating launcher for the things Griddler knows about you rather than about a repo. It floats over the grid instead of taking a slice of it — a launcher that costs you a cell is a bad trade — and it remembers where you put it.
🔍 Search greps every session in every repo both agents know, newest first, with agent filters. Click a result and it resumes there, in the first empty cell.
✅ Tasks is the shared hall list seen as what's yours — a worry with no owner is nagging, one with an owner is a task.
🧠 Knowledge answers "who knows about…?" from what your team has actually said, and shows provenance — where it was said and when — instead of a confidence score, because a number from an extraction makes a guess look like a fact.
📋 Directives are standing instructions that shape how a session starts, globally or in one directory. Someone else's directive sits in "offered" and changes nothing until you accept it: this feature puts words in an agent's mouth, so it is opt-in by construction.
🎵 Music is a YouTube Music transport in the ring, off by default. Until you switch it on there is no entry, no window, no request and no cookie — a feature you haven't turned on should cost nothing at all.
It writes your standup
Griddler sweeps every session on the machine — both agents, every login profile, every Codex silo — digests them, and merges the result into "Your Updates"-style bullets. You edit and paste.
It runs in the background, so you can close the dialog and keep working; the button badges while it works and a notification opens the finished draft. Sessions with nothing in them are dropped, and it reports the count it read against the count it found rather than silently truncating.
The draft survives an app restart, and a run that finishes while you're mid-edit will not overwrite what you typed.
Together
Co-op campaigns
A host picks a party and a mission. Everyone who joins gets one fresh pane bound to it, in its own grid tab, and the agents talk to each other through those panes.
-
Its own tab, not your workspace
A campaign never wedges a cell into the grid you're working in. It arrives as a tab you can leave — and Leave is always in reach.
-
Three volumes per pane
Muted hears nothing. Listening raises the needs-me light and types nothing. Volunteered lets campaign messages type themselves in and submit — and the pane header says which, always.
-
Review mode holds the queue
Messages wait for a human instead of landing. The badge counts what's held, and pausing the room is one click.
-
The Guild Room
Per-campaign quest XP, live presence and room chat, with teammates' mascots dancing across the floor. Paste a screenshot straight into the composer.
-
Cross-pane handoff
Send a cleaned response into another pane's input. Target panes highlight blue; the text is pasted, never submitted — you read it before it goes.
-
Mail and the board
Claude-mail bridged both ways, a team board, and a dock that turns an incoming ask into a card you answer instead of a modal that ambushes you.
The game
Your work is the fuel
Griddler keeps a running RPG — the Gridfall Chronicle — and the currency isn't invented. Momentum ⚡ is earned at two per completed agent turn and one per active minute, and it banks past the daily cap, so a deep work day keeps paying tomorrow.
Fixing real bugs is monster hunting. Every bug posts a WANTED monster named deterministically from its id — BUG-31427, the Null Wasp — and hunting it is an elite side-clash. The real payout is separate: Griddler watches the actual work item and pays out the moment it closes.
A completed guild quest pays every member of the party. Ship a PR, earn Inspiration ☘ — a reroll on a failed skill check, before the ambush locks.
Main owns the economy; the renderer only asks. Every payout and every die roll is computed from state the renderer can't touch, so a lying window buys nothing.
Everything else
The rest of the window
-
Workspaces and presets
Tabbed workspaces, each its own grid. Save a layout — agents, repos, sessions, models, efforts, titles — and restore the whole thing in one click.
-
Survives a restart
Layout auto-saves. A restart, a crash or a dev-reload rebuilds the grid and resumes every pane where it left off.
-
MCP manager
Every MCP server across both tools and all four scopes in one view, with in-sync status. Mirror a server into the other tool; every write backs up the file first.
-
Copy that survives the paste
Clean the TUI furniture out of a selection, or take the last response straight from the transcript as rich text — bold and lists intact in Teams and Outlook.
-
Post to a ticket
Draft a status comment from the session and edit it before it goes. Posting runs through the MCP tools you already have, so it reuses your auth — no extra tokens.
-
Post this, in your voice
Turn what a session did into a shareable draft. "Learn mine" samples your recent sessions and writes the style instruction from them — style only, never your topics.
-
Profiles and quota meters
Per-pane agent identity with env scrubs and cross-identity history, and live Claude/Codex quota meters showing which account is burning what.
-
Remote, and your phone
Start an embedded SSH server and attach from Termius or Blink — same live panes, mirrored both ways. A native iOS app rides the same bridge with real pane lists.
-
Doctor
Diagnostics that name the thing that's actually broken — a missing CLI on PATH, a hook that never installed — instead of failing silently for weeks.
-
Flight plan
Turn one task and a definition of done into a reviewed team: an orchestration lead, one write-capable implementer, read-only specialists, an independent judge. Build and Save never run anything.
-
Themes
Tokyo Night or a Catppuccin flavour, applied to live panes and the whole app chrome — not just the terminal.
-
All three platforms
macOS, Windows and Linux from one codebase — dmg, installer and AppImage. Windows gets ConPTY, Cascadia, a JS session search instead of grep, and hook installs migrated automatically. Not a port that mostly works.
Built in Griddler, by the agents running in it.
macOS · Windows · Linux