Cyrus
部署在你自己机器上的后台编码代理:自动处理 Linear、GitHub、GitLab、Slack 中指派给它的工单,用 Claude Code 等工具完成任务并回报进展。
证据显示CI工作流采用最小权限声明、发布流程有依赖审计与锁文件安装、代码中有只读/写入工具分级测试,故least_privilege与dependency_security得2分。README提及审批式交互('approvals')但无实现细节,user_confirmation仅1分。数据流与敏感数据处理:BYOK声明清楚,但会话数据发送至云端 HttpSessionStore(带Bearer token、团队ID头),数据去向文档化不足,均1分。代理可创建PR/MR、写代码(write tools 含 Bash/Edit/Write),外部影响真实存在但审批与防护细节未见,external_effects 1分。未发现任何回滚机制证据,rollback 0分。Credits段致谢Linear与Anthropic但发布者身份未验证且仓库标识混乱,source_attribution 1分。
包内部测试覆盖错误处理、abort、SIGTERM(143) 等场景且错误信息明确(如 'Claude session already running'、非2xx抛出含状态码错误),failure_messages 2分。发布流程用 frozen lockfile + corepack 锁定 pnpm 版本,dependency_availability 2分。但存在自相矛盾:README 声明 Apache-2.0 而 package. 写 "license": "MIT";README 徽章指向 ceedaragents/cyrus 而 package. 指向 cyrusagents/cyrus,self_consistency 1分。
README 面向社区自托管、付费自托管与云托管三类用户,支持多 harness(Claude Code/Codex/Cursor/Gemini/Opencode)与多平台(Linear/GitHub/GitLab/Slack),audience_and_scenarios 2分。工具分级测试明确界定 coordinator(禁Edit/Write)与 read-only 集合,capability_boundaries 2分。提供 tmux/pm2/systemd 多种常驻方式,environment_fit 2分。触发条件仅为 'monitors issues assigned to it' 一句话,无规则/过滤细节,trigger_precision 1分。
文档索引清晰(SELF_HOSTING/GIT_GITHUB/GIT_GITLAB/CONFIG_FILE等),install_notes 与 information_architecture 2分。版本发布流程极为严谨:dry-run、完整性校验、tag幂等检查、OIDC trusted publisher,versioning_changelog 2分。但命名不稳定(cyrusagents vs ceedaragents、cyrus-ai 包名)、examples/FAQ 与已知限制仅在链接中暗示、维护责任(CONTRIBUTING、治理)无证据,均1分。许可证声明互相矛盾(README Apache-2.0 vs package. MIT),license 1分。
产品价值清晰:监控分配的 issue、隔离 worktree、流式回传活动与富交互,输出可用性2分。相比手工轮询 issue 的替代方案有明显增益,且BYOK模式成本透明,marginal_value与cost_benefit 2分。但实际效果依赖未在证据中验证的云端服务与AI引导安装技能,静态审查无法进一步加分。
测试中引用具体工单号(CYPACK-1310)且断言精确(日志格式正则、工具清单长度),claim_traceability 2分。事实与推断区分:本报告仅基于所给文件,静态推断处已标注,2分。跨源印证不足:README、package.、徽章三处仓库地址/许可证互不一致,外部声明(CI徽章、Discord)无法在给定文件内核实,cross_source_corroboration 1分。
- 许可证声明冲突:README 称 Apache-2.0,package. 写 MIT,使用前请确认实际授权条款。
- 仓库标识不一致:package. 指向 cyrusagents/cyrus,README 徽章指向 ceedaragents/cyrus,安装与来源验证时务必核对 npm 包(cyrus-ai)的真实发布者。
- 代理默认具备 Bash/Edit/Write 等写权限工具,会在您控制的机器上创建 PR/MR;部署前应审查工具白名单并确认审批交互的实际行为。
- 自托管/付费模式下会话数据经云端 HttpSessionStore 传输(Bearer token、团队ID头),请核实数据驻留与加密路径。
- 未发现回滚或会话恢复机制的文档证据;一旦代理错误合并或写入,需自行依赖 Git 层面恢复。
这个 Agent 能做什么,适合哪些场景?
Cyrus 是一个可自托管的后台代理运行时,监控指派给它的 Linear、GitHub、GitLab 或 Slack 工单。它为每个工单创建隔离的 Git worktree,在其中运行 Claude Code、Codex、Cursor、Gemini 或 Opencode 会话来处理任务,并把详细的代理活动流式推回 Linear 或 GitHub,支持下拉选择和审批等富交互。它是 BYOK(自带密钥/订阅)平台,令牌费用由用户自己的 API 订阅承担。项目采用 Apache 2.0 许可证,基于 Linear API 和 Anthropic 的 Claude Code 构建。部署方式包括零成本的社区自托管、付费的自托管(网络层由云端提供)、以及完全托管的云端版本(通过 app.atcyrus.com 管理)。
Cyrus 持续监听各集成平台上指派给它的工单。接到工单后,它为该工单创建一个隔离的 Git worktree,在其中启动所选 harness(Claude Code、Codex、Cursor、Gemini 或 Opencode)的会话执行任务。执行过程中,它将代理的详细活动流式更新到 Linear 或 GitHub,并支持下拉选择、审批等富交互让用户介入。要让它创建 PR 或 MR,需要配置 Git 及对应的 GitHub CLI 或 GitLab CLI。持久运行可借助 tmux、pm2 或 systemd。
- 使用 Linear 的工程团队:把 bug 或特性工单指派给 Cyrus,让它在隔离 worktree 中自动产出代码和 PR。
- 个人开发者:用零成本社区自托管方案,把 GitHub issue 变成后台自动处理的编码任务。
- 多工具团队:已订阅 Cursor、Codex 或 Gemini 的团队可复用现有订阅作为执行 harness,无需更换工具。
- 需要管控的团队:通过审批和下拉选择交互,在人机协作流程中审核代理的关键决策。
- GitLab 用户:配置 GitLab CLI 后,让代理以 MR 形式交付修改。
这个 Agent 有哪些优点和局限?
- 支持多种执行 harness(Claude Code、Codex、Cursor、Gemini、Opencode),可复用已有的模型订阅而非绑定单一供应商。
- 每个工单使用隔离的 Git worktree 执行,任务之间互不干扰,输出可自然进入 PR/MR 流程。
- 提供零成本的完整社区自托管路径,AI 引导的 /cyrus-setup 技能自动完成依赖与集成应用配置。
- 富交互回传(下拉选择、审批)让用户能在代理执行中途介入决策。
- BYOK 模式意味着你需要自行承担模型密钥/订阅成本,项目本身不包含 token 费用。
- 自托管需要一台你控制的常驻机器,并自行配置 tmux/pm2/systemd 保持运行,运维成本不可忽视。
- 创建 PR/MR 需额外配置 Git 和 GitHub CLI / GitLab CLI;社区方案还需自行创建并维护 Linear OAuth 应用、GitHub App 和 Slack App。
- 付费自托管版本依赖 Cyrus 云端提供的网络层和集成,意味着对托管服务商的部分依赖。
如何安装或部署这个 Agent?
三种路径:
1) 社区自托管(免费):运行 npx skills add ceedaragents/cyrus -g,然后在任意 AI 编码代理(Claude Code、Codex、Cursor 等)中执行 /cyrus-setup,由 AI 引导完成依赖安装、认证配置、创建 Linear OAuth 应用 / GitHub App / Slack App 并连接仓库。也可参考 docs/SELF_HOSTING.md 手动安装。
2) 付费自托管:npm install -g cyrus-ai,然后 cyrus auth <your-token>(token 在开通流程中提供)。
3) 云托管:无需安装,直接在 app.atcyrus.com 配置。
如需创建 PR/MR,还要按 docs/GIT_GITHUB.md 或 docs/GIT_GITLAB.md 配置 Git 和对应 CLI。
如何使用这个 Agent?
自托管时,在配置好集成和仓库后保持进程常驻:tmux 方式 tmux new -s cyrus 然后运行 cyrus(Ctrl+B, D 分离);pm2 方式 pm2 start cyrus --name cyrus;或按文档配置为 systemd 服务。之后在 Linear、GitHub、GitLab 或 Slack 中把 issue 指派给 Cyrus,它就会创建 worktree、运行代理会话并把进展流式回报到原平台。付费/云版本通过 app.atcyrus.com 仪表板管理。它是 BYOK 模式,需要自带模型密钥或订阅。