A queue changes the job.
The classic IDE assumes one person is looking at one foreground task. Coding agents turn that foreground into a queue. Some sessions are working. One needs a decision. Another has a diff ready. The scarce resource is no longer a chat box. It is operator attention.
GitHub made active agent sessions part of its default dashboard beside issues and pull requests. The same dashboard can start Copilot work from an issue or pull request flow.[1] Offrun takes a local route. Its product page says it runs several agent command-line tools on a Mac, tracks which session needs attention, and puts each concurrent job in a Git worktree.[2]
A useful agent screen answers "what needs me?" before it answers "what can I start?"
Persistence is not coordination.
Mat Duggan's "Make tmux the OS" argues for work that is scrollable, persistent, detachable, and organized around tasks.[3] That is a strong shell for agent work. It still needs dispatch rules. A persistent session can preserve the wrong checkout, wait on a hidden question, or finish with nobody assigned to review and land the patch.
Put four facts in the fixed part of the interface: the outcome, the file boundary, the next human gate, and the landing owner. The transcript can scroll. Those facts should not.
A worktree is a file boundary.
Git worktrees let one repository have several working trees and check out more than one branch at a time.[4] That prevents two agents from editing the same working tree by accident. It does not create a security sandbox. Linked worktrees still belong to one repository. Services, credentials, caches, hooks, and other machine resources can remain shared.
Use a shared checkout for deliberate collaboration with one writer at a time. Use linked worktrees for related tasks that need separate file edits. Use separate repositories or stronger runtime boundaries when the work must not share repository or machine state.
Interrupt with a typed action.
A free-form message can mean several things. It can answer a question, steer the current turn, request a review, or stop the work. The interface should make that choice explicit. A status lamp that says WAITING is incomplete until it names the question and the action that will resume the session.
The dispatch packet below does not connect to an agent. It lets you rehearse the screen contract. Select a sample session, choose the operator action, and mark the fields your real system must supply.
Build the operator view first.
- List every active session with one outcome, one state, and one exact checkout.
- Separate working, needs-input, review-ready, stopped, and failed states. Do not collapse them into active and done.
- Route every human interruption as hold, answer, review, or stop.
- Attach one expected proof item to the next gate, such as a test command, diff, screenshot, or reproducer.
- Name the person who can merge, discard, or restart the work.
- Remove finished sessions only after their patch and cleanup state have a recorded owner.
The cockpit earns its keep when an operator can leave for an hour, return, and know which single line deserves attention first.