Griddler

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

Four repos, four agents, one window.

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.

https / loopback onlyallowed
camera, mic, geolocationdenied
downloads, popupsblocked
node integrationoff
agent may driveone origin
Origin change revokes consent. No exceptions, no prompt to click through.

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.

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.

+2⚡per completed agent turn
+1⚡per active minute
1☘per shipped PR
d20every roll, in main

Everything else

The rest of the window

Built in Griddler, by the agents running in it.

macOS · Windows · Linux