yardsort

Settings & harnesses

Open with the Settings button at the bottom of the left panel, or Ctrl+Shift+, / ⌘,.

Settings are stored in a plain TOML file you can read, back up and edit:

SystemLocation
Linux~/.config/dev.yardsort.app/settings.toml
macOS~/Library/Application Support/dev.yardsort.app/settings.toml
Windows%APPDATA%\dev.yardsort.app\settings.toml

If the file cannot be parsed, Yardsort says so, runs on defaults, and keeps your file as settings.toml.unreadable instead of overwriting it.

Harnesses

A harness is a coding agent that runs in a terminal. To Yardsort a harness is pure configuration — a command and some argument templates — so any agent can be added without waiting for a new release.

Harness settings

Built in: Claude Code, Codex, Grok, OpenCode. The dot next to each shows whether its command was found on your PATH.

Fields

FieldMeaning
LabelThe name shown in the app.
CommandThe program to run. It is looked up on the PATH of your login shell (so tools installed by mise, nvm, Homebrew or cargo are found), and the resolved location is shown underneath.
Always argsPassed on every launch — the place for flags you always want, such as a permission mode.
Model argsUsed when a model is chosen, e.g. --model {model}.
Effort argsUsed when an effort level is chosen, e.g. --effort {effort}.
Session id argsUsed when Yardsort assigns the conversation's id, e.g. --session-id {session_id}.
Prompt argsHow the first message is passed, e.g. {prompt} or --prompt {prompt}.
Resume argsReplaces the last two groups to continue a conversation, e.g. --resume {session_id}.
Fork argsSame, to fork one, e.g. --resume {session_id} --fork-session --session-id {new_session_id}.
Models / EffortsSuggestions for the composer's pickers. Models accept free text regardless. Leave efforts empty to hide that picker.
Prompt transportargv passes the prompt as an argument — simple and reliable. stdin starts the agent first and pastes the prompt once it has been quiet for the given time — for agents with no prompt argument. Very long prompts switch to stdin automatically.
Session idassigned: Yardsort chooses the id, so any session can be resumed. latest in folder: the agent chooses, and only its most recent conversation in a workspace can be continued.
EnabledDisabled harnesses stay configured but are not offered.

How arguments work

  • Arguments are split like a shell would split them (quotes group words), but no shell is involved. Each argument reaches the program exactly as written, and a placeholder's value is never split again — a prompt full of quotes, spaces and newlines is still one argument.
  • Placeholders: {prompt} {model} {effort} {session_id} {new_session_id}.
  • A group whose placeholder has no value is dropped whole: choose no model and no dangling --model is passed.

What will run at the bottom shows the exact command lines — start, resume and fork — for sample values, updating as you type. Test launch starts the harness, unsaved changes included, in a scratch terminal so you can see it come up.

Restoring defaults

For a built-in harness only your changes are saved, so improved defaults in a newer Yardsort still reach every field you left alone. Restore defaults discards your changes.

Adding your own harness

Add custom harness, give it an id, and fill in at least the command. If the agent can take a first message, set Prompt args (or the stdin transport); fill Resume args / Fork args if it can continue conversations. Custom harnesses appear in the composer and the tab bar like the built-in ones. Delete removes one.

Workspaces

SettingMeaning
Worktree folderNew workspaces are created in <folder>/<project>/<workspace>. Default: ~/yardsort. Must be an absolute path; keep it short on Windows, where deep paths hit the 260-character limit.
Branch prefixNew branches are named <prefix>/<workspace>. Default ys. Empty means no prefix.

Both apply to workspaces created from now on; existing ones stay where they are.

General

SettingMeaning
Editor commandWhat Edit ↗ runs — code, cursor, zed, … It is given the workspace folder and then the file. Empty tries cursor, code, zed, windsurf, subl and idea in turn.
Check for updates automaticallyLooks for a newer release shortly after starting and once a day. On by default. Check now looks immediately and shows the version you are running. See Updates.
Notify me when an agent finishesDesktop notifications when a busy agent goes quiet while you are in another window. On by default.

Environment variables

For testing and unusual setups:

VariableEffect
YARDSORT_DATA_DIRKeep the database and settings.toml in this folder — a throwaway profile.
YARDSORT_WORKTREE_ROOTOverride the worktree folder.