Run several agents on one repository.
A session in Skipper is one tab. It holds an agent running in a terminal, the git worktree and branch the agent works in, and the pull requests that come out of it. Open as many sessions as you need, on one repository or several, and switch between them from the sidebar.
A worktree for every session
When you start a session, Skipper fetches the repository's default branch and creates a git worktree and a branch from it. The agent works in that directory, so several agents can change the same repository at once without overwriting each other, and your own checkout stays as it was.
Each session also gets its own temporary directory and its own block of
100 network ports, exported as SKIPPER_WORKSPACE_PORT, so two
sessions can run the same dev server without a port conflict.
Everything the agent does is an ordinary git branch. Open it in your editor, run its tests, or push it yourself.
Start a session
Press ⌘T and describe the change. The composer sets up everything the agent starts with.
- Repository. Any project you have added, grouped by GitHub organization. Add a local folder with ⇧⌘N, or pick one of your GitHub repositories on the Home tab and Skipper clones it.
- Agent and account. Claude Code, Codex, or OpenCode, plus Pi and Antigravity when they are installed, and the account the agent runs as.
- Model and effort. The agent's models and reasoning effort, with Codex's fast mode.
- Permissions. The agent's own approval modes, such as Claude Code's Accept Edits and Auto or Codex's Auto review. Press ⇧⇥ to cycle through them.
- Plan mode. Claude Code and OpenCode can plan before they change anything.
Type @ to mention files, directories, other sessions, or MCP servers,
and / for the agent's skills and commands. Drag in files, paste
images, video, or long text, or hold ⌃⌥M to dictate. Dictation runs on
your Mac.
Comment on screenshots and recordings
Open an attached image, video, or text file to comment on a point, a region, a moment, or a range of lines. Add to Composer turns each comment into prompt text that points the agent at the file and the exact place or time you mean.
Scripts for each repository
Add a skipper.json file to a repository to give its sessions the
commands they need. The setup script runs when a session's worktree is
created, so dependencies are ready before the agent starts. The other
scripts appear in the Run menu (⌘R) and run in the terminal drawer under
the agent.
{
"scripts": {
"setup": "npm install",
"build": "npm run build",
"lint": "npm run lint",
"run": "npm run dev"
}
}
Duplicate and archive
Duplicate Session (⌘D) starts a new session from another session's current state, uncommitted changes included, in a worktree of its own. Use it to try a second approach without losing the first.
Archive Session (⇧⌘A) removes the session's worktree and local branch when the work is done. Skipper records the branch's last commit, so you can unarchive the session later. If the worktree has uncommitted changes or commits that have not landed, Skipper stops and tells you instead of archiving. Archived sessions are deleted after 30 days.
Names for every session
Skipper names a session from its first prompt with Apple Intelligence, on your Mac. Rename it yourself, or ask Skipper to rename it from the conversation so far. Every session also has a codename, such as grainy-tilefish, which names its worktree directory and its branch.