Skip to main content

Terminal tools we like

Saggar runs whatever you'd run in any other terminal. These are the tools we keep reaching for when several agents work at once. None of them are required, and none of them know about Saggar.

For more tools, along with skills, prompts, schedules, and hooks shared by other users, see the community resources list.

Worktrunk​

Worktrunk makes Git worktrees as easy as branches. Starting a worktree and an agent in it is one command, and so is cleaning up.

brew install worktrunk && wt config shell install
wt switch --create -x claude fix-login # new branch, new worktree, start Claude
wt list # every worktree and its state
wt remove # remove this worktree and its branch

Saggar's In a new worktree… covers the common case from the new-session menu. Reach for Worktrunk when you'd rather stay on the keyboard, or when an agent should create its own worktree. See Isolate bigger work in worktrees.

lazygit​

lazygit is a TUI for Git. Staging hunks, reading a branch's history, and untangling a rebase are all faster than typing the commands.

brew install lazygit

Open it in a second pane beside an agent's session to review what the agent changed, one hunk at a time, before it commits.

delta​

delta is a pager for Git diffs, with syntax highlighting, line numbers, and word-level changes. Reviewing a worktree's diff after an agent has finished is easier when you can see exactly what moved.

brew install git-delta
git config --global core.pager delta
git config --global interactive.diffFilter "delta --color-only"
git config --global delta.navigate true

With navigate on, n and N jump between files in a long diff. delta can also render lazygit's diffs; see its documentation for the setup.

CLIP​

CLIP registers the CLI tools a project uses and generates a skill for each one, so agents learn the same tools you use instead of an MCP server wrapping them. It runs nothing itself: agents call the original executable with its existing login.

brew install mcclowes/clip/clip
clip registry add gh --purpose "Read issues and open pull requests"
clip sync

clip sync writes the skill under .agents/skills/. Commit it, and every agent in the repository picks it up. Give agents CLI tools explains why we prefer this approach.

turnstile​

turnstile is a machine-wide gate for builds and tests. It sits underneath the shell, so it works the same for every agent and for you, with no per-project setup. Heavy commands like swift test, cargo build, and npm run build wait for a free slot and enough spare memory, then run in place with the same output and exit code. Quick commands pass straight through.

brew install mcclowes/turnstile/turnstile
turnstile init

A waiting command prints why it's waiting, so an agent doesn't mistake the queue for a hang. Commands you type go ahead of agents', and turnstile status shows what's running and queued.

Agent Task Queue​

Agent Task Queue stops several agents running builds and test suites at the same time and freezing your machine. It's an MCP server that queues expensive commands and runs them one at a time, handing long runs back to the agent as a task it can check on, so a queued build doesn't hit the agent's shell timeout.

claude mcp add agent-task-queue -- uvx agent-task-queue@latest

Its README covers other agents and named queues for work that can run side by side. uv tool install agent-task-queue also installs a tq command, so your own builds join the same queue. See Memory and CPU for why this matters.

Your .zshrc​

Every terminal Saggar starts is a normal login shell, so your .zshrc reaches you and every agent. Aliases, PATH entries, and environment variables you set there apply in every session, whichever provider is running.

alias lg="lazygit"
export PATH="$HOME/.local/bin:$PATH"
export OPENAI_API_KEY="$(security find-generic-password -s openai -w)"

Keep secrets out of the file itself. Load them from the macOS Keychain, as above, or a password manager's CLI, so a copied dotfile or a pasted transcript doesn't leak them. See Environment variables for what Saggar adds to each shell.