Claude Codeのcomputer useをCLIで有効にする手順と制約
CLIのcomputer useは/mcpで有効にするmacOS限定のリサーチプレビューです。アプリ単位の承認、1セッションずつのロック、見えないときの確認先をまとめます。
CLIのcomputer useは何ができて、どこで動くのか
Claude CodeのCLIには、Claudeにアプリを開かせ、画面を見せ、クリックや入力をさせるcomputer useがあります。Swiftアプリをビルドして起動し、全ボタンを押して結果をスクリーンショットに残す、といった作業を、コードを書いたのと同じ会話の中で完結できます。
位置づけはmacOS向けのリサーチプレビューです。ProまたはMaxプランが必要で、TeamとEnterpriseでは使えません。対話セッション専用なので、-pの非対話モードでも使えません。
用途は、GUIでしか確かめられない作業です。
- ネイティブアプリのビルドと動作確認
- Electronアプリなどのエンドツーエンドの画面テスト
- ウィンドウ幅で再現するレイアウト崩れの調査
- iOSシミュレーターやハードウェアの管理パネルなど、CLIもAPIも無いツールの操作
Desktopアプリ側のトグルと権限はDesktop Computer Useの有効化にあります。この記事はCLIだけを扱います。
有効にする手順 — /mcpでcomputer-useを選ぶ
computer useは、computer-useという名前の組み込みMCPサーバーとして提供されます。初期状態はオフです。
CLIでcomputer useを使えるようにする流れ
- 1
/mcpを開く
対話セッションで
/mcpを実行し、サーバー一覧からcomputer-useを探します。無効の状態で表示されます。 - 2
サーバーを有効にする
computer-useを選んでEnableを押します。設定はプロジェクトごとに保存されるため、使いたいプロジェクトで1回行えば足ります。 - 3
macOSの権限を2つ許可する
初めてClaudeが画面を使おうとした時点で、権限の許可を求めるプロンプトが出ます。Accessibilityはクリック・入力・スクロール用、Screen Recordingは画面の内容を見る用です。プロンプトのリンクからシステム設定を開いて両方を許可し、プロンプトのTry againを選びます。
有効化できたら、GUIが要る作業をそのまま頼みます。
Build the app target, launch it, and click through each tab to make
sure nothing crashes. Screenshot any error states you find.有効化の記録はどこに残るか
/mcpでの切り替えは、プロジェクトごとに~/.claude.jsonへ記録されます。記録先のリストは2種類あり、対象のサーバーが重なりません。
| リスト | 対象 | 効き方 |
|---|---|---|
disabledMcpServers | 対象自分で設定したサーバー、プラグインのサーバー、既定でオンの組み込みサーバーなど | 効き方載せたサーバーには接続しない |
enabledMcpServers | 対象既定でオフの組み込みサーバー(computer-useが該当) | 効き方載せたサーバーにだけ接続する |
computer-useは既定でオフなので、有効にした記録はenabledMcpServers側に入ります。2つのリストは互いを上書きしません。通常のサーバーをenabledMcpServersに書いても、computer-useをdisabledMcpServersに書いても、Claude Codeはその項目を無視します。無効化したつもりでdisabledMcpServersに書いても、computer-useには効かない点に注意が必要です。
なおcomputer-useは組み込みサーバーの予約名です。同じ名前で自前のMCPサーバーを定義すると、読み込み時にスキップされて警告が出ます。claude mcp addも予約名をエラーで弾きます。MCPサーバー全般の登録と管理はClaude CodeのMCPサーバー登録ガイドで扱っています。
アプリごとの承認はセッション単位
サーバーを有効にしても、全アプリが操作対象になるわけではありません。セッション内でClaudeが特定のアプリを初めて必要としたとき、ターミナルに承認プロンプトが出ます。表示されるのは次の3点です。
- Claudeが操作したいアプリ
- クリップボードなど、追加で求める権限
- 作業中に隠れる他のアプリの数
選択肢はAllow for this sessionとDenyです。承認は現在のセッションの間だけ続きます。Claudeが複数のアプリをまとめて要求したときは、一度に承認できます。
影響範囲の広いアプリには、プロンプトに警告が付きます。
| 警告 | 対象 |
|---|---|
| shellアクセス相当 | 対象Terminal、iTerm、VS Code、Warpなどのターミナル・IDE |
| 任意のファイルを読み書きできる | 対象Finder |
| システム設定を変更できる | 対象System Settings |
これらはブロックされず、警告を見て承認するかを決める作りです。Finderを承認すると、デスクトップやDock、Finderのウィンドウをクリックできるようになります。
操作の強さはカテゴリーで決まります。ブラウザーと取引プラットフォームは閲覧のみ、ターミナルとIDEはクリックのみ、それ以外は全操作です。ティアの全体像はDesktop版の記事にまとめてあります。
1セッションずつのロックと「in use by another Claude session」
computer useを使えるセッションは、同時に1つだけです。最初の画面操作でロックを取り、タスクが終わっても解放されません。セッションを終了したときに初めて解放されます。
ここが実運用でつまずきやすい点です。ターミナルを複数開いて別々のリポジトリでClaude Codeを並べている場合、先にcomputer useを使ったセッションが終了するまで、後のセッションは画面操作ができません。
2つ目のセッションが画面を使おうとすると、次のエラーで失敗します。
Computer use is in use by another Claude sessionエラーにはロックを持つセッションが示されます。対処は、そのセッションを終了することです。ロックを持つセッションが異常終了した場合は、プロセスがもう動いていないとClaudeが検出した時点で、ロックが自動的に解放されます。
ロックのエラーが出たときの切り分け
- Q別のターミナルでClaude Codeのセッションが動いていますか?答えが次の問いへ答えがはい
そのセッションで画面操作が済んでいるなら、
/exitなどで終了します。終了するとロックが解放されます。 - Qセッションが異常終了した覚えがありますか?答えがほかのウィンドウやタブのセッションを探します答えがはい
プロセスの停止を検出した時点でロックは自動解放されます。少し待ってからもう一度試します。
ロックが外れた
自分のセッションでもう一度、画面操作を頼みます。
画面操作の最中に起きること
動作の流れを知っておくと、介入の仕方が分かります。
画面を操作し始めると、承認していないアプリは隠れます。ターミナルのウィンドウは見えたままで、スクリーンショットには写りません。Claudeが自分の出力を画面越しに読み返さないための設計です。ターンが終わると、隠れていたアプリは自動で元に戻ります。この復元はCLIでは常にオンで、切り替えの設定はありません。
スクリーンショットは、モデルへ送る前に自動で縮小されます。16インチのMacBook Proをネイティブ解像度の3456×2234で撮ると、約1372×887になります。縦横比は保たれ、目標サイズを変える設定はありません。画面上の文字が小さくて読めないときは、ディスプレイ解像度を下げず、アプリ側の表示を大きくします。
止めたいときはEscかCtrl+Cです。ターンで最初に画面を使うとき、macOSに「Claude is using your computer · press Esc to stop.」という通知が出ます。Escはどこで押しても処理を即座に中断し、そのキー入力自体は消費されます。画面上に紛れた指示がEscでダイアログを閉じる、という使い方はできません。中断してもロックは残り、セッションを終えて初めて解放されます。
Claudeがcomputer useを選ぶ順番
computer useは最も広く使えて、最も遅い手段です。そのためClaudeは、より精密な手段を先に試します。
- 対象サービスのMCPサーバーがあれば、それを使う
- シェルコマンドで済む作業は、Bashを使う
- ブラウザー作業でClaude in Chromeを設定済みなら、それを使う
- どれにも当てはまらなければ、computer useを使う
画面操作に回るのは、ネイティブアプリ、iOSシミュレーターのようなシミュレーター、APIの無いツールです。Webの操作を任せたいなら、先にChrome拡張機能の設定を整えたほうが速く正確に動きます。
computer-useが/mcpに出てこないとき
サーバーは条件を満たす環境にだけ表示されます。次の4点を順に確かめます。
/mcpに出ない場合の確認項目
- macOSで使っていること。LinuxとWindowsのCLIでは使えない。Windowsの場合はDesktopアプリのcomputer useを使う
- ProまたはMaxプランであること。
/statusで契約を確認できる - claude.aiで認証していること。Amazon Bedrock、Google Cloud、Microsoft Foundryのようなサードパーティのプロバイダー経由だけの利用では使えない
- 対話セッションであること。
-pの非対話モードでは使えない
プロバイダー経由だけでClaudeを使っている場合は、この機能のために別のclaude.aiアカウントが必要です。
macOSの権限プロンプトが何度も出る
Screen Recordingを許可した後、macOSが要求元プロセスの再起動を求めることがあります。Claude Codeを完全に終了し、新しいセッションを始めます。それでもプロンプトが消えないときは、システム設定の「プライバシーとセキュリティ」から「画面収録」を開き、使っているターミナルアプリが一覧にあって有効になっているかを確かめます。
CLIとDesktopで違う点
CLIとDesktopは同じ実行エンジンを共有しますが、設定面に差があります。
| 項目 | Desktop | CLI |
|---|---|---|
| 対応OS | DesktopmacOSとWindows | CLImacOSのみ |
| 有効化 | Desktop設定画面のトグル | CLI/mcpでcomputer-useを有効にする |
| 拒否アプリの一覧 | Desktop設定で指定できる | CLI未対応 |
| 他アプリの自動復元 | Desktop切り替えられる | CLI常にオン |
| Dispatch連携 | DesktopDispatch経由のセッションで使える | CLI対象外 |
拒否アプリの一覧が無いのがCLI側の弱点です。承認はセッション単位のプロンプトに頼ることになるため、プロンプトに出るアプリ名を読んでから許可します。Coworkでの拒否リストの考え方はCoworkのアプリブロックリスト設定が参考になります。CLI、Desktop、Webの使い分けはClaude Code Desktopとはにあります。
安全面の前提
computer useは、サンドボックス化されたBashツールと違い、実際のデスクトップ上で、承認したアプリへのアクセスを持って動きます。Claudeは各アクションを確認し、画面上の内容からプロンプトインジェクションの兆候があれば警告します。ただし信頼の境界はサンドボックスとは別物です。
標準で入っている歯止めは次のとおりです。
- アプリごとの承認: そのセッションで承認したアプリだけを操作できる
- 危険なアプリの警告: shell、ファイル、システム設定に届くアプリは承認前に警告される
- ターミナルの除外: スクリーンショットにターミナルが写らない
Escによる中断: 押下が消費され、入力で偽装できない- ロックファイル: 同時に画面を操作できるのは1セッションだけ
ワークフロー例
公式が示す3つの頼み方を、そのまま試せます。
Build the MenuBarStats target, launch it, open the preferences window,
and verify the interval slider updates the label. Screenshot the
preferences window when you're done.macOSやiOSアプリの変更後に、コンパイルから確認までを1回で任せる使い方です。Claudeはxcodebuildを実行し、アプリを起動し、UIを操作して結果を報告します。
レイアウト崩れの調査では、ウィンドウ幅を指定した頼み方になります。
The settings modal clips its footer on narrow windows. Resize the app
window down until you can reproduce it, screenshot the clipped state,
then check the CSS for the modal container.iOSシミュレーターの操作もCLIでは画面操作で行います。
Open the iOS Simulator, launch the app, tap through the onboarding
screens, and tell me if any screen takes more than a second to load.同じ依頼をDesktopアプリに出すと、画面操作ではなくiOSシミュレーターのペインが開きます。この点はCLI固有の流れです。
まとめ
CLIで使えるかどうかは、macOS、ProまたはMax、claude.ai認証、対話セッションの4条件で決まります。有効化は/mcpから1回、承認はアプリごとにセッション単位です。複数のセッションを並べる人は、ロックの解放がセッション終了時であることを覚えておくと、エラーの原因をすぐ特定できます。