OSS Autopilot 是一个开源贡献管理工具,旨在帮助频繁参与开源项目的开发者跟踪和管理自己的 GitHub Pull Request(PR),避免 PR 因遗忘而停滞。它提供三种使用方式:Claude Code 插件、MCP 服务器和独立 CLI。
用途
如果你同时为多个项目贡献代码,PR 很容易在不知不觉中过期:维护者要求修改、变基后 CI 失败、分支出现冲突,而你可能两周后才注意到。OSS Autopilot 检查你在 GitHub 上的所有开放 PR,将其分类为“需要你处理”和“等待他人”,并针对需要你处理的 PR 提供辅助操作。
主要能力
- PR 分类:从 GitHub 获取你的开放 PR,分类为:CI 失败、请求更改、未回复的维护者评论、合并冲突、清单不完整、等待维护者。
- 辅助处理:对于需要你处理的 PR,代理会阅读讨论线程和 diff,然后起草回复或准备修复。你需逐条批准、编辑或丢弃草稿,未经批准不会推送或发布任何内容。
- 发现新 issue:
/oss-search(或oss-autopilot search)查找符合你配置的语言和标签的开放 issue,并对每个候选进行审查:是否已被认领、是否有链接的 PR、仓库是否接受外部贡献、维护者响应速度。搜索和审查由独立包oss-scout完成。 - 无人值守夜间检查:
/oss-overnight无人值守运行每日检查。对于有 CI 失败、冲突或请求更改的 PR,它在本地 git worktree 中准备修复分支并运行项目测试,将报告写入~/.oss-autopilot/reports/,下次/oss时显示。 - 本地仪表盘:
/oss-dashboard在http://localhost:3000打开本地 Web UI,按状态显示 PR、贡献图表,以及搁置或重新排序 PR 的按钮。仅绑定回环地址。 - 统计与徽章:
oss-autopilot stats打印合并 PR 数量;--markdown生成可分享报告,--badge生成 shields.io 端点 JSON。 - 跨机器同步(可选):状态可存储在秘密 GitHub gist 中,而非仅磁盘。秘密 gist 是未列出而非访问控制的,任何有 URL 的人都能读取。
使用方式
快速开始(Claude Code)
前置条件:Node.js 22 或更新版本;GitHub CLI 已安装并登录(gh auth login),或环境中设置 GITHUB_TOKEN;插件需要 Claude Code,以及首次运行时的 npm 和网络访问。CI 在 Ubuntu 和 macOS 上运行,Windows 未测试。
重启 Claude Code,然后运行 /setup-oss 进行设置,设置会询问你的 GitHub 用户名、关注的语言和标签、同时打开的 PR 数量。之后运行 /oss 检查。
首次运行说明:插件以源码形式发布,首次 /setup-oss 或 /oss 会在插件目录内安装依赖并构建 CLI,需要 npm(或 pnpm)和网络连接,耗时比后续运行长。
其他运行方式
- MCP 服务器:保存 GitHub 用户名一次,然后将服务器添加到 MCP 客户端配置。MCP 服务器暴露 30 个工具、6 个资源和 4 个提示。
@latest自动获取新版本;可固定版本(如@oss-autopilot/mcp@5.7.4)。 - CLI:每个命令接受
--json,返回{ success, data, error, timestamp },便于脚本化。API 参考:jcosta.tech/oss-autopilot。
每日检查流程
- CLI 从 GitHub 获取开放 PR 并分类。
- 你获得一个简短列表,需要你处理的 PR 优先,以及操作菜单。
- 选择一个操作。代理阅读线程和 diff,然后起草回复或准备修复。
- 你阅读草稿并批准、编辑或丢弃。未经批准不会推送或发布。
- 重复或停止。多数日子只需几分钟。
新手建议将 maxActivePRs 设为 3 到 5。
插件命令与代理
插件添加 9 个斜杠命令:/oss、/oss-search、/oss-overnight、/oss-dashboard、/oss-guidelines、/pr-ready、/plan-ready、/setup-oss、/oss-help。
插件还附带 8 个专用代理,由 Claude 调度。代理仅存在于 Claude Code 插件中;MCP 和 CLI 用户通过工具和命令获取相同底层数据。
如需更深入的推送前审查,可从 Claude Code 市场安装可选的 pr-review-toolkit 插件。/pr-ready 在存在时并行使用其审查器,否则回退到内置的 pre-commit-reviewer。
设置
设置位于 ~/.oss-autopilot/state.json 的 config 下。可通过 /setup-oss 或 CLI 更改。
架构
一个核心,三个前端:插件以 --json 调用 CLI;MCP 服务器导入相同函数;仪表盘由 CLI 提供。它们共享一个状态文件。逻辑是代码而非提示:PR 状态、CI 失败类别(你的 bug、fork 限制、认证门、不稳定基础设施)、陈旧度、仓库评分均在 TypeScript 中计算并测试。模型读取结构化 JSON,完成需要语言的部分:阅读审查线程、起草回复、提出修复。
不缓存 PR 信息。每次运行从 GitHub Search API 新鲜获取开放 PR,并补充 CI 状态、审查决定和冲突状态。本地状态保存配置、合并和关闭历史、每仓库评分、学习到的指南。
对 API 谨慎:基于 ETag 的 HTTP 缓存、速率限制退避、有界并发、GraphQL 批处理,使每日运行远在 GitHub 限制内。
来自 GitHub 的文本视为不可信。Issue 正文、评论和审查文本在代理看到前被围栏并标记。
安全与隐私
交互使用时,批准是按操作的。批准一个回复不会批准下一个。所有数据留在 ~/.oss-autopilot/(文件权限 0600,目录 0700)。无遥测。
无人值守运行使用工具允许列表和拒绝列表,阻止 git push、gh pr comment、gh api、npm publish 等命令,且不能提问。这阻止行为良好的模型写入 GitHub,但不是沙箱:运行使用你的凭据执行每个项目的测试套件。如果信任不足,可作为无推送凭据的独立 OS 用户运行。完整威胁模型见 commands/oss-overnight.md。
故障排除
- 从
doctor开始,检查令牌、CLI 包、状态文件和速率限制。 gh缺失或未登录。- 插件首次构建失败。
- PR 不显示:运行
/setup-oss确认 GitHub 用户名;仅跟踪你创作的 PR;检查excludeRepos、excludeOrgs和minStars。 - 更新:插件
/plugin update oss-autopilot;MCP 和 CLI 通过npx ...@latest无需操作;配置保留。 - 发现 bug?提交 issue 并附上
doctor --json输出。
适用场景
- 同时为多个开源项目贡献代码,需要跟踪多个 PR 状态的开发者。
- 希望自动发现符合自己技能和兴趣的新 issue 的贡献者。
- 需要无人值守检查 PR 状态并准备修复的场景(macOS)。
- 希望获得贡献统计和徽章的用户。
限制
- 仅支持 GitHub,不支持 GitLab、Bitbucket 或其他平台。
- GitHub Search API 每个查询最多返回 1,000 个结果。如果开放、合并或关闭的 PR 超过 1,000 个,最旧的不会被计入。
- 单用户,跟踪一个人的 PR,无团队视图或共享状态。
- 无人值守调度开箱即用仅限 macOS。
- Windows 未测试。
- 首次运行需要 npm 和网络连接,构建时间较长。
- 秘密 gist 是未列出而非访问控制的,任何有 URL 的人都能读取。
- 无人值守运行不是沙箱,使用你的凭据执行测试。