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.

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 Protect concurrent edits with 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.

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.