skiff
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 6 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in apps/desktop/scripts/appimage-repack.sh
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
The multi-agent coding terminal. Run Claude Code, Codex and other agents in parallel on Linux and macOS. They send each other tasks and report back.
The multi-agent coding terminal.
Run Claude Code, Codex and other agents in parallel. They send each other tasks and report back.
Skiff is a terminal app for coding agents, on Linux and macOS. You code with Claude Code,
Codex and other agents in its panes, many at once, across projects and Git worktrees.
Each pane shows what its agent needs: a bell when it asks for approval, a flag when it
finished a turn out of sight. Admiral, the Skiff agent, hands tasks to your other agents
and to project Skippers, and collects their results in a ledger. Any agent can do the
same with the skiff command.
Philosophy
Skiff manages sessions. The apps you already have do everything else. Skiff does not
edit files: it opens them in the editor, diff tool or file manager you set in
Settings › Open with.
Sessions outlive the window. skiffd, a daemon, owns every terminal. Close the window
and the agents keep running.
Skiff stays out of your agents' setup. It installs no hooks or plugins. It reads a
session's state from its screen and from the program in front of the terminal. All
settings live in one file, projects.toml.
Install
Download the latest release:
- Linux (x86_64):
.deb,.rpmor AppImage - macOS (Apple Silicon):
.dmg, signed and notarized
The skiff command ships with the app. It drives sessions from a shell or from an agent.
See the CLI page.
Start
- 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, the whole agent hierarchy as a graph. The wiki has the
details: Skiff agent,
Open with,
skiffd.
Layout
crates/skiff-host-api Host contract types (no I/O)
crates/skiff-core session model, wire protocol, projects.toml config, git, themes
crates/skiffd daemon: owns every PTY, serves clients over a Unix socket
crates/skiff-host Host data plane: projects, Git, files, images, ledger and Skipper over the Host API
crates/skiff-client async client for the socket; Skiff agent setup shared by the app and the CLI
crates/skiff-cli the `skiff` command: sessions, groups, the Skiff agent's ledger and watcher
apps/desktop Tauri v2 app, vanilla TypeScript + xterm.js
src-tauri Rust side: config, git, open with, the skiffd connection, menus
src/app state, actions, keyboard, startup connections
src/ui DOM builders, dialogs, menus
src/workspace session tree, fleets, layouts, files, project actions
src/terminal xterm runtime, panes, search, clipboard, font size
src/appearance themes, colors, icons, settings
src/i18n UI words: t() and tn(), catalogs en.ts (source), es.ts and zh.ts
src/platform wire types, IPC bytes, file actions
src/diagnostics latency traces and memory counts
src/styles styles by owner, imported in cascade order
Development
Every window has one selected Host. Sessions, projects, Git, files, images, ledger,
Skipper and agents come from that Host through the Host API.
This Mac is the local Host. Add an SSH Host in Settings › Hosts to work with a
server through the same surfaces. The app keeps only client-owned settings, window
state, known Hosts and local Open with applications.
cd apps/desktop && pnpm install && pnpm tauri dev
CARGO_BUILD_JOBS=8 cargo test -p CRATE TEST_NAME
cd apps/desktop && pnpm bundle # packages for this OS, with skiffd inside
During a task, run only the tests for the code you changed. See
AGENTS.md. The Glossary
names the parts of the screen and the session tree.
A rebuild does not replace the running daemon. Run skiff daemon reload aftercargo build -p skiffd. When the daemon changes, raise the skiffd version incrates/skiffd/Cargo.toml and crates/skiff-core/Cargo.toml. When the reload handover
metadata changes, raise HANDOVER in crates/skiffd/src/session/reload.rs. SetSKIFF_SOCKET to another path for a test daemon with its own state. See
skiffd › Development.
A v* tag builds every package in CI and attaches them to a draft release.
License
MIT
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found
