Day to day
Parallel agents
Running four agents at once only works if you know, without hunting, which one needs you right now. That is what the Grid, the board and the alerts are for.
The Grid
The Grid, at ⌘⇧M, shows several live terminals side by side. These are not thumbnails or screenshots: every pane is the real session, and you can type in any of them.
IngestionRetry with backoffworking
● Reading src/fila.js
● Editing src/retry.js +24 -3
Adding exponential backoff…
claudeworking⏱ 3m 9s
IngestionLoad testasking permission
Wants to run:
npm run carga -- --registros=10000
Allow? [y/n]
codexasking permission⏱ 9m 9s
Client portalOrders screenworking
✓ 42 modules compiled
✓ types ok
Writing Lista.tsx
codexworking⏱ 14m 9s
Client portalAccessibility reviewturn finished
✔ 12 components reviewed
✔ contrast fixed in 3
Ready to review.
claudeturn finished⏱ 22m 9s
Delivery appPush notificationsidle
~/entregas ❯
geminiidle⏱ 1h 10m
IngestionAvoid duplicate recordsidle
~/ingestao ❯ npm test --silent
✔ saves each record once
✔ skips duplicates on retry
ℹ tests 3 · pass 3 · fail 0
zshidle
The tabs run along the top: one per project with a live session, plus the All tab. Each tab keeps its own layout and shows a summary of how many sessions are waiting, how many have finished and how many are still working.
To fill the Grid fast, use Add all. To empty it, Clear. A single session also goes in and out from the corner of its card in the sidebar, and pulling it out of the Grid ends nothing: the session stays alive.
Arranging the Grid
- Grid size. The picker at the top sets columns by rows as you move the mouse across the matrix. The ceiling is four by four, so sixteen panes.
- Swap places. Drag a pane onto another to swap them, or drop it on an empty cell to pin that position.
- Take more room. The handle in the corner of a pane stretches it across more cells, and a tooltip shows the size while you drag.
- Resize. The dividers between columns and rows are draggable.
- Maximize. From the pane button, by double clicking the header, or with ⌘⇧Enter.
- Layout groups. Save the current layout as a group and cycle through them with ⌥Q and ⌥W.
- Group by project. One grid per project, stacked, for when you mix repositories.
- Dim the rest. Sessions outside the focus lose brightness, as much as you choose.
Each pane header is configurable: you can show or hide the project, the name, the branch, the worktree marker, the context percentage and the state. To move between panes without the mouse, use ⌘ with the arrow keys.
What a session can be doing
| State | Color | What it means |
|---|---|---|
| Asking permission | Yellow, pulsing | The agent wants to use a tool and stopped until you answer. |
| Working | Green | The agent is in its turn. It also counts when the agent stopped but has a subagent running. |
| Turn finished | Cyan | It is done and the result is waiting for review. |
| Queued | Violet | The session was created behind another one and starts when the first finishes. |
| Idle | Gray | A free terminal, or an agent sitting still with nothing pending. |
These states come from the agent itself, not from guesswork: the moment it reports that it asked for permission, finished the turn or started using a tool, Deck reacts. Without those signals, the app falls back to what the terminal shows, which works fine for a plain shell.
Silence never becomes a waiting state. An agent thinking for three minutes is still working, and it does not show up as if it needed you.
How Deck gets your attention
The system alert is stingy on purpose. It only fires when three things are true at the same time: the signal came from the agent itself, the state is asking permission or turn finished, and the Deck window is not in focus. If you are already looking at the app, it does not interrupt.
- On macOS. A notification with a sound, a count on the Dock icon and the number on the menu bar icon.
- On Windows. A system notification, a badge with the count over the taskbar icon and the window flashing until you look.
- In the tray icon. The menu lists every session with its agent, its folder and what it wants.
Clicking the notification does more than open the app: it focuses the exact session that called. All of it is configurable in settings, including muting for a while, picking the sound and turning on a visual alert instead of an audible one.
Answering without opening the terminal
When the agent asks permission, the Allow and Deny buttons appear in the session footer. They talk straight to the agent and type nothing into the terminal.
With many sessions open, ⌘⇧O opens the list of everything waiting on you, across every project at once, with the same buttons. Each row shows the tool in use, how many subagents are running, task progress, context spent, cost and how long the turn has been going. Clicking jumps to the session.
How an alert clears
Turn finished clears itself once you have really seen it: the Deck window has to be in focus and that terminal has to be in view. A window in the background, a modal on top of it and a computer with nobody in front of it do not count as seen.
A permission request is the exception: it never clears for having been seen. It only goes away when you decide between allow and deny.
Cost and usage limits
The app footer adds up the estimated cost of every session and shows the usage limit on your agent account for the five hour and seven day windows, always by the worse of the two. It turns yellow from 70 percent on, red from 90 on, and says what time the window resets.
The usage and cost screen opens from the command palette and groups by day and by model, from the history already on your computer.
The cost is an estimate built from list prices, so you can spot a trend or an outlier. The bill that counts is the one from your agent provider.
The Work board
Once you pass a dozen sessions, the Grid stops fitting on screen and the Work board becomes the better place. It puts every session in one of four columns, by what it needs right now, and writes the reason on the card.
| Column | What lands there |
|---|---|
| Working | Agents in their turn, and queued sessions. |
| Needs attention | Asking permission, or waiting on you. |
| To review | Turn finished, and pull request reviews. |
| Idle | Nothing new, a free terminal, an ended session, a PR merged or closed. |
The columns are computed, so there is nothing to drag. The board search looks through sessions, branches, pull requests and tasks at the same time, and you can filter by project and by agent.
There is also the agent map, at ⌘⇧A, which shows the sessions and the subagents each one dispatched. The next step, isolating every task so they stop tripping over each other, is in Isolated tasks.