Skiff
多代理编码终端:让 Claude Code、Codex 等代理并行运行、互相派活并汇总结果。
- Star 数
- ★ 19
- 最近更新
- 1 天前
- License
- MIT
- 主语言
- Rust
- FA 评分
- 40/100 · 缺口较多
30 秒速览
- 运行形态
- 可在哪里用
- 兼容但需适配Codex · Claude Code
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 同时维护多个仓库的开发者,希望在 Linux 或 macOS 上把一个项目的多个 worktree 会话并排运行。
- 不适合
- Windows 用户:官方仅提供 Linux 与 macOS 版本
- 不想另行安装 Claude Code、Codex 等编码代理的用户
- 只想要单个代理窗口、不需要多会话管理的轻度使用者
这个 Agent 能做什么,适合哪些场景?
Skiff 是一个面向编码代理的终端桌面应用,运行于 Linux 与 macOS,基于 Tauri v2、Rust 与 xterm.js 构建。它把每个代理会话放在独立窗格中,支持跨项目与 Git worktree 同时运行多个 Claude Code、Codex 等代理,窗格会用铃声提示审批请求、用标记提示被忽略的完成回合。后台守护进程 skiffd 通过 Unix 套接字持有全部 PTY,因此关闭窗口后代理仍继续运行。内置的 Skiff 代理(Admiral)可以向其他会话和项目 Skipper 派发任务,并把结果收集到 ledger 中;任何代理都可以通过随应用安装的 skiff 命令行做同样的事。Skiff 自身不编辑文件,也不向代理安装 hook 或插件,只是启动你已有的工具,所有设置集中在一个 projects.toml 文件里。
Skiff 启动后会连接一个 Host(默认是本机的“This Mac”,也可在设置中添加 SSH Host),并通过 Host API 读取项目、Git、文件、图像、ledger、Skipper 与代理信息。用户添加 Git 仓库或普通文件夹作为项目,在其中创建 worktree,并在每个 worktree 里启动代理或 shell 会话;相关会话可以放进命名的 group 并排展示。每个会话由 skiffd 通过 PTY 承载,状态由屏幕内容和终端前台程序推断,而不是通过钩子。点击顶部 Admiral 行可启动 Skiff 代理,它把任务分派给其他会话与 Skipper,并在 Ledger 面板追踪任务进度;Ctrl+Shift+A 打开 Mission control,以图的形式展示整个代理层级。skiff 命令让 shell 或代理直接驱动会话、分组以及 ledger 与 watcher。打开文件时,Skiff 调用 Settings › Open with 中配置的编辑器、diff 工具或文件管理器。
- 同时维护多个仓库的开发者,希望在 Linux 或 macOS 上把一个项目的多个 worktree 会话并排运行。
- 需要让 Claude Code 与 Codex 在同一任务上分工,由一个上层代理统一派活并汇总结果的团队。
- 希望关闭窗口后代理继续跑、稍后回来查看审批请求与完成情况的重度用户。
- 想把代理会话通过 SSH 放在服务器上运行、在本地界面统一操作的工程师。
- 需要把多代理流程脚本化、从 shell 或代理中用 skiff 命令驱动会话与 ledger 的自动化场景。
如何安装或部署这个 Agent?
从 GitHub Releases 页面下载最新版本,官方提供以下安装包:
- Linux(x86_64):.deb、.rpm 或 AppImage
- macOS(Apple Silicon):.dmg,已签名并公证
从源码构建并打包当前系统的安装包:
cd apps/desktop && pnpm install && pnpm tauri dev
cd apps/desktop && pnpm bundle # packages for this OS, with skiffd insideskiff 命令行随应用一起安装,无需单独获取。
如何使用这个 Agent?
- 启动应用,添加一个项目(Git 仓库或普通文件夹)。
- 在项目中创建 worktree,并在每个 worktree 中启动代理或 shell 会话。
- 把相关会话放进命名分组,并排排列。
- 点击顶部 Admiral 行启动 Skiff 代理,由它派发任务并在 Ledger 中跟踪。
- 按 F1 查看全部快捷键,按 Ctrl+Shift+A 打开 Mission control。
从 shell 或代理中驱动会话:
skiff daemon reload修改 skiffd 源码后需执行上述命令重载运行中的守护进程;开发时可用环境变量指向独立的测试守护进程:
SKIFF_SOCKET=/tmp/skiff-test.sock skiff daemon reload这个 Agent 有哪些优点和局限?
- 会话由守护进程 skiffd 持有,关闭窗口后代理继续运行,打开窗口即可接续。
- 通过屏幕与终端前台程序推断会话状态,不向代理安装 hook 或插件,不侵入现有配置。
- 支持 Claude Code、Codex 等多种编码代理,并可在同一项目的多个 Git worktree 间并行运行。
- Admiral 代理与 Skipper 层级配合 ledger,把多代理协作变成可追踪的任务流,且任何代理都能用 skiff 命令参与。
- 全部设置集中在单个 projects.toml 文件,便于版本管理。
- 提供签名的 macOS 安装包与 Linux 三种包格式,安装路径明确。
- 仅支持 Linux(x86_64)与 macOS(Apple Silicon),没有 Windows 版本。
- 本身不包含模型能力,需要用户自备 Claude Code、Codex 等代理及其账号与用量。
- 从源码构建需要 pnpm、Tauri 与 Rust 工具链,构建门槛高于直接下载。
- 重载守护进程需要手动执行 skiff daemon reload;守护进程接口变化时还要同步提升版本号与 HANDOVER 元数据。
- 大量功能细节分散在 GitHub Wiki 中,README 本身只覆盖主干流程。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Skiff 当前 | 40 · 缺口较多 | 桌面应用免费 + 模型费 | ★ 19 | 1 天前 | Rust | Codex · Claude Code |
| OpenTeams | 56 · 缺口较多 | 桌面应用免费 + 模型费 | ★ 581 | 23 天前 | TypeScript | Codex · Claude Code |
| Parallel Code | 53 · 缺口较多 | 桌面应用免费 + 模型费 | ★ 1.1k | 1 天前 | TypeScript | Codex · Claude Code |
| Alethe 多智能体编码工作台 | 65 · 存在缺口 | 桌面应用免费 + 模型费 | ★ 1.1k | 3 天前 | TypeScript | Codex · Claude Code |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
证据显示 Skiff 明确声明不安装 hooks/plugins、不编辑文件、设置集中在 projects.toml,且发布流程对 macOS 签名公证、服务器包用 minisign 签名,属于正向的最小权限与供应链姿态。但仓库本身是一个可运行任意编码代理的终端,代理可互相派发任务并执行命令,README 未说明权限边界、审批策略或敏感数据(终端内容、凭据)如何处理;测试中甚至出现 --dangerously-skip-permissions 与 --yolo 这类跳过审批的开关,却无对应风险说明。回滚方面仅有 daemon reload 与版本号提升的提示,缺少对代理副作用的撤销机制。因此各项仅给 1,敏感数据处理因无任何证据给 0。
README 与 Cargo.toml 结构一致,CI 工作流覆盖 host 边界、TS 类型检查与多组 cargo 测试,说明有一定自洽性;但依赖可用性仅靠 Cargo 版本约束与 vendor 补丁,未给出锁定或审计证据,失败信息在源码中不可见。故均给 1。
README 清楚描述目标用户(并行使用 Claude Code/Codex 的开发者)、场景(多项目、worktree、分组、Admiral 派发)与能力边界(只管会话、不编辑文件、不装钩子),这部分给 2。但触发精度(何时派发、何时需审批、代理间任务如何界定)缺乏细节,仅给 1;环境适配明确 Linux/macOS 与 SSH Host,给 2。
README 有清晰目录结构、安装步骤、开发命令与 wiki 链接,信息架构与安装说明给 2;许可证为完整 MIT 文本给 3;版本号在 Cargo.toml 与发布流程中体现,给 2。但命名稳定性、示例/FAQ、已知限制仅有零散提及,各给 1;维护责任因发布者未经验证、无 CONTRIBUTING/SECURITY 等文件,给 1。
产品定位清晰,输出可用性(会话、ledger、Mission control)有描述但无实际产物示例;边际价值与成本收益依赖用户已有代理工具链,README 未量化收益或资源开销,故均给 1。
README 的声明(不装钩子、签名发布、CI 测试)可在工作流与 Cargo 配置中部分交叉印证,但多数功能声明仅来自 README 自身,缺少独立来源;事实与推断的分离在文档中不明显。故均给 1。
- 源码中未见:敏感信息处理使用专用、低权限、可随时吊销的 API 密钥,不要复用生产凭据,也不要让密钥出现在日志里。
- 该终端可运行任意编码代理并允许代理互相派发任务,README 未说明权限边界与审批策略;测试中出现 --dangerously-skip-permissions 与 --yolo 等跳过审批的开关,需谨慎评估。
- 发布者身份未经验证,维护责任与更新路径不明确,建议在采用前核实来源。
- 依赖通过 vendor 补丁替换上游 crate,缺少锁定与审计证据,供应链风险需自行评估。
- 缺少敏感数据处理(终端内容、凭据)的说明,也未提供代理副作用的回滚机制。