关于 cyrus-setup
Cyrus Setup 是用于编排自托管 Cyrus 安装的技能;Cyrus 可将 Claude Code 作为后台 Agent,连接 Linear、Slack 和 GitHub。它按步骤引导配置前置条件、身份验证、端点、集成、代码库和启动,并在重跑时跳过已完成步骤。
主要功能
- 01通过有序子技能引导安装
- 02选择集成服务和包管理器
- 03支持浏览器自动化或手动操作
- 04重跑时跳过已完成步骤
- 05避免将密钥带入对话上下文
适用场景
- 01安装自托管 Cyrus
- 02配置所选的 Linear、Slack 或 GitHub 集成
- 03重跑安装以添加集成或修复配置
MCP 相关
若环境中有 claude-in-chrome MCP 扩展,安装流程可使用它执行浏览器自动化。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cyrusagents/ cyrus --skill cyrus-setup安装后在 Claude Code 中输入/cyrus-setup确认已加载。
详细介绍
Cyrus 设置
通过一条命令设置可自托管的 Cyrus。此协调器将引导你完成所有必要步骤,以便通过 Linear、Slack 和 GitHub 将 Claude Code 作为后台 Agent 运行。
重要规则
切勿直接读取或写入 ~/.cyrus/.env
禁止: 不要使用 Read、Edit 或 Write 工具操作 ~/.cyrus/.env 或 ~/.cyrus/ 中的任何文件。此文件包含机密信息(API 密钥、令牌、签名密钥)。与此文件的所有交互都必须通过 Bash 命令(grep、printf >> ... 等)进行,以便用户查看并批准。切勿将其内容读入对话上下文。
浏览器自动化
此技能中的浏览器自动化旨在减轻登录和设置的繁琐过程——Agent 会浏览 Web 界面、填写表单并抓取凭据,让用户不必手动完成所有操作。
三种模式,按优先顺序排列:
claude-in-chrome(可用时优先)——如果用户正在运行 Claude Code,且已连接claude-in-chromeMCP 扩展,请使用它。其巨大优势在于可以使用用户现有的 Chrome,其中已登录 Linear、Slack 和 GitHub。检查是否存在mcp__claude-in-chrome__*工具,以确认是否可用。agent-browserCLI ——基于 Playwright 的独立二进制程序,通过Bash调用。需要启动一个启用了远程调试的新 Chrome 配置文件(用户需要在该配置文件中登录服务)。使用which agent-browser检查。- 手动引导流程 ——用户按照 Agent 的逐步说明自行点击。每个子技能中始终提供此选项,作为路径 B。
确定使用哪种模式:
- 首先,检查当前会话中是否有可用的
claude-in-chromeMCP 工具。如果有,请使用这些工具——无需设置。 - 如果没有,检查
which agent-browser。如果已安装,请启动一个新的 Chrome 配置文件(见下文)。 - 如果两者都不可用,请询问用户:安装
agent-browser,还是按照手动说明操作?
agent-browser 设置——新的 Chrome 配置文件:
agent-browser 需要启用了远程调试的 Chrome 实例。使用独立配置文件启动一个实例:
# Find an open port
for port in $(seq 9222 9322); do
if ! lsof -i :"$port" > /dev/null 2>&1; then
echo "Open port found: $port"
break
fi
done
# Create a fresh profile directory
mkdir -p ~/.cyrus/chrome-profile
# Launch Chrome with remote debugging (runs in background)
# macOS:
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--remote-debugging-port=<port> \
--user-data-dir="$HOME/.cyrus/chrome-profile" &
# Linux:
google-chrome --remote-debugging-port=<port> \
--user-data-dir="$HOME/.cyrus/chrome-profile" &
# Connect agent-browser to it
agent-browser connect <port>
连接后,命令即可正常使用:
agent-browser navigate "https://example.com"
agent-browser click "button:text('Submit')"
agent-browser fill "#input-id" "value"
agent-browser screenshot
agent-browser eval "document.title"
重要: 在 Agent 自动创建应用之前,用户需要在此新的 Chrome 配置文件中登录 Linear、Slack 和 GitHub。Agent 应导航到每项服务,并暂停以便用户登录,然后再继续自动化操作。
清理: 设置完成后,关闭 Chrome 实例:
lsof -ti :<port> | xargs kill 2>/dev/null
工作原理
此技能会按顺序运行各个子技能,并跳过已完成的步骤。你可以随时重新运行 /cyrus-setup,以添加集成或修复配置。
加载子技能
每个步骤都会引用一个子技能文件。要执行子技能,请使用 Read 工具读取 SKILL.md 文件并遵循其中的说明。子技能文件位于此技能的同级目录中:
| 步骤 | 子技能 | 要读取的文件 |
|---|---|---|
| 1 | setup-prerequisites | cyrus-setup-prerequisites/SKILL.md(相对于 skills 目录) |
| 2 | setup-claude-auth | cyrus-setup-claude-auth/SKILL.md |
| 3 | setup-endpoint | cyrus-setup-endpoint/SKILL.md |
| 4 | setup-linear | cyrus-setup-linear/SKILL.md |
| 5 | setup-github | cyrus-setup-github/SKILL.md |
| 5b | setup-gitlab | cyrus-setup-gitlab/SKILL.md |
| 6 | setup-slack | cyrus-setup-slack/SKILL.md |
| 7 | setup-repository | cyrus-setup-repository/SKILL.md |
| 8 | setup-launch | cyrus-setup-launch/SKILL.md |
要查找这些文件,请从此文件所在目录向上一级,然后进入子技能目录。例如,如果此文件位于 ~/.claude/skills/cyrus-setup/SKILL.md,那么子技能文件位于 ~/.claude/skills/cyrus-setup-prerequisites/SKILL.md 等位置。
如果找不到子技能文件,请使用 Glob 搜索:**/cyrus-setup-prerequisites/SKILL.md
第 0 步:身份与接入平台选择
开始之前,先收集用户的偏好。如果有 AskUserQuestion 工具,请使用它——通过交互方式提问,而不是以文本块的形式列出问题。
问题 1:名称与描述
询问用户(括号内为默认值):
- 你想为 Agent 起什么名字?——此名称会显示在 Linear、Slack 和 GitHub 集成中。(默认值:
Cyrus) - 请简要描述你的 Agent——用一句话说明,将显示在集成应用列表中。(默认值:
用于自动化开发的 AI 编码 Agent)
将答案保存为 AGENT_NAME 和 AGENT_DESCRIPTION,创建 Linear、Slack 和 GitHub 应用时会用到。
问题 2:要接入哪些平台?
请用户选择一个或多个:
- Linear——问题跟踪,推荐大多数用户使用
- GitHub——PR 评论和问题
- GitLab——MR 评论和问题
- Slack——聊天消息
至少需要选择一个。保存选择结果,以决定要运行哪些集成子技能(步骤 4–6)。
问题 3:包管理器?
询问:npm、pnpm、bun 还是 yarn?
保存答案,供先决条件子技能使用。
第 1 步:先决条件
读取 cyrus-setup-prerequisites/SKILL.md 子技能并遵循其中的说明。
传入用户在第 0 步选择的包管理器。
第 2 步:Claude 身份验证
读取 cyrus-setup-claude-auth/SKILL.md 子技能并遵循其中的说明。
第 3 步:Webhook 端点
读取 cyrus-setup-endpoint/SKILL.md 子技能并遵循其中的说明。
第 4 步:Linear(如果已选择)
仅当用户在第 0 步选择了 Linear 时执行。
读取 cyrus-setup-linear/SKILL.md 子技能并遵循其中的说明。
第 5 步:GitHub(如果已选择)
仅当用户在第 0 步选择了 GitHub 时执行。
读取 cyrus-setup-github/SKILL.md 子技能并遵循其中的说明。
第 5b 步:GitLab(如果已选择)
仅当用户在第 0 步选择了 GitLab 时执行。
读取 cyrus-setup-gitlab/SKILL.md 子技能并遵循其中的说明。
第 6 步:Slack(如果已选择)
仅当用户在第 0 步选择了 Slack 时执行。
读取 cyrus-setup-slack/SKILL.md 子技能并遵循其中的说明。所有路径(A-1、A-2 和 B)都必须使用基于清单的创建流程——绝不能通过手动配置权限范围/事件的方式“从头开始”创建 Slack 应用。
第 7 步:添加代码仓库
读取 cyrus-setup-repository/SKILL.md 子技能并遵循其中的说明。
第 8 步:启动
读取 cyrus-setup-launch/SKILL.md 子技能并遵循其中的说明。
设计原则
- 已完成则跳过 — 每个子技能都会先检查现有状态。重新运行
/setup是安全的。 - 机密信息绝不进入聊天 — 凭据要么通过 agent-browser 抓取,要么通过剪贴板到环境变量的 Shell 命令写入,由用户在终端中运行。
- Agent 写入非机密配置 —
CYRUS_SERVER_PORT和LINEAR_DIRECT_WEBHOOKS等值由 Agent 直接写入。 - 可用时使用浏览器自动化 — 使用
agent-browser创建 Linear/Slack 应用;如果未安装,则改为引导用户手动操作。 - 兼顾包管理器 — 始终一致地使用用户的选择。