Skiff

Run coding agents in parallel.

An agent can spend many minutes on one task. While it works, you can start a second agent on something else, or a third that reviews what the first one wrote. This guide covers how to split the work so the agents don't trip over each other, and how to bring the results back.

Updated 2026-10-06

Pick tasks that don't overlap

Parallel agents work best on tasks that touch different parts of the code: a bug in the API and a layout fix in the UI, say. Two agents that both edit the same module will produce two branches that conflict when you merge them. If two tasks need the same files, run them one after the other.

Give each agent a clear finish line. "Make the login tests pass" ends. "Improve the login code" doesn't, and an agent left with an open-ended task keeps going.

One agent, one worktree

Don't run two agents in the same checkout. Each one sees the other's half-finished edits, and tests fail for reasons neither caused. Give each agent its own git worktree: a separate folder on its own branch, backed by the same repository. The worktree guide has the commands and the pitfalls.

Ways to run them

  1. Terminal tabs or windows. One agent per tab works for two or three agents. Past that, it gets hard to tell which tab is which and which one is waiting for you.
  2. A terminal multiplexer. tmux or Zellij puts several agents in panes of one window, and the sessions survive a closed terminal. You manage the layout and the worktrees yourself. See keeping agent sessions running.
  3. A workspace app. A desktop app built for agents groups the sessions by project and worktree and shows which one needs you. Skiff, below, is one.

Mix agents on purpose

Different agents catch different things. A common pattern is a writer and a reviewer: one agent, such as Claude Code, makes the change, and another, such as Codex, reviews the diff in the same worktree before you look at it. Since the reviewer only reads, both can work in one folder.

Know which one needs you

An agent that asks for approval stops until you answer, so a forgotten prompt costs the whole wait. With several agents running, watch for two moments: an agent asking for permission, and an agent finishing its turn. Agents differ in how they signal this. Some ring the terminal bell or change the window title, some show nothing outside their own screen.

Bring the work back

Review each branch on its own and merge them one at a time. Run the tests after each merge, not just at the end, so you know which branch broke them. If two branches conflict, the tasks overlapped. Merge one, then have the agent that owns the other rebase on top and fix the conflict.

Each session uses your plan's usage limits or API tokens, so parallel agents use them faster.

Parallel agents in Skiff

Skiff is a desktop app for Linux and macOS that runs coding agents side by side. Sessions sit under the project and worktree they work in, in named groups of up to four panes. A bell marks a session that waits for approval, and a flag marks one that finished while you were elsewhere. Skiff reads them from each agent's screen, without hooks into the agent.

With the skiff-cli skill, an agent can start the reviewer for you: "Open a Codex next to me and ask it to review the uncommitted changes. Tell me what it finds."