mcpField
C
cyrus-setup

cyrus-setup

github.com/cyrusagentsエージェントワークフロー8791.2k 回インストール今日更新
リポジトリ

cyrus-setup について

Cyrus Setupは、セルフホスト可能なCyrusのセットアップを進行するスキルです。Claude CodeをLinear、Slack、GitHubと連携するバックグラウンドエージェントとして動かすため、前提条件、認証、エンドポイント、連携、リポジトリ、起動を順に案内し、再実行時は完了済みの手順を省略します。

主な機能

  1. 01サブスキルによる順序立てたセットアップ
  2. 02連携先とパッケージマネージャーの選択
  3. 03ブラウザー自動化または手動手順に対応
  4. 04完了済み手順のスキップ
  5. 05シークレットを会話コンテキストから分離

活用シーン

  1. 01セルフホストCyrusのセットアップ
  2. 02選択したLinear、Slack、GitHub連携の設定
  3. 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 つのモードを、優先度の高い順に使用します。

  1. claude-in-chrome(利用可能な場合に推奨)— ユーザーが Claude Code を実行していて、claude-in-chrome MCP 拡張機能が接続されている場合は、これを使用します。ユーザーがすでにサインインしているセッションを含む、既存の Chrome を利用できる点が大きな利点です(Linear、Slack、GitHub)。mcp__claude-in-chrome__* ツールが存在するか確認し、利用可能かどうかを判断してください。
  2. agent-browser CLI — Bash 経由で実行する、Playwright ベースのスタンドアロンバイナリです。リモートデバッグを有効にした新しい Chrome プロファイルの起動が必要です(ユーザーはそのプロファイルで各サービスにサインインする必要があります)。which agent-browser で確認してください。
  3. 手動ガイドフロー — ユーザーがエージェントの手順に従って、自分でクリック操作を行います。各サブスキルで Path B として常に利用できます。

使用するモードの決定方法:

  1. まず、現在のセッションで claude-in-chrome MCP ツールが利用できるか確認してください。利用できる場合は、それらを使用します。セットアップは不要です。
  2. 利用できない場合は、which agent-browser を確認してください。インストールされている場合は、新しい Chrome プロファイルを起動します(下記を参照)。
  3. どちらも利用できない場合は、ユーザーに 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 ファイルを読み、その指示に従ってください。サブスキルファイルは、このスキルと同じ階層にあるディレクトリ内にあります。

ステップサブスキル読み込むファイル
1setup-prerequisitescyrus-setup-prerequisites/SKILL.md(skills ディレクトリからの相対パス)
2setup-claude-authcyrus-setup-claude-auth/SKILL.md
3setup-endpointcyrus-setup-endpoint/SKILL.md
4setup-linearcyrus-setup-linear/SKILL.md
5setup-githubcyrus-setup-github/SKILL.md
5bsetup-gitlabcyrus-setup-gitlab/SKILL.md
6setup-slackcyrus-setup-slack/SKILL.md
7setup-repositorycyrus-setup-repository/SKILL.md
8setup-launchcyrus-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 サブスキルを読み込み、その指示に従ってください。


設計原則

  1. 完了済みの場合はスキップ — 各サブスキルは、まず既存の状態を確認します。/setup を再実行しても安全です。
  2. シークレットをチャットに入力しない — 認証情報は、agent-browser で取得するか、ユーザーがターミナルで実行するクリップボードから環境変数へのシェルコマンドで書き込みます。
  3. エージェントがシークレット以外の設定を書き込む — CYRUS_SERVER_PORT や LINEAR_DIRECT_WEBHOOKS などの値は、エージェントが直接書き込みます。
  4. 利用可能な場合はブラウザーを自動化 — Linear/Slack アプリの作成には agent-browser を使用し、インストールされていない場合は手順を案内して手動で行います。
  5. パッケージマネージャーの選択を反映 — ユーザーが選択したものを全体を通して一貫して使用します。

コメント