Kasetto
用一份可版本控制的配置同步多种 AI 编程代理环境。
- Star 数
- ★ 203
- 最近更新
- 4 天前
- License
- NOASSERTION
- 主语言
- Rust
- FA 评分
- 70/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code
- 费用
- 免费,无需付费服务
- 上手难度
- 中 · 需要几步配置
- 开始前需要
- 典型场景
- 平台团队用共享 kasetto.yaml 和 kasetto.lock 为新工程师复现相同的 Claude Code、Codex 与 Cursor 配置。
- 不适合
- 需要图形化环境管理界面的团队
- 只想临时安装一个技能、不需要配置与锁文件的用户
- 希望在 Pi 中使用原生 MCP 的用户
- 源码审查
- 70/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
Kasetto 是一个用 Rust 编写的命令行环境管理器,负责在多个 AI 编程代理之间分发技能、命令、MCP 配置和指令文件。用户通过 kasetto.yaml 声明来源、版本、目标代理及资源名称,再由 kst sync 拉取内容并转换到各代理的原生目录和格式。它使用 kasetto.lock 记录确切安装结果,普通同步遵循锁文件,--update 更新版本,--locked 可在 CI 中阻止未锁定变更。项目可从 GitHub、GitLab、Bitbucket、Codeberg、Gitea 及自托管实例读取公开或私有仓库,并支持本地、全局和远程配置。部署边界是一台 macOS、Linux 或 Windows 主机上的静态 CLI 二进制文件;它不是托管服务,也不运行模型。
Kasetto 按优先级读取 $KASETTO_CONFIG、当前目录的 kasetto.yaml、全局 config.yaml 中的 source,或全局 kasetto.yaml。kst init 创建配置,kst add 和 kst remove 修改来源并同步或清理资源,kst lock 解析来源并生成 kasetto.lock,kst sync 将 skills、commands、mcps 和 instructions 安装到目标代理目录。同步过程会对内容做哈希并比较锁文件,只处理发生变化的资源;聚合指令文件会以托管区块方式合并。配置可以通过 extends 组合,并能同时面向 Claude Code、Cursor、Codex、Windsurf、Copilot、Gemini CLI 等多个代理。对于 ${kst_...} 占位符,它依次从环境变量、credentials.yaml 或所选外部密钥管理器取得值,再写入代理设置;解析后的秘密不会进入锁文件。kst list 展示已安装资源,kst doctor 检查版本、路径、最近同步状态和损坏的技能,kst clean 删除指定作用域内由 Kasetto 跟踪的资源。
- 平台团队用共享 kasetto.yaml 和 kasetto.lock 为新工程师复现相同的 Claude Code、Codex 与 Cursor 配置。
- 同时使用多种编程代理的开发者,通过一次 kst sync 分发同一套技能、命令和指令。
- 企业团队从私有 GitHub、GitLab 或自托管代码库发布内部技能包,并用现有访问令牌完成认证。
- CI 维护者使用 kst sync --locked 检查环境是否严格符合已提交的锁文件。
- 需要共享 MCP 配置但不愿提交令牌的团队,使用 ${kst_...} 从 Vault、1Password 或云密钥服务注入秘密。
- 组织、团队和项目分别维护配置,再通过 extends 组合成分层的代理环境。
如何安装或部署这个 Agent?
macOS 或 Linux 可使用独立安装脚本:
curl -fsSL kasetto.dev/install | shWindows 可运行:
powershell -ExecutionPolicy Bypass -c "irm kasetto.dev/install.ps1 | iex"也可以通过 Homebrew 安装:
brew tap pivoshenko/tap
brew trust pivoshenko/tap
brew install kasettoWindows 的 Scoop 安装方式为:
scoop bucket add kasetto https://github.com/pivoshenko/scoop-bucket
scoop install kasetto已具备 Rust/Cargo 环境时也可安装 crate:
cargo install kasetto公共仓库无需文档所述的额外凭据。访问私有仓库时,需要对应主机的环境变量令牌,例如 GITHUB_TOKEN、GITLAB_TOKEN、BITBUCKET_TOKEN 或 GITEA_TOKEN。
如何使用这个 Agent?
在项目目录创建初始配置:
kst init添加资源来源并立即同步全部技能:
kst add https://github.com/anthropics/skills也可以只选择指定资源:
kst add https://github.com/example/repo --skill find --mcp github --command review随后执行同步并查看结果:
kst sync
kst list
kst doctor团队配置也可以直接从 HTTPS 地址同步:
kst sync --config https://example.com/team-skills.yaml建议将 kasetto.yaml 与 kasetto.lock 一起提交。需要更新移动引用时运行:
kst sync --updateCI 中可强制使用现有锁文件:
kst sync --locked这个 Agent 有哪些优点和局限?
- 一份 YAML 可以统一声明技能、命令、MCP 和指令,并转换到多个代理的原生格式与目录。
- kasetto.lock 区分可复现同步、显式更新和 CI 锁定检查,适合团队版本控制。
- 支持多个 Git 托管平台、私有仓库和自托管实例,而不局限于单一代理生态。
- 秘密值可来自环境、凭据文件或多种现有密钥管理器,并且不会写入 kasetto.lock。
- 提供 macOS、Linux 和 Windows 静态二进制文件,并支持 JSON 输出和真实退出码。
- 工作流完全基于 CLI 和 YAML;来源没有记录图形化配置或审阅界面。
- 首次采用需要维护 kasetto.yaml 和 kasetto.lock,并理解本地、全局、远程配置及 extends 的优先级。
- Pi 没有原生 MCP 支持,因此为 Pi 同步时会跳过 MCP 来源。
- 秘密轮换后,普通 sync 不会更新已安装条目,必须显式执行 kst sync --update。
- 仓库元数据将许可证标为 NOASSERTION,虽然 README 徽章指向 MIT 与 Apache-2.0;采用前应核对实际许可证文件。
这个 Agent 与同类方案有什么区别?
项目将自身与 Vercel Skills 和 Claude Plugins 对比:README 将前者描述为从精选目录安装技能,将后者描述为提供运行时集成;Kasetto 主打的是可版本控制的声明式配置、锁文件,以及跨项目、机器和多个代理的可复现同步。该对比来自项目自身的定位,来源未提供独立基准测试。
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| Kasetto 当前 | 70 · 存在缺口 | 命令行工具免费 | ★ 203 | 4 天前 | Rust | Codex · Claude Code |
| Mantishack(Mantis AI) | 62 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 504 | 2 个月前 | Rust | Codex |
| Agent Desktop | 85 · 表现良好 | 命令行工具免费 | ★ 1.7k | 2 天前 | Rust | — |
| Browser4 智能浏览器自动化 | 47 · 缺口较多 | 命令行工具免费 + 模型费 | ★ 1.1k | 今天 | Kotlin | OpenAI API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
CI 明确使用只读 contents 权限,Rust 禁止 unsafe,发布物生成 SHA-256;README 也解释了远程配置、凭据来源、密钥注入位置、锁文件及会修改或清理的代理目录。扣分在于未提供运行时代码来核实路径约束、下载内容验证和秘密脱敏;add 会立即同步,clean、remove、self uninstall 等破坏性操作是否逐项确认、备份或可恢复并不明确。依赖使用宽版本范围,GitHub Actions 以版本标签而非提交哈希固定。作者、仓库和安全联系人清楚,但发布者身份仍未经企业注册表验证。
README、Cargo 元数据和 CI/发布工作流对名称、版本、二进制、平台及用途的描述高度一致。CI 声明执行格式检查、lint、测试和构建,多平台发布路径也完整;但未提供测试源码、Cargo.lock、安装脚本或外部秘密管理器探测逻辑,无法静态确认依赖始终可用。仅明确了非零退出码、JSON 输出、doctor 和缺失秘密失败,具体诊断消息及失败恢复信息证据不足。
文档覆盖个人、项目、团队、企业、CI、私有仓库和多代理场景,并列出大量代理预设、手动 destination、局部或全局配置、extends、平台安装方式及多种秘密后端。配置查找顺序、命令触发方式和锁定/更新语义十分明确。扣分主要是能力边界只部分说明:Pi 的 MCP 例外和缺失秘密行为有记录,但不同代理对命令、指令和 MCP 转换的完整兼容矩阵及冲突边界未在所给文件中展示。
README 结构清晰,安装、入门、命令、配置、秘密、代理和企业认证均有示例;Cargo 包元数据、双许可证文件和安全报告渠道齐备。发布工作流自动更新版本、锁文件、CHANGELOG、制品和包管理器。扣分在于没有提供实际 CHANGELOG、FAQ、完整限制清单或维护治理文件;kasetto 与 kst 双名称及已弃用 plain 别名虽有解释,仍增加命名面。维护责任可由作者和安全邮箱推断,但未说明备援维护者、响应升级路径或长期治理。
表格、YAML/JSON 示例、命令输出模式、锁文件流程、诊断命令和跨平台代理映射使预期产物可直接使用;声明的单一配置、多代理同步和秘密占位符相对逐工具手工配置具有明确增量价值。扣分在于速度、零漂移、完整转换以及与替代方案的优势主要是 README 声明,所给源码与基准不足以核实;curl-to-shell、外部 CLI 和多后端集成也带来供应链与运维成本,未见量化权衡。
版本、许可证、作者、依赖、CI 权限和发布流程可直接追溯到 Cargo、许可证及工作流,多个文件之间总体相互印证。扣分在于核心同步、合并、哈希差异、秘密处理、路径安全和错误行为缺少实现源码与测试内容,许多产品主张只能追溯到 README;替代方案、性能及兼容性主张虽通常以产品描述呈现,但事实、推断与实测结果未被系统标注区分。
- 本评估仅依据所给静态文件,未执行二进制、安装脚本、测试或网络操作。
- 在采用前审查实际源码、Cargo.lock 与安装脚本,并验证远程内容是否按提交或校验和固定以及是否防止路径穿越。
- 在隔离环境中确认 add、sync、remove、clean、self update 和 self uninstall 的精确写入范围、确认机制、备份与恢复行为。
- 验证秘密不会出现在日志、JSON 输出、临时文件或错误消息中,并检查各外部秘密管理器的命令调用与权限边界。
- curl-to-shell、PowerShell 远程执行以及未按提交哈希固定的 CI Actions 应纳入供应链风险审查。