ローカルCLI連携|Claude Code / Codex の月額プランでAI機能を使う
CanForm の AI 機能(企業別の文面生成、フォーム発見の判定、送信エラーの検証)は、通常は各社の API キー(従量課金)で動きます。ローカルCLI連携を使うと、PC にインストール済みの Claude Code または Codex CLI を通じて、すでに契約している月額プラン(Claude Pro/Max、ChatGPT Plus/Pro など)の範囲内で同じ機能を使えます。
仕組み
Chrome 拡張機能は、セキュリティ上の制約で PC 上のプログラムを直接実行できません。そこで CanForm は、Chrome 公式の「ネイティブメッセージング」という仕組みを使います。
- 初回に 1 コマンドで、CanForm の小さなプログラム(ネイティブホスト)を Chrome に登録します
- 以後、AI が必要になるたびに Chrome が自動でそのプログラムを起動し、
claude/codexコマンドを実行して結果を受け取ります
サーバーを常駐させたり、使うたびに何かを起動したりする必要はありません。登録は利用者ごとの設定に書き込まれるため、管理者権限も不要です。
前提条件
- Node.js 18 以上(Claude Code / Codex CLI を使っていれば入っています)
- 次のいずれかがインストール済みで、ログインしていること
- Claude Code:ターミナルで
claude --versionが表示される - Codex CLI:ターミナルで
codex --versionが表示される
- Claude Code:ターミナルで
- CanForm のフォルダ(
bridgeフォルダを含む)が PC にあること
セットアップ手順(初回のみ・約3分)
ターミナル(黒い画面)を使いますが、入力するのはコピーして貼り付けるだけです。
1. 設定画面で「ローカルCLI」を選ぶ
設定ページの「AI設定」タブで、「利用するAIプロバイダ」から ローカルCLI(Claude Code / Codex・月額プラン) を選びます。この画面に、あなたの拡張機能の ID が入った手順とコマンドが表示されます(以下のコマンドは、画面に表示されたものをコピーしてください。<拡張機能のID> の部分が自動で埋まっています)。

2. ターミナルを開く
- Windows:キーボードの Windows キーを押して
powershellと入力し、「Windows PowerShell」を開きます - Mac:
command + スペースを押してターミナルと入力し、Enter で開きます
3. 準備ができているか確認する
次の1行をコピーして貼り付け、Enter を押します(Windows / Mac 共通)。
node -v; claude --version; codex --version
3行ともバージョン番号が表示されればOKです(使わない方のCLIはエラーでも構いません)。node が見つからない場合は nodejs.org から、CLI が見つからない場合は各公式手順でインストールしてログインしてください。
4. 登録する(CanForm のフォルダは自動で探します)
CanForm のフォルダがどこにあるか分からなくても大丈夫です。次の1行が、ホームフォルダの中から bridge/setup.js を探して実行します。コピーして貼り付け、Enter を押してください。
Windows(PowerShell)
[Console]::OutputEncoding = [Text.Encoding]::UTF8; $s = Get-ChildItem "$HOME" -Recurse -Depth 6 -Filter setup.js -ErrorAction SilentlyContinue | Where-Object { $_.DirectoryName -like "*\bridge" -and $_.DirectoryName -notlike "*node_modules*" } | Select-Object -First 1; if ($s) { node $s.FullName --extension-id <拡張機能のID> } else { Write-Host "CanForm のフォルダが見つかりませんでした" }
Mac(ターミナル)
s=$(find "$HOME" -maxdepth 7 -path "*/bridge/setup.js" -not -path "*/node_modules/*" 2>/dev/null | head -n 1); if [ -n "$s" ]; then node "$s" --extension-id <拡張機能のID>; else echo "CanForm のフォルダが見つかりませんでした"; fi
次のように表示されれば完了です。
[1/3] 必要なものを確認します
Node.js: v24.4.1
Claude Code: 2.1.289 (Claude Code)
Codex CLI: codex-cli 0.157.1
[2/3] ネイティブメッセージングホストのマニフェストを作成します
[3/3] ブラウザ(chrome)に登録します
✅ セットアップが完了しました。
「見つかりませんでした」と出た場合は、CanForm のフォルダ(bridge フォルダを含む)がホームフォルダ・デスクトップ・ダウンロード・ドキュメントのいずれかにあるか確認してください。Chrome 以外のブラウザに登録する場合はコマンドの末尾に --browser edge(Edge)や --browser brave(Brave)を付けます。Mac では登録後に Chrome を再起動してください。
5. 接続テストをして保存する
設定ページに戻り、「使うCLI」で Claude Code か Codex を選んで 接続テスト を押します。初回は Chrome が「ネイティブアプリとの通信」の許可を求めるので、許可 を選びます。「接続できました(claude: 2.1.289 …)」のように表示されたら 保存 を押します。

これで、自律営業やフォーム入力の AI 機能がローカル CLI で動きます。
モデルの選択
「文面生成用モデル」「フォーム発見判定用モデル」の候補は、使う CLI に合わせて切り替わります。
| CLI | 候補 |
|---|---|
| Claude Code | CLIの既定モデル、fable(Claude Fable 5.1)、opus(Claude Opus 5.5)、sonnet(Claude Sonnet 5.5)、haiku(最新の Claude Haiku 5.5)、claude-haiku-5-5 / claude-haiku-4-5(版を固定) |
| Codex | CLIの既定モデル と、Codex のモデルカタログにある最新のモデル(GPT-6-Astra / GPT-6-Sol / GPT-6-Luna など) |
Codex の一覧は接続テストのたびに CLI から最新を取得します。「CLIの既定モデル」を選ぶと、各 CLI 側の設定(claude の settings.json、codex の config.toml)に従います。発見判定は呼び出し回数が多いので、軽量なモデル(haiku や GPT-6-Luna)を選ぶと速くなります。
料金と制限
- CanForm 側で追加の料金はかかりません。AI の利用は各 CLI にログインしているプランの範囲で行われます。
- 月額プランには利用量の上限(一定時間あたりの回数など)があります。1 日に数百社を巡回すると上限に達することがあります。その場合は CLI 側が待ち時間を案内するか、CanForm のログに失敗として記録されます。
- API キー方式と比べて、1 回の呼び出しに数秒〜数十秒かかります。AI の呼び出しは 1 件ずつ順番に実行されるため、巡回全体の所要時間も長くなります。
- 各 CLI の利用は、それぞれのサービスの利用規約に従います。
うまくいかないとき
| 症状 | 確認すること |
|---|---|
| 「接続できません(Specified native messaging host not found)」 | セットアップコマンドを実行していない、または別の拡張機能 ID で登録している。設定画面に表示されているコマンドをもう一度実行する |
| 「claude が見つかりません」「codex が見つかりません」 | CLI がインストールされていない、または PATH に無い。ターミナルで claude --version / codex --version が動くか確認する |
| 文面生成が「ログインしてください」のような内容で失敗する | CLI にログインしていない。ターミナルで claude または codex login を実行してログインする |
| 以前は動いていたのに動かなくなった | CanForm のフォルダを移動・削除した。元に戻すか、新しい場所でセットアップコマンドを再実行する |
| macOS で接続できない | 登録後にブラウザを再起動していない。Chrome を完全に終了してから開き直す |
ネイティブメッセージングを使えない環境では、予備の手段として HTTP 中継サーバー(node bridge/canform-bridge.js)を手で起動して使えます。設定画面の「予備の手段(HTTP中継サーバー)」を開いて URL を確認してください(起動している間だけ使えます)。
登録を解除するには node bridge/setup.js --uninstall を実行します。