Skiff

A small workspace for coding agents.

Skiff keeps agent sessions organized across projects and Git worktrees.

Editing and previews stay in the apps you already use.

Latest release · Linux x86_64 · macOS Apple Silicon · MIT license
Skiff mascot: a small boat with a robot at the helm

v1.5.0Mission control. See sessions across projects, search for a session and return to its pane.

Skiff v1.5.1 on Linux: the Skiff agent, Skipper, at the top of the side panel, and the four agent sessions it started in one group
v1.5.1Skipper orchestrating. The Skiff agent started four agent sessions in one group and follows their work.
Skiff on Linux: the redesigned sidebar with fleets, projects, worktrees, groups and sessions in one tree
v1.4.0The sidebar redesign. Fleets, projects, worktrees, groups and sessions share one tree.
Skiff on Linux: the session theme picker, which gives one session its own theme in place of the project theme
v1.0.1Give one session its own theme. It replaces the project theme for that pane only.

All screenshots and videos, by version

How it works

Add a project (a Git repository), make worktrees in it, and start agent or shell sessions in each worktree. Sessions sit side by side in named groups. Close the window and the agents keep running. New to this? Read how to run coding agents in parallel.

Sessions outlive the window

A daemon, skiffd, owns every terminal. Close the window and the agents keep working. Open it again and each terminal shows its last screen. See keeping agent sessions running.

See what needs a look

Each session shows when it waits for you, works or finishes. A finished session gets an unread flag until you go to it.

Projects and worktrees

Sessions sit under the project and worktree they run in. If an agent goes to work in another worktree, the sidebar shows it there too. Read the worktree guide.

Groups and layouts

Put related sessions in a named group and split them side by side. Drag a pane by its header to move it.

Themes as location cues

Give each project, group and session its own terminal theme. One look tells you where you are.

Changes, not an editor

Each worktree lists its changed files. Select one to see its diff. A double-click opens the file in the app you pick under Settings › Open with.

The Skiff agent

The Skiff agent is optional. Turn it on in Settings › Skiff agent, and one agent session, Skipper by default, runs in its own folder, ~/skiff-agent. It sends tasks to sessions in your projects, records them in a SQLite ledger and reports the results to you. skiff watch tells it when a session ends a turn, exits or restarts. Its row sits at the top of the side panel (Ctrl+Shift+L), and skiff skipper attaches to it from any terminal, an SSH login included. Give it a theme, and while its pane is on screen the side panel and top bar take that theme too. See the Skiff agent page on the wiki.

Agents

Skiff comes with these agents in Settings. Add any other command line, or start a plain shell. See how Skiff works with Claude Code, Codex, Gemini, Grok and OpenCode.

claudecodexgeminigrokopencodeshell+ your own

Small on purpose

Skiff has no plugins, no automations and no hooks into agent configs. It writes nothing into an agent's setup. Settings live in one file, projects.toml. The keyboard and the mouse do the same things, and F1 shows every key.

Install

Skiff ships as .deb, .rpm and AppImage for Linux x86_64, and as a signed .dmg for macOS on Apple Silicon. Go to the downloads.