Skiff
A multi-agent coding terminal that runs Claude Code, Codex and friends in parallel, passing tasks and reporting back.
- Source repo
- solutionscay/skiff
- Stars
- ★ 19
- Last updated
- 1d ago
- License
- MIT
- Primary language
- Rust
- FA score
- 40/100 · Major gaps
At a glance
- How it runs
- Works with
- Portable with changesCodex · Claude Code
- Cost
- Free software; you pay for model usage
- Setup effort
- Low · running in minutes
- You'll need
- Typical use
- Developers juggling several repositories who want multiple worktree sessions side by side on Linux or macOS.
- Not a fit if
- Windows users: only Linux and macOS builds are published
- People who don't already run coding agents like Claude Code or Codex
- Light users who want one agent pane, not multi-session management
- Source review
- 40/100 · Major gaps 1 safety controls not found
What does this agent do, and when should you use it?
Skiff is a terminal desktop app for coding agents on Linux and macOS, built with Tauri v2, Rust and xterm.js. Each agent session lives in its own pane, so you can run several Claude Code, Codex and other agents at once across projects and Git worktrees; a pane rings a bell when an agent asks for approval and flags a turn that finished out of sight. A daemon, skiffd, owns every PTY over a Unix socket, so sessions outlive the window. The built-in Skiff agent (Admiral) hands tasks to your sessions and project Skippers and collects results in a ledger, and any agent can do the same through the bundled skiff command. Skiff does not edit files and installs no hooks or plugins into your agents; it launches the tools you already use, and all settings live in a single projects.toml.
Each window connects to one Host — 'This Mac' by default, or an SSH Host added in Settings › Hosts — and pulls projects, Git, files, images, ledger, Skipper and agents through the Host API. You add a Git repository or plain folder as a project, create worktrees inside it, and start agent or shell sessions in each worktree; related sessions can be arranged in named groups. skiffd hosts each session's PTY, and Skiff derives session state from the screen and the program in front of the terminal rather than from hooks. Clicking the top Admiral row starts the Skiff agent, which dispatches tasks to sessions and Skippers and tracks them in the Ledger panel; Ctrl+Shift+A opens Mission control, a graph of the whole agent hierarchy. The skiff CLI drives sessions, groups, and the Skiff agent's ledger and watcher from a shell or from an agent. Opening a file hands it to the editor, diff tool or file manager configured under Settings › Open with.
- Developers juggling several repositories who want multiple worktree sessions side by side on Linux or macOS.
- Teams splitting one task between Claude Code and Codex under a lead agent that assigns work and gathers results.
- Heavy agent users who close the window and expect long-running sessions to keep going, then review approvals and completions later.
- Engineers who run agents over SSH on a server while driving them from a local interface.
- Automation work that scripts multi-agent flows by driving sessions and the ledger with the skiff command.
How do you install or deploy this agent?
Download the latest release from GitHub:
- Linux (x86_64): .deb, .rpm or AppImage
- macOS (Apple Silicon): .dmg, signed and notarized
To build and package for the current OS from source:
cd apps/desktop && pnpm install && pnpm tauri dev
cd apps/desktop && pnpm bundle # packages for this OS, with skiffd insideThe skiff command ships with the app; nothing extra to install.
How do you use this agent?
- Add a project: a Git repository or a plain folder.
- Make worktrees in it, and start agent or shell sessions in each one.
- Put related sessions side by side in a named group.
- Click the top row, Admiral, to start the Skiff agent; it hands tasks to your sessions and tracks them in a ledger.
- Press F1 for every key; press Ctrl+Shift+A for Mission control.
Drive sessions from a shell or from an agent with the CLI:
skiff daemon reloadRun that after cargo build -p skiffd to replace a running daemon, and point at a separate test daemon with:
SKIFF_SOCKET=/tmp/skiff-test.sock skiff daemon reloadWhat are this agent's strengths and limitations?
- skiffd owns every PTY, so agents keep running after you close the window and pick up where they left off.
- Session state is read from the screen and the foreground program, so no hooks or plugins are installed into your agents.
- Runs several coding agents (Claude Code, Codex and others) in parallel across projects and Git worktrees.
- The Admiral/Skipper hierarchy plus a ledger turns multi-agent work into traceable tasks that any agent can join via the skiff CLI.
- All settings live in one projects.toml file, which is easy to version and review.
- Clearly documented install paths: signed/notarized macOS .dmg and three Linux package formats.
- Linux (x86_64) and macOS (Apple Silicon) only; no Windows build is published.
- It ships no model of its own — you still need Claude Code, Codex or similar agents with their own accounts and billing.
- Building from source needs pnpm, Tauri and the Rust toolchain, heavier than downloading a package.
- Daemon updates are manual: run skiff daemon reload after rebuilding, and bump the skiffd version and HANDOVER metadata when interfaces change.
- Much of the detail lives in the GitHub wiki; the README covers only the main path.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Skiff This agent | 40 · Major gaps | Desktop appFree + model costs | ★ 19 | 1d ago | Rust | Codex · Claude Code |
| OpenTeams | 56 · Major gaps | Desktop appFree + model costs | ★ 581 | 23d ago | TypeScript | Codex · Claude Code |
| Parallel Code | 53 · Major gaps | Desktop appFree + model costs | ★ 1.1k | 1d ago | TypeScript | Codex · Claude Code |
| Alethe — Multi-Agent Coding Workspace | 65 · Some gaps | Desktop appFree + model costs | ★ 1.1k | 3d ago | TypeScript | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
Evidence shows Skiff explicitly states it installs no hooks/plugins, does not edit files, keeps settings in projects.toml, and the release pipeline signs/notarizes macOS builds and minisign-signs server bundles — a positive least-privilege and supply-chain posture. However, the repository is a terminal that runs arbitrary coding agents which can dispatch tasks to each other and execute commands; the README does not define permission boundaries, approval policy, or how sensitive data (terminal contents, credentials) is handled. Tests even reference --dangerously-skip-permissions and --yolo approval-skipping flags without risk documentation. Rollback is limited to daemon reload and version bumps, with no mechanism to undo agent side effects. Each scores 1; sensitive data handling scores 0 for lack of any evidence.
README and Cargo.toml are structurally consistent, and CI workflows cover host boundary checks, TS type checking, and multiple cargo test groups, indicating some self-consistency; dependency availability relies only on Cargo version constraints and vendored patches with no lockfile or audit evidence, and failure messages are not visible in source. All score 1.
README clearly describes target users (developers running Claude Code/Codex in parallel), scenarios (multi-project, worktrees, groups, Admiral dispatch), and capability boundaries (manages sessions only, does not edit files, installs no hooks), scoring 2. Trigger precision (when to dispatch, when approval is needed, how inter-agent tasks are bounded) lacks detail, scoring 1; environment fit explicitly covers Linux/macOS and SSH Hosts, scoring 2.
README has clear directory structure, install steps, dev commands, and wiki links, scoring 2 for information architecture and install notes; the license is a full MIT text scoring 3; versioning appears in Cargo.toml and the release flow, scoring 2. Naming stability, examples/FAQ, and known limitations are only scattered, each scoring 1; maintenance responsibility scores 1 because the publisher is unverified and there is no CONTRIBUTING/SECURITY file.
The product positioning is clear, but output usability (sessions, ledger, Mission control) is described without concrete artifacts; marginal value and cost-benefit depend on the user's existing agent toolchain, and the README does not quantify benefits or resource overhead. All score 1.
README claims (no hooks, signed releases, CI tests) are partially corroborated by workflows and Cargo config, but most functional claims come only from the README itself with no independent sources; separation of fact and inference is not evident in the docs. All score 1.
- Not found in source: sensitive-data handlingUse dedicated, low-privilege, revocable API keys — never production credentials — and keep secrets out of logs.
- The terminal runs arbitrary coding agents and lets them dispatch tasks to each other; the README does not define permission boundaries or approval policy, and tests reference approval-skipping flags like --dangerously-skip-permissions and --yolo that warrant careful evaluation.
- Publisher identity is unverified, and maintenance responsibility and update path are unclear; verify provenance before adoption.
- Dependencies are replaced via vendored patches of upstream crates without lockfile or audit evidence; supply-chain risk must be assessed independently.
- There is no documentation of sensitive data handling (terminal contents, credentials) and no rollback mechanism for agent side effects.