> ## Documentation Index
> Fetch the complete documentation index at: https://docs.therefrain.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# execute

> 手順書を実行してブラウザ操作を自動化します。

## 概要

```bash theme={null}
npx @refrainai/cli execute -- \
  --runbook <path> \
  [options]
```

**手順書**を読み込み、変数を解決し、自己修復セレクタ解決で各ステップをブラウザ上で実行します。

## 必須引数

| 引数                 | 説明             |
| ------------------ | -------------- |
| `--runbook <path>` | **手順書**ファイルのパス |

## オプション引数

### 実行設定

| 引数                    | デフォルト   | 説明                            |
| --------------------- | ------- | ----------------------------- |
| `--headless <bool>`   | `true`  | `false` でブラウザウィンドウを表示         |
| `--step-delay <ms>`   | 手順書の値   | 手順書の `pauseBetweenSteps` を上書き |
| `--output-dir <path>` | -       | ダウンロード・エクスポートファイルの保存先ディレクトリ   |
| `--merge-downloads`   | `false` | ダウンロードした CSV ファイルを1つにマージ      |

### コンテキスト・シークレット

| 引数                 | デフォルト | 説明                                 |
| ------------------ | ----- | ---------------------------------- |
| `--context <path>` | -     | 補足情報マークダウンファイルのパス                  |
| `--secrets <path>` | -     | secrets JSON ファイルのパス（全値 sensitive） |

### 出力・デバッグ

| 引数                    | デフォルト   | 説明                    |
| --------------------- | ------- | --------------------- |
| `--screenshots <dir>` | -       | スクリーンショット保存ディレクトリ     |
| `--video <dir>`       | -       | 動画録画の出力先ディレクトリ        |
| `--report`            | `false` | 実行レポートを強制生成（Markdown） |

### 自己修復

| 引数            | デフォルト   | 説明                              |
| ------------- | ------- | ------------------------------- |
| `--self-heal` | `false` | 自動修正モード（アグレッシブリトライ + AI 修正提案生成） |

<Note>
  `--self-heal` は全ての自己修復機能を有効化し、アグレッシブなデフォルト値を設定します。プラン要件については[自動修正モード](/ja/concepts/plan-tiers#自動修正モード)を参照してください。
</Note>

### 承認・通知

| 引数                       | デフォルト | 説明                                        |
| ------------------------ | ----- | ----------------------------------------- |
| `--approval-mode <mode>` | `web` | 承認モード: `web`, `slack`, `teams`, `discord` |
| `--notify <mode>`        | -     | 完了通知モード: `slack`, `teams`, `discord`      |

<Note>
  Slack/Teams/Discord 承認は Business プラン以上が必要です。通知は Team プラン以上が必要です。
</Note>

<Note>
  各プラットフォームには固有の環境変数（ボットトークン、チャンネル ID、Signing Secret）が必要です。完全な設定手順は[承認と通知](/ja/guides/approval-and-notifications#プラットフォーム設定)を参照してください。
</Note>

### AI モデル

| 引数                            | デフォルト               | 説明                       |
| ----------------------------- | ------------------- | ------------------------ |
| `--model <id>`                | `claude-sonnet-4-6` | AI モデル ID                |
| `--model-provider <provider>` | `anthropic`         | AI プロバイダー                |
| `--model-base-url <url>`      | -                   | OpenAI 互換エンドポイントのベース URL |

### 詳細設定

| 引数                | デフォルト   | 説明                                        |
| ----------------- | ------- | ----------------------------------------- |
| `--locale <code>` | `en`    | UI・AI プロンプトの言語: `en` または `ja`             |
| `--stealth`       | `false` | ステルスモード（bot 検出回避パッチ適用）                    |
| `--proxy <url>`   | -       | プロキシ URL（例: `http://user:pass@host:port`） |
| `--skill <names>` | -       | スキルプラグイン名（カンマ区切り）                         |
| `--api-key <key>` | -       | Pro/Team/Business/Enterprise 機能の API キー   |

## 使用例

### 基本的な実行

```bash theme={null}
npx @refrainai/cli execute -- \
  --runbook ./login-flow.yaml \
  --context ./context.md \
  --secrets ./secrets.json \
  --headless false \
  --model "claude-sonnet-4-6" \
  --model-provider anthropic
```

<Tip>
  環境変数でデフォルトモデル・プロバイダーを設定すれば、毎回指定する必要がなくなります。詳しくは[デフォルトモデルの設定](/ja/guides/ai-setup#デフォルトモデル)を参照してください。
</Tip>

### スクリーンショット付き

```bash theme={null}
npx @refrainai/cli execute -- \
  --runbook ./login-flow.yaml \
  --screenshots ./screenshots
```

### 自動修正モード

```bash theme={null}
npx @refrainai/cli execute -- \
  --runbook ./login-flow.yaml \
  --self-heal
```

### Slack 承認付き

```bash theme={null}
export SLACK_BOT_TOKEN="xoxb-..."
export SLACK_CHANNEL_ID="C01234567"

npx @refrainai/cli execute -- \
  --runbook ./payment-flow.yaml \
  --approval-mode slack \
  --notify slack
```

### シークレット付き

```bash theme={null}
npx @refrainai/cli execute -- \
  --runbook ./login-flow.yaml \
  --secrets ./secrets.json
```

### 環境変数とシークレットの利用

環境変数と `--secrets` フラグで認証情報を安全に渡せます：

```bash theme={null}
export APP_EMAIL="user@example.com"

npx @refrainai/cli execute -- \
  --runbook ./login-flow.yaml \
  --secrets '{"APP_PASSWORD": "s3cret!"}'
```

## 環境変数

| 変数                  | 説明                                |
| ------------------- | --------------------------------- |
| `AI_MODEL_ID`       | `--model` のデフォルト値                 |
| `AI_MODEL_PROVIDER` | `--model-provider` のデフォルト値        |
| `REFRAIN_LOCALE`    | `--locale` のデフォルト値（`en` または `ja`） |
| `REFRAIN_API_KEY`   | `--api-key` のデフォルト値               |
