mcpField
C
cyrus-setup-launch

cyrus-setup-launch

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

cyrus-setup-launch について

Cyrus の設定をまとめてサービスを起動するセットアップスキルです。バックグラウンド実行、必要に応じた ngrok 起動、サンドボックスの証明書確認、稼働状態の検証を扱います。

主な機能

  1. 01設定済みサービスの要約
  2. 02pm2 または systemd による常駐設定
  3. 03設定済みの場合の ngrok 起動
  4. 04サンドボックス証明書の信頼確認
  5. 05ローカルサービス状態の検証

活用シーン

  1. 01Cyrus をバックグラウンドまたは再起動後も稼働
  2. 02Linear の課題割り当て前に準備状況を確認
  3. 03有効なサンドボックスの証明書信頼を確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/cyrusagents/cyrus --skill cyrus-setup-launch

インストール後、Claude Code で/cyrus-setup-launchを入力して読み込まれたか確認します。

詳細

重要:~/.cyrus/.env または ~/.cyrus/ 内のファイルに対して、Read、Edit、Write ツールを絶対に使用しないでください。環境ファイルの操作には Bash コマンド(grep、printf >> など)のみを使用してください。シークレットを会話のコンテキストに読み込んではいけません。

セットアップの開始

完了したセットアップの概要を表示し、Cyrus の起動を提案します。

Step 1: Configuration の収集

現在の状態を読み取ります:

# Base URL
grep '^CYRUS_BASE_URL=' ~/.cyrus/.env 2>/dev/null | cut -d= -f2-

# Linear
grep -c '^LINEAR_CLIENT_ID=' ~/.cyrus/.env 2>/dev/null

# GitHub
gh auth status 2>&1 | head -1

# Slack
grep -c '^SLACK_BOT_TOKEN=' ~/.cyrus/.env 2>/dev/null

# Repositories
cat ~/.cyrus/config.json 2>/dev/null

# Claude auth
grep -c -E '^(ANTHROPIC_API_KEY|CLAUDE_CODE_OAUTH_TOKEN)=' ~/.cyrus/.env 2>/dev/null

Step 2: 概要の表示

書式設定された概要を表示します:

┌─────────────────────────────────────┐
│         Cyrus Setup Complete        │
├─────────────────────────────────────┤
│                                     │
│  Endpoint: https://your-url.com     │
│  Claude:   ✓ API key configured     │
│                                     │
│  Surfaces:                          │
│    Linear:  ✓ Workspace connected   │
│    GitHub:  ✓ CLI authenticated     │
│    Slack:   ✓ Bot configured        │
│                                     │
│  Repositories:                      │
│    • yourorg/yourrepo               │
│    • yourorg/another-repo           │
│                                     │
└─────────────────────────────────────┘

設定済みの項目には ✓、スキップまたは未設定の項目には ✗ を使用します。

Step 3: Cyrus の常時稼働の設定

Cyrus をバックグラウンドプロセスとして実行し、稼働状態を維持して再起動後も起動するようにする必要があります。利用可能な場合は AskUserQuestion ツールを使用して、次のように質問します。

Cyrus をバックグラウンドでどのように稼働させますか?

  1. pm2(推奨)— Node.js プロセスマネージャーです。簡単にセットアップでき、クラッシュ時に自動再起動し、ログ管理機能も組み込まれています。ほとんどのユーザーに最適です。
  2. systemd(Linux のみ)— OS レベルのサービスマネージャーです。起動時に自動で開始し、systemctl で管理できます。専用の Linux サーバーに最適です。
  3. どちらも使用しない — ひとまず cyrus をフォアグラウンドで実行します(常時稼働の設定は後から行えます)。
オプション 1:pm2

エージェントは次のコマンドをすべて直接実行します。

  1. pm2 がインストールされているか確認します(which pm2)。インストールされていない場合は、インストールします(npm install -g pm2)。
  2. Cyrus を起動します:pm2 start cyrus --name cyrus
  3. プロセスリストを保存します:pm2 save
  4. pm2 startup を実行します。システム固有のコマンドが出力されます。エージェントはその出力コマンドも実行します(通常は sudo が必要です)。

セットアップ後、次の便利なコマンドをユーザーに伝えます。

  • pm2 logs cyrus — ログを表示
  • pm2 restart cyrus — 再起動
  • pm2 stop cyrus — 停止
オプション 2:systemd(Linux のみ)

エージェントは次のコマンドをすべて直接実行します。

  1. サービスファイルに使用する実際の値を解決します。

    CYRUS_BIN=$(which cyrus)
    CYRUS_USER=$(whoami)
    
  2. サービスファイルを書き込みます。

    sudo tee /etc/systemd/system/cyrus.service > /dev/null << EOF
    [Unit]
    Description=Cyrus AI Agent
    After=network.target
    
    [Service]
    Type=simple
    User=$CYRUS_USER
    EnvironmentFile=/home/$CYRUS_USER/.cyrus/.env
    ExecStart=$CYRUS_BIN
    Restart=always
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target
    EOF
    
  3. 有効化して起動します。

    sudo systemctl daemon-reload
    sudo systemctl enable cyrus
    sudo systemctl start cyrus
    

セットアップ後、次の便利なコマンドをユーザーに伝えます。

  • sudo systemctl status cyrus — ステータスを確認
  • sudo journalctl -u cyrus -f — ログを表示
  • sudo systemctl restart cyrus — 再起動
オプション 3:フォアグラウンド

直接実行します。

cyrus

Step 4: ngrok の起動(該当する場合)

エンドポイントの設定手順でユーザーが ngrok を設定した場合、エージェントは ngrok を起動します。

ngrok start cyrus

pm2 を使用する場合は、ngrok も常時稼働するように設定します。

pm2 start "ngrok start cyrus" --name ngrok
pm2 save

Step 5: サンドボックス CA 証明書の信頼(サンドボックスが有効な場合)

ユーザーの ~/.cyrus/config.json で sandbox.enabled: true になっている場合、エグレスプロキシの CA 証明書がシステムのキーチェーンで信頼されているか確認します。

サンドボックスが有効か確認します:

grep -o '"enabled":\s*true' ~/.cyrus/config.json 2>/dev/null | head -1

サンドボックスが有効な場合は、信頼状態を確認します。

# macOS — check System keychain for the Cyrus CA
security find-certificate -c "Cyrus Egress Proxy CA" /Library/Keychains/System.keychain 2>&1
  • 証明書が見つかった場合(終了コード 0):信頼済み ✓ と報告します。セッションごとの証明書環境変数を省略するため、config.json に sandbox.systemWideCert: true を設定するかユーザーに確認します。
  • 見つからなかった場合(終了コード 44):その旨をユーザーに伝え、信頼コマンドの実行を提案します。
sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain ~/.cyrus/certs/cyrus-egress-ca.pem

Linux では test -f /usr/local/share/ca-certificates/cyrus-egress-ca.crt で確認します。存在しない場合:

sudo cp ~/.cyrus/certs/cyrus-egress-ca.pem /usr/local/share/ca-certificates/cyrus-egress-ca.crt
sudo update-ca-certificates

システム全体で信頼するように設定した後、config.json に sandbox.systemWideCert: true を設定するかユーザーに確認します。OS の証明書ストアがすべてのツールの信頼を処理するため、セッションごとの証明書環境変数(NODE_EXTRA_CA_CERTS、GIT_SSL_CAINFO など)が不要になります。

ユーザーがシステム全体での信頼を拒否した場合でも、Cyrus は引き続き動作します。セッションごとに証明書環境変数を設定します。ただし、一部のツール(Bun、.NET、SecureTransport を使用する macOS 上の curl)は、システム全体での信頼設定がないと動作しません。

Step 6: 稼働状態の確認

Cyrus の起動後、リッスンしていることを確認します。

curl -s http://localhost:3456/status

{"status":"idle"} または同様の応答が返るはずです。

次に、Linear の課題を Cyrus に割り当てるか、Slack で @メンションして、パイプライン全体が動作することを確認してください。

完了

✓ Cyrus は稼働中で、準備ができています。Linear の課題を割り当てるか、Slack で @メンションして動作を試してください。

コメント