cyrus-setup について
Cyrus Setupは、セルフホスト可能なCyrusのセットアップを進行するスキルです。Claude Codeを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 をバックグラウンドエージェントとして実行するために必要な作業をすべて案内します。
重要なルール
~/.cyrus/.env を直接読み取ったり書き込んだりしないでください
禁止事項: ~/.cyrus/.env または ~/.cyrus/ 内のファイルに対して、Read、Edit、Write ツールを使用しないでください。このファイルには秘密情報(API キー、トークン、署名シークレット)が含まれています。このファイルとのやり取りはすべて、ユーザーが確認して承認できる Bash コマンド(grep、printf >> ... など)を通じて行う必要があります。内容を会話のコンテキストに読み込まないでください。
ブラウザーの自動操作
このスキルでブラウザーを自動操作する目的は、サインインとセットアップの負担を軽減することです。エージェントがウェブ UI を操作し、フォームに入力して認証情報を取得することで、ユーザーがすべて手動で行わなくても済むようにします。
次の 3 つのモードを、優先度の高い順に使用します。
claude-in-chrome(利用可能な場合に推奨)— ユーザーが Claude Code を実行していて、claude-in-chromeMCP 拡張機能が接続されている場合は、これを使用します。ユーザーがすでにサインインしているセッションを含む、既存の Chrome を利用できる点が大きな利点です(Linear、Slack、GitHub)。mcp__claude-in-chrome__*ツールが存在するか確認し、利用可能かどうかを判断してください。agent-browserCLI —Bash経由で実行する、Playwright ベースのスタンドアロンバイナリです。リモートデバッグを有効にした新しい Chrome プロファイルの起動が必要です(ユーザーはそのプロファイルで各サービスにサインインする必要があります)。which agent-browserで確認してください。- 手動ガイドフロー — ユーザーがエージェントの手順に従って、自分でクリック操作を行います。各サブスキルで Path 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"
重要: エージェントがアプリの作成を自動化する前に、ユーザーは新しい Chrome プロファイルで Linear、Slack、GitHub にサインインする必要があります。エージェントは各サービスに移動し、自動操作を続ける前にユーザーがサインインするのを待つ必要があります。
クリーンアップ: セットアップが完了したら、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 |
ファイルを見つけるには、このファイルのディレクトリから1つ上の階層に移動し、サブスキルのディレクトリに入ってください。たとえば、このファイルが ~/.claude/skills/cyrus-setup/SKILL.md にある場合、サブスキルは ~/.claude/skills/cyrus-setup-prerequisites/SKILL.md などにあります。
サブスキルファイルが見つからない場合は、Glob を使って検索してください。例:**/cyrus-setup-prerequisites/SKILL.md
ステップ 0:アイデンティティと連携先の選択
何よりも先に、ユーザーの希望を確認してください。利用可能であれば AskUserQuestion ツールを使い、質問をテキストブロックとして表示するのではなく、対話形式で尋ねてください。関連する質問をまとめて尋ねても、1つずつ尋ねてもかまいません。
質問 1:名前と説明
ユーザーに次の項目を尋ねてください(括弧内はデフォルト値です)。
- エージェントにどのような名前を付けますか? — この名前は Linear、Slack、GitHub の連携で表示されます(デフォルト:
Cyrus)。 - エージェントの簡単な説明を入力してください — 連携アプリの一覧に表示される1文の説明です(デフォルト:
AI coding agent for automated development)。
AGENT_NAME と AGENT_DESCRIPTION として保存します。Linear、Slack、GitHub のアプリを作成する際に使用します。
質問 2:どの連携先を使いますか?
次から1つ以上選択するようユーザーに尋ねてください。
- Linear — 課題トラッキング。ほとんどのユーザーに推奨されます
- GitHub — PR コメントと課題
- GitLab — MR コメントと課題
- Slack — チャットメッセージ
少なくとも1つ選択する必要があります。選択内容を保存してください。実行する連携サブスキル(ステップ 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 で取得するか、ユーザーがターミナルで実行するクリップボードから環境変数へのシェルコマンドで書き込みます。
- エージェントがシークレット以外の設定を書き込む —
CYRUS_SERVER_PORTやLINEAR_DIRECT_WEBHOOKSなどの値は、エージェントが直接書き込みます。 - 利用可能な場合はブラウザーを自動化 — Linear/Slack アプリの作成には
agent-browserを使用し、インストールされていない場合は手順を案内して手動で行います。 - パッケージマネージャーの選択を反映 — ユーザーが選択したものを全体を通して一貫して使用します。