A Desk Setup for Running Two Agents at Once

A useful two-agent desk setup begins with isolation and visibility, not a pile of controls. Separate worktrees, named terminals and a small task ledger matter before any FutureDevice input or ambient signal is added.

What breaks when you go from one agent to two?

Attention becomes the shared resource. It is easy to answer the wrong prompt, merge the wrong branch or let two sessions edit one working directory. Give each task its own Git worktree, branch, terminal target and validation command before starting the second agent.

Shared services can still collide across worktrees. Assign distinct ports, databases or test fixtures where necessary, and record them beside each task.

How do you split screen space between them?

Use one full-width terminal window per agent when diffs and logs need room, then switch through stable tmux or Zellij names. A side-by-side layout works when both prompts remain readable. Keep the project, host, worktree and branch visible in every window.

A dedicated secondary display can hold both status views, but the primary review surface should still show complete diffs and command output. Small text that cannot be read is not awareness.

Which inputs deserve to be physical?

Navigation is the safest category: focus agent one, focus agent two, show the session tree or return to the previous window. Map uncommon hardware outputs to direct software actions, test each in a harmless environment and preserve conventional keyboard routes.

Leave approval, Enter, destructive tmux commands and blind send-keys off physical controls. A one-press answer saves little time and removes the pause that catches context mistakes.

How do you know which agent needs you first?

Use explicit tool notifications or a manual task ledger, then apply a small priority rule. A verified failure can outrank a permission request, which outranks ordinary completion. Terminal activity alone cannot reveal whether an agent needs a person.

The KM16 Macropad offers sixteen VIA-remappable keycaps and three knobs for navigation, but hardware capacity is not supervision capacity. Start with two window keys, review every prompt visibly and remove task mappings when their worktrees close. Keep a short ledger with task, worktree, branch, terminal target, current state and next human decision. Update it before switching away. Set a strict work-in-progress limit: if both agents need careful review, do not start a third job or answer either from memory. Run each branch's checks from its own worktree and compare it with the intended base before merging. Close the terminal, mapping and worktree together so stale labels cannot point to a new task.

Back to blog