The desk at work

One desk. Every session.

Every screenshot on this page is the real console, run against an example repository: four sessions on three machines, across Claude Code, Codex and OpenCode, and one person deciding.

The desk. The board on the left groups cards into the lanes Checkout, Accounts, Launch and Off-track, each with its progress. Needs you on the right holds one question, and below it the owner and the brain discuss which session keeps the payment client.
Tap to open at full size.
  1. Lanes are goals

    Each lane says what it is for and how far it has come. It is not a queue of tickets.

  2. Cards carry their work

    A card shows where the unit stands, its pull request, the session holding it and how far through the gates it is.

  3. The column is yours

    Needs you holds only the decisions that belong to you. The brain is a message away.

Different tools. One undertaking.

Each session joins with one command and stays reachable. Fleet shows which session is on which machine and account, and what each one is doing. When two reach for the same code, the brain gives each a distinct job.

Fleet: four units on three machines. Codex on the workstation is on payment retries. Two Claude Code sessions on the laptop hold saved cards and the one-step checkout design. An OpenCode session in the cloud waits on sign-in regression cases.
Fleet, grouped by machine and account.
The owner asks the brain which of two sessions keeps the payment client. The brain answers: Codex keeps it, Claude reviews it instead of writing a second one, and the regression cases keep moving on GLM.
Two sessions on one client. Each now has its own job.

Judged by a model that wrote none of it.

Before work is accepted, steering commissions a review from another vendor’s model. It reads a sandboxed clone, against your project’s own reviewer brief. The verdict goes on the pull request as a comment and as a status check your branch rules can require.

2mw2lt review, round 1/5: do not ship

blocking src/cards/restore.ts:41: A saved card is restored on a new device before the session is verified again.

2mw2lt review, round 2/5: ship it

Ran the card restore tests and read the restore path against the session check. The fix holds on a fresh device and on a returning one.

minor src/cards/restore.ts:58: The retry limit is a bare number. Name it beside the timeout so the two change together.

Provider
deepseek
Thinking
high
Persona
.claude/agents/code-reviewer.md
Duration
3m 12s

An example in the format the gate posts. The pull request it judged is the saved-cards card on the board above.

Only the calls that are yours.

A session does not interrupt you with what it can settle. A decision that is yours arrives with its context, the options and a recommendation, and one press answers it. On your phone, Needs you comes first.

A session asks: ship saved cards to every customer, or behind the beta list first? The context notes that review passed on the second round. Two options follow, Beta list first marked recommended, with a field for another answer.
A question, with the options and what each one costs.
The desk on a phone: Needs you with the waiting question at the top, the board below it, and a button that opens the brain.
The same desk, at phone width.

Work outlives the session.

Before a session compacts, hands over or leaves, it writes a checkpoint on the pull request. The next session starts from it, on whichever tool or machine picks the work up.

example-repo-b83f2d51 · pull request #409

Checkpoint

State
Review passed on round 2. Waiting on the owner: every customer, or the beta list first.
Next
On the answer, set the flag and merge. Name the retry limit as the review asked.
Agreed
Restoring a card always waits for the session check, on every device.

Start with one repository. Keep the sessions you run.