yardsort

v0.3.1 · Linux · macOS · Windows · GPL-3.0

Run AI coding agents in parallel — each on its own track.

A desktop app for Linux, macOS and Windows that gives every task its own git worktree and its own terminal, running the coding agent of your choice.

Download
$ brew install --cask joaoh82/yardsort/yardsort

All downloads · needs git and one agent CLI that already works in your terminal

Yardsort: projects and workspaces on the left, an agent's terminal in the middle, its changes and a diff on the right

Install

Download the latest build from the Releases page. You also need git and at least one agent CLI that already works in your terminal. Yardsort does not bundle agents and never sees their credentials.

Linux

AppImage: chmod +x Yardsort_*.AppImage and run it. The AppImage updates itself; .deb and .rpm are told when a new version exists. Add it to your app menu.

yardsort-bin on the AUR — on its way. Until then the AppImage works on Arch.

macOS

.dmguniversal · signed and notarized
$ brew install --cask joaoh82/yardsort/yardsort

Open the .dmg and drag Yardsort to Applications. The app updates itself.

Windows

Not code-signed yet, so SmartScreen warns: choose More info → Run anyway. Needs Git for Windows.

winget install joaoh82.Yardsort — awaiting Microsoft's review.

Prefer to build it yourself? git clone https://github.com/joaoh82/yardsort && cd yardsort && just setup && just build — see CONTRIBUTING.md.

A sorting yard is where rail cars are sorted onto parallel tracks and later joined back into one train.

That is the job: fan work out onto parallel branches, then merge it back.

01 · Workspaces

Every task gets its own worktree

You describe a task, pick an agent, and press Enter. Yardsort creates a branch and a git worktree for it — a separate folder — and starts the agent there. Start another, and another. They cannot disturb each other, or your own checkout.

Workspaces are ordinary worktrees and branches. Inspect or undo anything with git. Worktrees made elsewhere are picked up automatically.

The composer: describe a task, pick an agent, model, effort and branch

02 · Terminal

The terminal is the truth

Agents run in a real PTY with their own interface. Whatever they can do in your terminal, they can do here — and Yardsort never parses their output.

Status dots show which agents are working and which are waiting; a desktop notification tells you when one finishes while you are elsewhere. A shell tab next to the agent is one Ctrl+Shift+T away.

An agent's own terminal interface running inside Yardsort

03 · Changes

See what happened before anything merges

A live list of changed files, character-level diffs, a file tree, and one click into your editor. Reviewing is read-only: Yardsort shows you changes; it does not stage, commit or discard them.

When the work is done, it is an ordinary git branch — review it, push it, open a pull request.

The changes panel: modified files with line counts, and a diff of cli.js

04 · Sessions

Pick up where you left off

Quit mid-task, come back, press Resume — the conversation is intact. Fork one to try a different approach without losing the first.

Sessions that were running when Yardsort closed are labelled interrupted; they resume like any other.

Previous sessions with Resume and Fork

05 · Harnesses

Any terminal agent

Claude Code, Codex, Grok and OpenCode out of the box; add any other with a few lines of configuration — no plugin, no release to wait for. To Yardsort a harness is a command and some argument templates, kept in a plain TOML file you can read, back up and edit.

Private by construction
No account, no telemetry, no keys. Agents use their own logins; Yardsort just starts them. Its one network request is a check for new versions, which you can switch off.
Careful with your work
Deleting or archiving a workspace always keeps the branch, and never discards uncommitted changes without a second, explicit confirmation.
Keeps itself current
Signed in-app updates on macOS, Windows and the Linux AppImage — one click, and your agents' conversations resume afterwards.
Light
Built with Tauri and Rust: a few megabytes, not a bundled browser.
Harness settings: label, command and argument templates for Claude Code

Free software

GPL-3.0. You may use, study, share and change it, and versions you distribute must stay free under the same terms.

Early, and moving fast. The core loop works on all three platforms and is covered by CI on each. Expect rough edges, and please report them.

joaoh82/yardsort

Docs

Changelog

Unreleased
Install with Homebrew on macOS. Linux.
0.3.1
A changelog (this file). First release delivered through the in-app updater.
0.3.0
In-app updates. First-run check.
0.2.0
Renamed from Switchyard to Yardsort. An AUR package, yardsort-bin, is prepared and will be published by the release workflow.
Full changelog