The agents you know, in a real terminal.
Skipper does not wrap the agents in a chat interface of its own. Each session runs the vendor's command-line tool in a terminal, so Claude Code, Codex, and OpenCode look and behave the way they do in your own terminal, with their slash commands, skills, and project settings.
Ghostty inside
The terminal is Ghostty's engine, libghostty, embedded in the app. Text renders on the GPU, and keyboard input, mouse reporting, and colors work the way terminal programs expect.
Skipper's terminal host parses the same output with libghostty's terminal core, so the screen Skipper reads to detect an agent's state is the screen you see.
The CLIs come with the app
Skipper ships signed copies of Claude Code, Codex, and OpenCode, along with Git, the GitHub CLI, Git LFS, and ripgrep. Each release pins the versions it was tested with, and Skipper turns off the CLIs' own self-updaters, so an agent's interface only changes when Skipper updates. A new agent release arrives in the next Skipper update.
Pi and Antigravity run from their own installations when you have them.
A drawer for everything else
Under the agent's terminal is the terminal drawer (⌃`). It holds the
repository's scripts from skipper.json and any shell tabs you open, all
in the session's worktree. Run the run script with ⌘R while the agent
keeps working above it.
Press ⌘. to interrupt the agent, ⌃⌘↑ and ⌃⌘↓ to move between the agent and the drawer, and ⌘+ or ⌘- to change the text size.
One process for each session's terminals
Every session's terminals run in a small Rust server of their own called Hull, which Skipper talks to over gRPC on a Unix socket. Each terminal keeps an 8 MiB replay buffer, so a terminal view that reconnects redraws its whole screen. If a session's Hull stops unexpectedly, Skipper starts it again.
Pick up where you left off
Quitting Skipper stops the agents. When you reopen it, Skipper restores
your windows and tabs, and each session resumes its agent's
conversation in the same worktree, with claude --resume, codex resume, or opencode --session, as the account that started it.
Remote control
Turn on remote control in the composer's session settings, and Skipper launches Claude Code and Codex with the vendors' remote control enabled. Anthropic and OpenAI serve the remote side.