macOS 用にダウンロード
Intel と Apple Silicon 向けのユニバーサルビルド
Windows 用にダウンロード
x64 プロセッサ向け
Linux 用 Claude を入手(ベータ版)
Ubuntu と Debian 向けの apt または .deb
- diff ビューで変更をレビューしてコメントしてから、CI を通じて結果の PR を監視
- 埋め込みブラウザで実行中のアプリをプレビューし、Claude が独自の変更を検証し、外部サイトを並べて開く
- iOS Simulator ペインで iOS アプリを実行してテストする Claude を監視
- ペインを配置して、チャット、diff、ブラウザ、ターミナル、ファイルエディタを並べて表示
- セッションのコンテキストを使用するサイド質問を尋ねて、セッションを脱線させない
- Claude に他のセッションを確認、メッセージ送信、またはアーカイブさせる
- 外部ツールを接続(GitHub、Slack、Linear など)
- Claude にアプリを開いてスクリーンを制御させる
- マシン上、クラウド上、または SSH 上で実行
セッションを開始する
最初のメッセージを送信する前に、プロンプト領域で 4 つのことを設定してください:- 環境:Claude が実行される場所を選択します。ローカルマシンの場合はLocal、アプリを閉じた後も継続するクラウドセッションの場合はCloud、管理するリモートマシンの場合はSSH 接続を選択するか、Windows の場合はWSL ディストリビューションを選択します。SSH セッション内のタスクは Desktop が切断されている間も継続できますが、Claude アカウントを使用している場合は、サインインの有効期限が切れると停止することがあります。環境設定を参照してください。
- プロジェクトフォルダ:Claude が作業するフォルダまたはリポジトリを選択します。クラウドセッションの場合、複数のリポジトリを追加できます。
- モデル:送信ボタンの横のドロップダウンからモデルを選択します。セッション中にこれを変更できます。
- 権限モード:モードセレクタから Claude がどの程度の自律性を持つかを選択します。セッション中にこれを変更できます。
コードの操作
Claude に適切なコンテキストを提供し、それが独立して実行する量を制御し、変更内容を確認します。プロンプトボックスを使用する
Claude に実行させたいことを入力してEnterキーを押して送信します。Claude はプロジェクトファイルを読み取り、権限モードに基づいて変更を加えてコマンドを実行します。いつでも Claude を中断できます:停止ボタンをクリックして即座に中断するか、修正を入力してEnterキーを押して実行中のアクションを停止せずに送信します。Claude は現在のアクションが完了した後に修正を読み取り、次のステップの前に調整します。 プロンプトボックスの横の**+**ボタンをクリックすると、ファイル添付、スキル、コネクタ、およびプラグインにアクセスできます。提案されたプロンプトを受け入れる
Claude が返信した後、Code タブでは、空のプロンプトボックスに次のプロンプトの提案がグレーのテキストで表示されることがあります。Claude Code は、会話をもとに短いバックグラウンドリクエストで各提案を生成します。このリクエストはプランの使用制限または API コストにカウントされます。- 提案を使用する:Tab キーまたは Right arrow キーを押すと提案がプロンプトボックスに配置されます。必要に応じて編集してから、Enter キーを押して送信します。提案を受け入れる前に Enter キーを押しても、提案は送信されません。
- 独自のプロンプトを書く:入力を開始します。提案は、プロンプトボックスが空で、添付ファイルがない場合にのみ表示されます。
ファイルとコンテキストをプロンプトに追加する
プロンプトボックスは外部コンテキストを取り込む 2 つの方法をサポートしています:- @mention ファイル:
@の後にファイル名を入力して、ファイルを会話コンテキストに追加します。Claude はそのファイルを読み取り、参照できます。@mention はクラウドセッションおよび WSL セッションでは利用できません。 - ファイルを添付:添付ボタンを使用するか、ファイルをプロンプトに直接ドラッグアンドドロップして、画像、PDF、およびその他のファイルをプロンプトに添付します。これはバグのスクリーンショット、デザインモックアップ、または参照ドキュメントを共有するのに便利です。
権限モードを選択する
権限モードは、セッション中に Claude がどの程度の自律性を持つかを制御します:ファイルの編集、コマンドの実行、またはその両方の前に確認するかどうかです。送信ボタンの横のモードセレクタを使用して、いつでも権限モードを切り替えることができます。各変更を自分で承認するには、Manual に切り替えます。 新しいローカルセッションのデフォルトモードを設定するには、設定ファイルにpermissions.defaultModeを追加します。デスクトップアプリは CLI と同じ設定ファイルを読み取ります。セレクタで選択したモードはフォルダごとに記憶され、そのフォルダのdefaultModeより優先されます。ただし Plan は現在のセッションにのみ適用されます。
Code タブの以前のバージョンでは、これらのモードを Ask permissions、Auto accept edits、および Plan mode というラベルが付けられていました。
dontAsk権限モードはCLIでのみ利用可能です。
クラウドセッションは Accept edits、Plan、および Auto をサポートしています。Accept edits はdefaultモードに対応しています:クラウドセッションはファイル編集を事前に承認するため、セレクタは Manual ではなく Accept edits を表示します。Bypass permissions はクラウドセッションでは利用できません。自己ホスト環境のセッションを含みます。
エンタープライズ管理者は利用可能な権限モードを制限できます。詳細については、エンタープライズ設定を参照してください。
auto モードの利用可否
auto モードは Anthropic API のすべてのユーザーが利用でき、Claude Opus 4.6 以降、Sonnet 4.6 以降、Haiku 5.5、またはFable モデルが必要です。組織管理者は管理設定のdisableAutoModeキーで auto モードをオフにできます。
Desktop を Google Cloud の Agent Platform にルーティングする Enterprise デプロイでも、auto モードはデフォルトで利用可能です。サポートされているモデルについては、Bedrock、Agent Platform、または Foundry での auto モードの有効化を参照してください。
アプリをプレビューする
Claude は dev サーバーを起動し、Browser ペインで開いて変更を確認できます。これはフロントエンド Web アプリとバックエンドサーバーの両方で機能します:Claude は API エンドポイントをテストし、サーバーログを表示し、見つけた問題を反復処理できます。ほとんどの場合、Claude はプロジェクトファイルを編集した後、サーバーを自動的に起動します。いつでも Claude にプレビューを要求することもできます。デフォルトでは、Claude は編集後に変更を自動検証します。 Browser ペインは、プロジェクトから静的 HTML ファイル、PDF、画像、およびビデオを開くこともできます。チャットで HTML、PDF、画像、またはビデオパスをクリックして、Browser ペインで開きます。SSH セッションでは、Claude は Browser ペインのツールを利用できないため、Browser ペインでアプリを開くことができません。アプリを自分で確認するには、そのポートをコンピューターに転送します。
- Browser ペインで実行中のアプリと直接対話する
- Claude が自動的に独自の変更を検証するのを監視する:スクリーンショットを撮影し、DOM を検査し、要素をクリックし、フォームに入力し、見つけた問題を修正します
- Browser ペインのヘッダーにある Dev servers メニューから、サーバーを開始または停止する、またはすべてのサーバーを一度に停止する
- Browser ペインの ⋮ メニューにある Keep cookies で、アプリを終了した後も Browser がクッキーを保持するかどうかを選択し、開発中に再度サインインする必要がないようにする
.claude/launch.jsonを編集してセットアップに合わせます。完全なリファレンスについては、プレビューサーバーを設定するを参照してください。
Browser の保存データをクリアするには、Browser ペインの ⋮ メニューで Clear browsing data を選択します。Browser を完全にオフにするには、Settings > Claude Code で Browser tools をオフにします。
外部サイトを閲覧する
Browser ペインはタブ付きブラウザなので、ドキュメント、issue トラッカー、または実行中のアプリの横に他のサイトを開くことができます。Browser を開くには、macOS でCmd+Shift+B、Windows でCtrl+Shift+Bを押すか、セッションのタイトルバーにある Browser をクリックします。Google OAuth などのポップアップサインインフローを含め、ペイン内でサイトにサインインできます。 チャットで外部リンクを初めてクリックすると、リンクを Browser ペインで開くかデフォルトのブラウザで開くかを尋ねるダイアログが表示されます。後で選択を変更するには、Browser ペインの ⋮ メニューにある Open links in built-in browser を使用します。macOS で Cmd キーを押しながらクリックするか、Windows で Ctrl キーを押しながらクリックすると、デフォルトのブラウザでリンクが直接開きます。 Claude はアプリを検証するために使用するのと同じツールを使用して外部ページを読み取り、対話できます。2 つの追加の安全チェックがあります:- 安全分類器は、すべての権限モードで、クリックやタイピングなど、外部ページでの Claude の書き込みアクションを確認します。これらはauto モードが使用するのと同じ分類器であり、分類器がアクションを警告した場合、モードに関係なく権限プロンプトが表示されます。
- Auto および Bypass permissions 以外の権限モードでは、Claude が新しいサイトに移動する前にドメイン許可リストチェックも適用されます。
サイトで Claude のアクションを承認する
Claude が外部サイトで初めてアクションを実行すると、権限カードが表示され、Claude は選択を待ちます:Allow once、Always allow、またはDeny。Allow onceは何も保存せずにアクションを承認します。Always allowはそのサイトの承認をデバイスに保存し、Settings で取り消すことができます。サブドメインを含む各サイトは独自の承認が必要です。ローカル dev サーバーとプロジェクトファイルは承認が不要なため、auto-verifyはプロンプトなしで機能し続けます。 承認されたサイトでも、Claude はユーザーの入力なしに商品を購入したり、アカウントを作成したり、CAPTCHA をバイパスしたりしません。Browser ペインでの閲覧は、Claude in Chrome 拡張機能と同じ安全モデルを使用します。Claude が機密サイトとリスクのあるアクションをどのように処理するかについては、Claude in Chrome を安全に使用するを参照してください。Browser と Chrome 拡張機能を選択する
Browser ペインは、個人用ブラウザとは別の、保存されたログインや履歴がないクリーンなブラウザプロファイルを使用します。アプリの構築とテスト、および ID が不要なサイトに使用します。Claude がログイン済みセッションでユーザー本人として機能するようにしたい場合は、代わりにブラウザのログイン状態を共有するClaude in Chrome 拡張機能を使用します。組織の外部閲覧を制限する
Browser は、Claude in Chrome 拡張機能と同じサイト許可リストとブロックリストコントロールに従います。組織が既に拡張機能用にこれらのリストを設定している場合、Browser は自動的にそれらを尊重します。管理者は、browserExternalPageTools管理設定で外部ページの Claude のツールをオフにすることもできます。ツールが無効になっている場合、ユーザーは外部サイトに移動できます。Claude のツールはそれらを読み取ったり、アクションを実行したりできません。
外部閲覧を完全に無効にするには、disableBrowserExternalNavigation管理設定をtrueに設定します。これは Browser 内のすべての外部ナビゲーションをブロックします。組織の許可リストのサイトを含みます。localhost dev サーバーとファイルプレビューは機能し続けます。browserExternalPageToolsを使用して、ユーザーが Claude のツールなしで外部サイトの閲覧を続けられるようにし、disableBrowserExternalNavigationを使用して、ユーザーと Claude の両方に対して外部サイトをブロックします。
差分ビューで変更を確認する
Claude がコードに変更を加えた後、差分ビューを使用して、プルリクエストを作成する前にファイルごとに変更を確認できます。 Claude がファイルを変更すると、+12 -1などの追加および削除された行数を示す差分統計インジケータが表示されます。このインジケータをクリックして差分ビューアを開きます。左側にファイルリストが表示され、右側に各ファイルの変更が表示されます。
特定の行にコメントするには、差分内の任意の行をクリックしてコメントボックスを開きます。フィードバックを入力してEnterキーを押してコメントを追加します。複数の行にコメントを追加した後、すべてのコメントを一度に送信します:
- macOS:Cmd+Enterを押す
- Windows:Ctrl+Enterを押す
コードを確認する
コミット前に Claude に変更をレビューさせるには、プロンプトボックスに/code-review と入力します。レビューが完了すると、結果が会話に表示されます。
ローカル、SSH、および WSL セッションでは、結果はファイルごとにグループ化された Code review カードとして表示されます。カードを使用して結果に対応します:
- Walk through in diff をクリックすると、差分ビューが開き、結果を 1 つずつ確認できます。現在の差分内の結果は該当する行に表示され、そこで Fix this one をクリックするか、結果を却下できます。
- Apply fixes をクリックすると、まだ未対応の結果を修正するよう Claude に依頼します。
/code-review が確認する内容と受け付ける引数については、/code-review でローカルにレビューするを参照してください。
プルリクエストステータスを監視する
プルリクエストを開いた後、CI ステータスバーがセッションに表示されます。Claude Code は GitHub CLI を使用してチェック結果をポーリングし、失敗を表示します。- Auto-fix CI & address comments:有効にすると、Claude は失敗出力を読み取り、反復することで、失敗した CI チェックを自動的に修正しようとします。ローカルセッションでは、ユーザー以外の人が残した新しいレビューコメントにも Claude が対応します。対象となるのは、コメントの作成者がリポジトリのオーナー、組織のメンバー、コラボレーター、または GitHub App である場合です。
- Auto-merge when ready:有効にすると、Claude はすべてのチェックが成功したら PR をマージします。マージ方法はスカッシュです。先に GitHub リポジトリ設定で auto-merge を有効にしてください。有効になっていない場合、Claude は PR をマージできません。
PR 監視には、GitHub CLI(
gh)がマシンにインストールされ、認証されている必要があります。ghがインストールされていない場合、Desktop は PR を作成しようとする最初の時点でインストールを促します。SSH セッションでは、Claude はリモートマシン上でブランチをプッシュし、gh pr create を実行するため、Create PR をクリックする前にリモートマシンで git と gh をセットアップしてください。SSH セッションでは Desktop がインストールを促さないため、gh はリモートマシンに自分でインストールしてください。その後、リモートマシンで git push が機能すること、および gh auth status がログイン済みであると報告することを確認してください。ワークスペースを配置する
Code タブはペインを任意のレイアウトで配置できるように構築されています:チャット、diff、ブラウザ、ターミナル、ファイル、プラン、タスク、およびサブエージェント。macOS では iOS Simulator も含まれます。ペインをヘッダーでドラッグして位置を変更するか、ペインエッジをドラッグしてサイズを変更します。macOS ではCmd+\を、Windows ではCtrl+\を押してフォーカスされたペインを閉じます。セッションのタイトルバーにあるTerminal、Changes、またはBrowserをクリックすると、ターミナル、diff、またはブラウザペインが開きます。その横にある**⋮メニューからはFiles**などの追加のペインを開くことができ、ウィンドウの幅が狭くてこれらのボタンを表示できない場合は、ボタンもこのメニューに格納されます。 複数の画面で作業するには、diff やターミナルなどのペインをポップアウトして独立したウィンドウにし、完了したらドックバックします。Claude はメインウィンドウで作業を続けます。このセクションのペインレイアウト、ターミナル、ファイルエディタ、およびビューモードには Claude Desktop v1.2581.0 以降が必要です。macOS ではClaude → Check for Updatesを、Windows ではHelp → Check for Updatesを開いて更新してください。
ターミナルでコマンドを実行する
統合ターミナルを使用すると、別のアプリに切り替えることなく、セッションと並行してコマンドを実行できます。セッションのタイトルバーにあるTerminalをクリックするか、macOS または Windows でCtrl+`を押します。ターミナルはセッションの作業ディレクトリで開き、Claude と同じ環境を共有するため、npm testやgit statusなどのコマンドは Claude が編集しているのと同じファイルを見ます。2 番目のターミナルタブを開くには、ターミナルペインヘッダーの+をクリックするか、チャットのフォルダを右クリックしてOpen in terminalを選択します。
ターミナルはローカルおよび SSH セッションで利用可能ですが、Windows リモートマシンでは制限があります。
ファイルを開いて編集する
チャットまたは diff ビューアのファイルパスをクリックして、ファイルペインで開きます。HTML、PDF、画像、およびビデオパスは代わりにブラウザペインで開きます。スポット編集を行い、Saveをクリックして書き戻します。ファイルを開いてからディスク上で変更された場合、ペインは警告を表示し、上書きまたは破棄できます。Discardをクリックして編集を元に戻すか、ペインヘッダーのパスをクリックして絶対パスをコピーします。 ファイルペインはローカルおよび SSH セッションで利用可能です。クラウドセッションの場合、Claude に変更を加えるよう依頼します。ファイルを他のアプリで開く
チャット、diff ビューア、またはファイルペイン内のファイルパスを右クリックしてコンテキストメニューを開きます:- Attach as context:ファイルを次のプロンプトに追加
- Open in:VS Code、Cursor、Zed などのインストール済みエディタでファイルを開く
- Show in Finder(macOS)、Show in Explorer(Windows):含まれるフォルダを開く
- Copy path:絶対パスをクリップボードにコピー
ビューモードを切り替える
ビューモードは、チャットトランスクリプトに表示される詳細の量を制御します。ビューモードを切り替えるには、セッションタイトルの横のキャレットからセッションメニューを開いてTranscript viewを選択するか、macOS または Windows でCtrl+Oを押してモードをサイクルします。Thinking モードは、表示しているセッションで Claude が思考を生成した後にのみメニューに表示されます。
ツール呼び出しがまだ折りたたまれた状態で Claude の推論を追跡するには Thinking を使用します。Claude が特定のアクションを実行した理由をデバッグするときは Verbose を使用します。Claude Desktop v1.46388.1 より前のバージョンは Summary モードもリストしており、Summary に設定されたセッションは更新後に Normal で開きます。
キーボードショートカット
macOS でCmd+/を、Windows でCtrl+/を押して、Code タブで利用可能なすべてのショートカットを表示します。Windows では、以下のショートカットに対してCmdの代わりにCtrlを使用します。セッションサイクリング、ターミナルトグル、およびビューモードトグルはすべてのプラットフォームでCtrlを使用します。
これらのショートカットは Code タブに適用されます。Desktop では、ターミナルのインタラクティブモードとは異なり、
Shift+Tabで権限モードをサイクルすることはできません。
使用状況を確認する
モデルピッカーの横の使用状況リングをクリックして、現在のコンテキストウィンドウ使用状況と期間中のプラン使用状況を確認します。コンテキスト使用状況はセッションごと、プラン使用状況はすべての Claude Code サーフェス全体で共有されます。Claude にコンピュータを使用させる
コンピュータ使用により、Claude はアプリを開き、スクリーンを制御し、あなたがするのと同じ方法でマシンで直接作業できます。CLI がないデスクトップツールと対話するよう Claude に依頼したり、GUI を通じてのみ機能する何かを自動化したりしてください。iOS アプリの実行とテストの場合、Desktop はスクリーン制御の代わりに専用の iOS Simulator ペインを開きます。このペインはコンピュータ使用を有効にしなくても機能します。コンピュータ使用は macOS と Windows の研究プレビューであり、Pro または Max プランが必要です。Team または Enterprise プランでは利用できません。Claude Desktop アプリが実行されている必要があります。
コンピュータ使用が適用される場合
Claude はアプリまたはサービスと対話するための複数の方法を持ち、コンピュータ使用は最も広範で最も遅いです。最も正確なツールを最初に試します:- サービスのコネクタがある場合、Claude はコネクタを使用します。
- タスクがシェルコマンドの場合、Claude は Bash を使用します。
- タスクがブラウザ作業であり、Chrome の Claudeがセットアップされている場合、Claude はそれを使用します。
- タスクが iOS アプリの実行またはテストの場合、Claude は iOS Simulator ペインを使用します。これはスクリーン制御を使用しません。
- これらのいずれも適用されない場合、Claude はコンピュータ使用を使用します。
コンピュータ使用を有効にする
コンピュータ使用はデフォルトでオフです。それが必要な何かをするよう Claude に依頼し、それがオフの場合、Claude は Settings でコンピュータ使用を有効にすれば、タスクを実行できることを伝えます。1
デスクトップアプリを更新する
Claude Desktop の最新バージョンがあることを確認してください。macOS と Windows では、claude.com/downloadでダウンロードまたは更新してください。Linux では、パッケージマネージャーを通じて更新してください(手順)。その後、アプリを再起動します。
2
トグルをオンにする
デスクトップアプリで、Settings > This computer > System に移動します。Computer use の下で Enable computer use をオンにします。Windows では、トグルはすぐに有効になり、セットアップは完了です。macOS では、次のステップに進みます。トグルが表示されない場合は、macOS または Windows で Pro または Max プランを使用していることを確認してから、アプリを更新して再起動します。
3
macOS 権限を付与する
macOS では、トグルが有効になる前に 2 つのシステム権限を付与します:
- Accessibility:Claude がクリック、入力、スクロールできるようにします
- Screen Recording:Claude がスクリーンに表示されているものを見ることができるようにします
アプリ権限
Claude が初めてアプリを使用する必要がある場合、セッションにプロンプトが表示されます。Allow for this sessionまたはDenyをクリックします。承認は現在のセッション、またはDispatch が生成したセッションでは 30 分間有効です。 プロンプトは、Claude がそのアプリに対して取得するコントロールのレベルも表示します。これらの層はアプリカテゴリによって固定され、変更できません:
Terminal、Finder または File Explorer、System Settings または Settings などの広範なリーチを持つアプリは、承認が何を付与するかを知るようにプロンプトに追加の警告を表示します。
Settings > This computer > System の Computer use セクションには、次のオプションがあります:
- Denied apps:ここにアプリを追加して、プロンプトなしで拒否します。Claude は許可されたアプリのアクションを通じて拒否されたアプリに間接的に影響を与える可能性がありますが、拒否されたアプリと直接対話することはできません。
- Unhide apps when Claude finishes:Claude が作業している間、他のウィンドウは非表示になり、承認されたアプリのみと対話します。Claude が完了すると、この設定をオフにしない限り、非表示のウィンドウが復元されます。
セッションを管理する
各セッションは独立した会話であり、独自のコンテキストと変更があります。複数のセッションを並列で実行するか、サイドチャットを分岐させるか、Claude に他のセッションをチェックしてメッセージを送信させるか、作業をクラウドに送信するか、Dispatch にセッションを電話から開始させることができます。セッションで並列に作業する
サイドバーの**+ New sessionをクリックするか、macOS でCmd+Nを、Windows でCtrl+Nを押して、複数のタスクを並列で作業します。Ctrl+TabとCtrl+Shift+Tabを押してサイドバーのセッションをサイクルします。Git リポジトリの場合、ブランチ名の横のworktree**オプションを選択すると、Git worktreesを使用して、セッションにプロジェクトの独立した分離コピーを与えることができます。 2 つのセッションを同時に表示するには、macOS でCmdを、Windows でCtrlを押しながらサイドバーのセッションをクリックします。セッションは既に開いているセッションの横の 2 番目のペインで開きます。分割がアクティブな間、別のサイドバーセッションをクリックすると、フォーカスがあるペインが置き換わります。macOS で**Cmd+\を、Windows でCtrl+\**を押して、フォーカスされたペインを閉じて、単一のセッションに戻ります。 Worktrees はデフォルトで<project-root>/.claude/worktrees/に保存されます。これはカスタムディレクトリに変更できます:
- ローカルセッション:Settings > Claude Code で Worktree location を設定します
- SSH セッション:SSH 接続で Worktree folder を設定します
.envなど)を新しい worktrees に含めるには、プロジェクトルートに.worktreeincludeファイルを作成します。worktree セッションがプロジェクト設定、フック、スキルをどこから読み取るかについては、worktree がメインのチェックアウトと共有するものを参照してください。
サイドバーの上部のコントロールを使用して、ステータス、プロジェクト、または環境でセッションをフィルタリングし、プロジェクトでセッションをグループ化します。セッション名を変更するには、アクティブセッションの上部のツールバーのセッションタイトルをクリックします。
コンテキスト使用状況を確認するには、使用状況を確認するを参照してください。コンテキストがいっぱいになると、Claude は自動的に会話を要約して作業を続けます。
/compactを入力して要約をより早くトリガーし、コンテキストスペースを解放することもできます。コンテキストウィンドウを参照して、圧縮がどのように機能するかについての詳細を確認してください。
デスクトップアプリは、Code セッションがタスクを完了し、現在そのセッションを表示していない場合に OS 通知を送信します。プロジェクトに属するセッションの場合、代わりにプロジェクトの通知を受け取ります。
メインセッションを脱線させずにサイドクエスチョンを尋ねる
サイドチャットを使用すると、セッションのコンテキストを使用するが、メインの会話に何も追加しない質問を Claude に尋ねることができます。コードの一部を理解したい、仮定を確認したい、またはセッションを脱線させずにアイデアを探索したい場合に使用します。 macOS で**Cmd+;を、Windows でCtrl+;**を押してサイドチャットを開くか、プロンプトボックスで/btwを入力します。サイドチャットはその時点までのメインスレッドのすべてを読み取ることができます。完了したら、サイドチャットを閉じてメインセッションを続行します。
サイドチャットはローカル、SSH、および WSL セッションで利用可能です。デスクトップアプリはサイドチャットをディスクに保存しないため、アプリを閉じた後に戻ることはできません。
バックグラウンドタスクを監視する
タスクペインは、現在のセッション内で実行されているバックグラウンド作業を表示します:サブエージェント、バックグラウンドシェルコマンド、および動的ワークフロー。セッションにバックグラウンド作業がある場合は、タイトルバーの ⋮ メニューにある Background tasks からペインを開きます。 任意のエントリをクリックして、サブエージェントペインで出力を確認するか、停止します。他のセッションが何をしているかを確認するには、サイドバーを使用するか、Claude にそれらをチェックしてもらうことができます。セッション間で作業する
Claude は他の Code タブセッションをリストアップし、各セッションが何をしてきたかを読み取り、セッション間でメッセージを送信できます。平易な言語で尋ねてください:「どのセッションが認証リファクタリングに触れましたか?」、「API セッションは何を結論づけましたか?」、または「支払いセッションにスキーマが変更されたことを伝えてください」。また、Claude にセッションの名前変更またはアーカイブを依頼することもできます。Claude はサイドバーのアーカイブアイコンと同じ方法でセッションをアーカイブするため、PR がマージされたセッションをクリーンアップするよう依頼してください。 このサーフェスを通じて、Claude はデスクトップアプリが自身で実行するセッションのみを見ます:ローカル、SSH、および Code タブのWSLセッション。Claude はクラウドセッション、またはターミナル CLI または VS Code 拡張機能から開始したセッションを見ません。同じプロジェクトの worktrees にあっても見ません。そのため、9 つのターミナル worktrees が開いていて 2 つのデスクトップセッションがある場合、それらの 1 つで回答する Claude は他の 1 つのデスクトップセッションを報告します。Claude は質問しているセッションをリストアップしません。デフォルトでは、最近アクティブな 20 個のセッションを見て、アーカイブされたセッションをスキップします。ただし、それらを要求する場合を除きます。クロスセッションメッセージングは、Claude が他の Claude Code セッション(ターミナルセッションを含む)にメッセージを送信することを別途許可します。 Claude がこのサーフェスを通じて別のセッションにメッセージを送信する場合、Claude Code はそこにカードとして表示され、送信セッションのタイトルでラベル付けされ、戻るリンクが付いているため、メッセージがどこから来たかを常に知ることができます。受信セッションがタスクの途中にある場合、Claude Code はメッセージを保持し、Claude は現在の作業が完了したら読み取ります。受信する Claude は返信でき、Claude Code はこのサーフェスを通じて返信を配信します。Claude はアーカイブされたセッションに配信できず、メッセージが届かない場合は通知します。 Claude Code はセッション間で 4 つの安全動作を適用します:- Claude がセッションをアーカイブする前に承認カードが表示されます。ただし、auto モードと Bypass permissions モードでは、Claude は承認カードなしでセッションをアーカイブできます。確認を求められるようにするには、Manual に切り替えてください。
- このサーフェスを通じて、Claude はスケジュールタスクの実行など、誰も見ていないセッションからクロスセッションメッセージを送信できず、そのようなセッションにメッセージを配信することもできません。
- Claude Code は、受信セッションがクロスセッションメッセージング自体を持たない場合でも、このサーフェスからの各メッセージを受信セッションのインバウンドコントロールに対してチェックします。受信セッションで
crossSessionInboundをrefuseに設定した場合、Claude Code はこのサーフェスからのメッセージをドロップします。Claude Code は拒否を Claude デスクトップアプリに報告します。v2.1.234 より前では、Claude Code はこのサーフェスからクロスセッションメッセージングを持たない受信セッションへのすべてのメッセージをドロップしました。 - Claude Code は各受信メッセージを引用して送信元のセッションを明示し、Claude はメッセージに基づいて行動する際も受信セッション自体の権限設定に従います。
長時間実行されるタスクをクラウドで実行する
大規模なリファクタリング、テストスイート、マイグレーション、またはその他の長時間実行されるタスクの場合、セッションを開始するときにLocalの代わりにCloudを選択します。クラウドセッションはデフォルトで Anthropic が管理するインフラストラクチャで実行され、アプリを閉じたりコンピュータをシャットダウンしたりしても続行します。いつでも戻ってきて進捗を確認するか、Claude を別の方向に導くことができます。claude.ai/codeまたはClaude モバイルアプリからクラウドセッションを監視することもできます。 クラウドセッションは複数のリポジトリもサポートしています。クラウド環境を選択した後、選択されたリポジトリの横の**+**ボタンをクリックして、セッションに追加のリポジトリを追加します。各リポジトリは独自のブランチセレクタを取得します。これは共有ライブラリとそのコンシューマーの更新など、複数のコードベースにまたがるタスクに便利です。 クラウドセッションがどのように機能するかについての詳細については、クラウドで Claude Code を使用するを参照してください。1 つの作業本体が多くのクラウドセッションを必要とする場合、サイドバーでProjectsを選択してプロジェクトを作成します。Claude はそこから 1 つの会話でセッションを開始して追跡します。SSH セッションのタスクも Desktop が切断されている間も実行を続けることができますが、Claude アカウントを使用している場合は、サインインの有効期限が切れると停止することがあります。
別のサーフェスで続行する
セッションを別の場所で続行するには、セッションタイトルの横のキャレット、またはサイドバーのセッションの行からセッションメニューを開き、Open inを選択します:- Cloudを選択すると、会話を要約として引き継いだうえで、セッションをクラウドセッションとして続行します。確定する前に、ファイルも移動するかどうか、およびクラウドセッションの準備ができた時点でこのセッションがアーカイブされるかどうかがダイアログに表示されます。SSH 経由または WSL で実行されるセッションは、この方法で移動できません。
- インストール済みのエディタまたはファイルマネージャーを選択すると、セッションのディスク上のフォルダをそこで開きます。
他のデバイスに表示するセッションを制御する
ローカルセッションは、Remote Control によって接続されると、他のデバイスに表示されます。接続されたセッションは、claude.ai/code のセッションリストと、claude.ai アカウントにサインインしているデバイス上の Claude アプリに表示されます。 ローカルセッションは、そのセッションで Remote Control をオンにしたとき、または開始時に自動的に接続されるときに接続されます:- そのセッションでオンにする:セッションの Remote Control スイッチを使用するか、プロンプトボックスに
/remote-controlと入力します。 - 開始時に接続される:Settings > Claude Code で Connect new sessions to Remote Control がオンの間、新しいセッションは自動的に接続されます。この設定を一度も変更していない場合、Desktop はユーザー設定または管理設定の
remoteControlAtStartupに従い、次に組織のデフォルトに従います。
- 1 つのセッション:そのセッションの Remote Control スイッチをオフにします。開始時に接続されたセッションで
/remote-controlと入力すると、Remote Control はオンのままとなり、Remote Control is already on. This session connected automatically when it started.と表示されます。切断するには、その行の Turn off をクリックします。 - このコンピュータ上の新しい Desktop セッション:Settings > Claude Code で Connect new sessions to Remote Control をオフにします。すでにオフと表示されている場合は、一度オンにしてからオフにすると、Desktop が選択を保存します。保存されると、
remoteControlAtStartupおよびデフォルトよりも優先されます。 - CLI を含む、このコンピュータ上のすべてのセッション:
~/.claude/settings.jsonでdisableRemoteControlをtrueに設定すると、セッションが接続されなくなります。ファイルを保存した時点ですでに接続されていたセッションは、そのセッションで Remote Control をオフにするまで接続されたままです。
Dispatch からのセッション
Dispatchは、Coworkタブに存在する Claude との永続的な会話です。Dispatch にタスクをメッセージで送信すると、それをどのように処理するかを決定します。 タスクは 2 つの方法で Code セッションになります:「Claude Code セッションを開いてログインバグを修正する」など直接要求するか、Dispatch がタスクが開発作業であると判断して自動的に生成するかです。通常 Code にルーティングされるタスクには、バグの修正、依存関係の更新、テストの実行、またはプルリクエストの作成が含まれます。リサーチ、ドキュメント編集、スプレッドシート作業は Cowork に留まります。 どちらの方法でも、Code セッションは Code タブのサイドバーにDispatchバッジ付きで表示されます。完了したときまたは承認が必要なときに、電話でプッシュ通知を受け取ります。 コンピュータ使用が有効な場合、Dispatch が生成した Code セッションもそれを使用できます。これらのセッションのアプリ承認は 30 分後に期限切れになり、通常の Code セッションのようにセッション全体を続けるのではなく、再度プロンプトが表示されます。 セットアップ、ペアリング、Dispatch 設定については、Dispatch ヘルプ記事を参照してください。Dispatch には Pro または Max プランが必要であり、Team または Enterprise プランでは利用できません。 Dispatch は、ターミナルから離れているときに Claude で作業する複数の方法の 1 つです。他のオプションとの比較については、プラットフォームと統合を参照してください。Claude Code を拡張する
外部サービスを接続し、再利用可能なワークフローを追加し、Claude の動作をカスタマイズし、プレビューサーバーを設定します。コネクタ、スキル、プラグインを 1 か所で管理するには、サイドバーのCustomizeをクリックします。Desktop アプリの Cowork タブは、CLI の~/.claude ディレクトリではなく、この Customize 設定からスキル、プラグイン、コネクタをソースとし、claude.ai アカウント経由で同期します。
Claude Code はまた、同じアカウントでサインインしたターミナルセッションで、claude.ai アカウント用に有効化されたスキルとプラグインもロードします。claude.ai から同期されたスキルおよび claude.ai から同期されたプラグインを参照してください。
外部ツールを接続する
ローカルおよび SSH セッションの場合、プロンプトボックスの横の**+ボタンをクリックしてConnectorsを選択し、Google Calendar、Slack、GitHub、Linear、Notion などの統合を追加します。セッションの前または中にコネクタを追加できます。+**ボタンはクラウドセッションおよび WSL セッションでは利用できませんが、ルーチンはルーチン作成時にコネクタを設定します。 コネクタを管理または切断するには、デスクトップアプリの Settings → Connectors に移動するか、プロンプトボックスの Connectors メニューからManage connectorsを選択します。 接続すると、Claude はカレンダーを読み取り、メッセージを送信し、問題を作成し、ツールと直接対話できます。セッションで設定されているコネクタについて Claude に尋ねることができます。 コネクタは MCP サーバーであり、グラフィカルセットアップフローを備えています。サポートされているサービスとの迅速な統合に使用します。Connectors にリストされていない統合の場合、設定ファイルを介して MCP サーバーを手動で追加します。また、カスタムコネクタを作成することもできます。スキルを使用する
スキルは Claude ができることを拡張します。Claude は関連する場合に自動的にロードするか、直接呼び出すことができます:プロンプトボックスで/ を入力するか、+ボタンをクリックしてSlash commandsを選択して、利用可能なものを参照します。これには 組み込みコマンド、カスタムスキル、コードベースからのプロジェクトスキル、および インストール済みプラグインからのスキルが含まれます。1 つを選択すると、入力フィールドで強調表示されます。その後にタスクを入力して、通常どおり送信します。
Claude が作業中でも、他のメッセージと同じようにコマンドを送信でき、ターンが終了するとセッションはアイドル状態に戻ります。
ローカルセッションは ~/.claude/skills/ からパーソナルスキルをロードします。SSH セッションは、マシンからではなく、リモートホストのホームディレクトリから ~/.claude/skills/ を読み取ります。
ローカルおよびクラウドセッションは、claude.ai アカウント用に有効化されたスキルもロードします。ただし、組織が disableSideloadFlags を設定している場合、ローカルセッションはそれらをロードしません。クラウドセッションは、Cowork およびクラウドセッションのスキルで説明されているように、~/.claude/skills/ の代わりにそれらをロードします。
プラグインをインストールする
プラグインは、スキル、エージェント、hooks、MCP サーバー、および LSP 設定を Claude Code に追加する再利用可能なパッケージです。ターミナルを使用せずにデスクトップアプリからプラグインをインストールできます。 ローカルおよび SSH セッションの場合、プロンプトボックスの横の**+ボタンをクリックしてPluginsを選択して、インストール済みプラグインとそのスキルを確認します。プラグインを追加するには、サブメニューからAdd plugin**を選択してプラグインブラウザを開きます。これは、公式 Anthropic マーケットプレイスを含む、設定された マーケットプレイスから利用可能なプラグインを表示します。Manage pluginsを選択して、プラグインを有効化、無効化、またはアンインストールします。 プラグインはユーザーアカウント、特定のプロジェクト、またはローカルのみにスコープできます。組織がプラグインを一元管理する場合、それらのプラグインは CLI と同じ方法で Desktop セッションで利用可能です。ただし、デスクトップアプリがdisableSideloadFlags の下で保留しているものは除きます。
プラグインブラウザはクラウドセッションでは利用できず、デスクトップアプリからインストールしたプラグインはクラウドセッションでは利用できません。クラウドセッションでもプラグインをインストールしません。リポジトリの .claude/settings.json で宣言されているプラグインは、セットアップから引き継がれるもので説明されているとおりです。プラグインは WSL セッションでは利用できません。プラグインの作成を含む完全なプラグインリファレンスについては、プラグインを参照してください。
プレビューサーバーを設定する
Claude は dev サーバーセットアップを自動的に検出し、セッションを開始するときに選択したフォルダのルートの.claude/launch.json に設定を保存します。Preview はこのフォルダを作業ディレクトリとして使用するため、親フォルダを選択した場合、独自の dev サーバーを持つサブフォルダは自動的に検出されません。サブフォルダのサーバーで作業するには、そのフォルダで直接セッションを開始するか、設定を手動で追加します。
サーバーの起動方法をカスタマイズするには(たとえば npm run dev の代わりに yarn dev を使用する、ポートを変更するなど)、.claude/launch.json を編集します。ファイルはコメント付き JSON をサポートしています。
変更を自動検証する
autoVerify が有効な場合、Claude はファイルを編集した後、コード変更を自動的に検証します。スクリーンショットを撮影し、エラーをチェックし、応答を完了する前に変更が機能することを確認します。
Auto-verify はデフォルトで有効です。.claude/launch.json に "autoVerify": false を追加してプロジェクトごとに無効にするか、Browser ペインの**⋮メニューでAuto-verify changes**をオフにします。
設定フィールド
configurations 配列の各エントリは、以下のフィールドを受け入れます:
runtimeExecutable を runtimeArgs と共に使用して、パッケージマネージャーを通じて dev サーバーを起動します。たとえば、"runtimeExecutable": "npm" と "runtimeArgs": ["run", "dev"] は npm run dev を実行します。
node で直接実行したいスタンドアロンスクリプトがある場合は program を使用します。たとえば、"program": "server.js" は node server.js を実行します。args で追加フラグを渡します。
デフォルトでは、プレビューは http://localhost:<port> を開きます。サーバーが別のアドレスを必要とする場合は url を設定します。一般的なケースは、ローカル HTTPS が必要なサーバー、*.localhost サブドメインを使用するアプリ、およびリダイレクトを通じてサインインするアプリです。
localhost、任意の *.localhost サブドメイン、127.0.0.1、および ::1 が含まれます。セキュリティのため、localhost url はサーバーのオリジンのみである必要があります。パスやクエリはなく、ポートはエントリのポートと一致する必要があります。特定のページを表示するには、プレビューが開いた後、Claude にそこに移動するよう依頼します。パス、クエリ、または一致しないポートを持つ localhost url は、url を名前付けして修正を表示する設定エラーとして報告されます。
他のアドレスの場合、Desktop はプレビューが初めてそれを開くときに許可を求めます。これは、プレビューで新しいサイトを閲覧するときと同じです。外部アドレスはパスを含む場合があります。Always allowを選択して、将来そのサイトのプロンプトをスキップします。プレビューで外部サイトを制限する組織ポリシーは引き続き適用されます。
既に自分で実行しているサーバーをプレビューするには、コマンドなしで url を設定します。Claude はサーバーを起動する代わりに、実行中のサーバーにプレビューを接続します:
url は http または https である必要があり、ユーザー名またはパスワードを含まない必要があります。
ポート競合
autoPort フィールドは、優先ポートが既に使用されている場合の処理を制御します:
true:Claude は自動的に空きポートを見つけて使用します。ほとんどの dev サーバーに適しています。false:Claude はエラーで失敗します。OAuth コールバックまたは CORS 許可リストなど、サーバーが特定のポートを使用する必要がある場合に使用します。- 設定されていない(デフォルト):
trueの場合と同様に、サーバーには次の空きポートが割り当てられます。ただし、以下の 1 つのケースは例外です。Claude Desktop v2.37337.0 より前では、代わりに Claude がサーバーにそのポートが必要かどうかを尋ね、回答をlaunch.jsonに保存します。
autoPort が設定されていない場合、以下の条件がすべて当てはまると、サーバーは停止したままになります:
npm、yarn、pnpm、またはbunのスクリプトを通じてサーバーを起動している。- 優先ポートがそのスクリプトにハードコードされている、または Claude がスクリプトを検査できない。
runtimeArgsでポートを渡していない。
port を変更します。代わりに "autoPort": true を設定する方法は、PORT を読み取るスクリプトでのみ機能します。
サーバーが PORT 環境変数からポートを読み取るようにしてください。この環境変数には割り当てられたポートが格納されます。Claude がサーバーを別のポートに移動する場合、runtimeArgs 内の --port または -p の値もそれに合わせて書き換えます。
例
これらの設定は、異なるプロジェクトタイプの一般的なセットアップを示しています:- Next.js
- 複数のサーバー
- Node.js スクリプト
この設定は、Yarn を使用してポート 3000 で Next.js アプリを実行します:
環境設定
セッションを開始するときに選択する環境は、Claude が実行される場所と接続方法を決定します:- Local:マシンで実行され、ファイルに直接アクセスできます
- Cloud:デフォルトで Anthropic が管理するインフラストラクチャで実行されます。アプリを閉じても、セッションは続行されます。
- SSH:SSH 経由で接続するリモートマシンで実行されます。たとえば、独自のサーバー、クラウド VM、または dev コンテナなどです。実行中のタスクは Desktop が切断されている間も続行できますが、Claude アカウントの場合はサインインの期限が切れると停止することがあります。
- WSL(Windows):マシン上の WSL 2 ディストリビューション内で実行され、その Linux ツールチェーンとネイティブパスを使用します
ローカルセッション
デスクトップアプリは常にシェル環境全体を継承するわけではありません。macOS では、Dock または Finder からアプリを起動すると、~/.zshrc または ~/.bashrc などのシェルプロファイルを読み取り、Claude Code に PATH と固定された Claude Code 変数セットを渡しますが、そこでエクスポートする他の変数は渡しません。Windows では、アプリはユーザーおよびシステム環境変数を継承しますが、PowerShell プロファイルは読み取りません。
ローカルセッションと dev サーバーの環境変数を設定するには、プロンプトボックスの環境ドロップダウンを開き、Local にマウスを合わせて、ギアアイコンをクリックしてローカル環境エディタを開きます。ここで保存する変数は、マシンに暗号化されて保存され、開始するすべてのローカルセッションとプレビューサーバーに適用されます。また、~/.claude/settings.json ファイルの env キーに変数を追加することもできます。ただし、これらは Claude セッションにのみ到達し、dev サーバーには到達しません。サポートされている変数の完全なリストについては、環境変数を参照してください。
拡張思考はデフォルトで有効になっており、複雑な推論タスクのパフォーマンスを向上させますが、追加のトークンを使用します。Anthropic API では、ローカル環境エディタで MAX_THINKING_TOKENS を 0 に設定して思考をオフにします。これは Opus 5.5、Sonnet 5.5、Haiku 5.5、または Fable モデルには効果がなく、これらは常に拡張思考を使用します。Anthropic API で思考をオフにした場合、Claude Code は、Opus 5 などのその組み合わせを受け入れないことが分かっているモデルに、より高いレベルではなく effort high を送信します。
適応的推論を持つモデルでは、適応的推論が代わりに思考の深さを制御するため、MAX_THINKING_TOKENS に正の値を設定しても、Claude Code はその数値自体を無視します。Opus 4.6 と Sonnet 4.6 では、固定思考予算を使用するために CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING を 1 に設定します。Fable モデル、Sonnet 5 以降、Haiku 5.5、および Opus 4.7 以降は常に適応的推論を使用し、固定予算モードはありません。
管理デバイス上のローカルセッション
管理者はdisableDesktopLocalSessions 管理設定でローカルセッションをオフにできます。オフにされた場合、Local は環境ドロップダウンに留まりますが、グレーアウトされて選択できず、組織がオフにしたことを示すツールチップが表示されます。Windows では、WSL エントリも、管理デバイスでの可用性が別途管理される場合、同じようにグレーアウトされます。新しいセッションは、SSH 接続が設定されている場合、最初の SSH 接続にデフォルト設定されます。Desktop は、既存のセッションを続行しようとした場合、このデバイスではローカルセッションが利用できないというメッセージを表示します。代わりに SSH または Cloud 環境を選択するか、IT チームに連絡してください。
クラウドセッション
クラウドセッションはアプリを閉じても、バックグラウンドで続行されます。使用状況はサブスクリプションプランの制限にカウントされ、別の計算料金はありません。 異なるネットワークアクセスレベルと環境変数を持つカスタムクラウド環境を作成できます。それらを管理するには、プロンプトボックスの環境ドロップダウンを開いて Cloud を選択します:- 環境を追加する:Add cloud environment を選択します
- 自分の環境の 1 つを編集またはアーカイブする:それにマウスを合わせて、ギアアイコンをクリックします
SSH セッション
SSH セッションを使用すると、デスクトップアプリをインターフェイスとして使用しながら、リモートマシンで Claude Code を実行できます。これは、クラウド VM、dev コンテナ、または特定のハードウェアまたは依存関係を持つサーバーに存在するコードベースで作業するのに便利です。サードパーティプロバイダーで Desktop を使用する場合、SSH セッションには個別のセットアップが必要です。SSH remote sessions in Claude Desktop on 3P を参照してください。
- Name:この接続のフレンドリーラベル
- SSH host:
user@hostnameまたは~/.ssh/configで定義されたホスト - SSH port:空のままの場合はデフォルトで 22 になるか、SSH config のポートが使用されます
- SSH key (optional):
~/.ssh/id_ed25519などの秘密鍵へのパス。SSH config または SSH エージェントを使用するには空のままにします。 - Worktree folder:新しいセッションが worktree を作成する、リモートマシン上のフォルダ(
~/worktreesなど)。リモートマシンのデフォルトを使用するには空のままにします。
SSH セッションのリモートマシン要件
Linux または macOS のリモートマシンには、サポートされているプロセッサ、SFTP を備えた SSH サーバー、noexec でマウントされていないインストールフォルダ、動作するシェル、およびネットワークアクセスが必要です。接続する前に、またはログイン後に接続が失敗した場合に、各要件を確認してください:
- システム:x86_64 または arm64 プロセッサ。マシンは Claude Code のシステム要件も満たす必要があります。Linux では、Claude Code には glibc 2.17 以降、または musl が必要です。マシンがどちらを使用しているかを確認するには、そのマシンで
ldd --versionを実行します。Alpine Linux などの musl ベースのディストリビューションでは、Claude Code が必要とするパッケージもインストールしてください。 - SFTP:SSH サーバーが SFTP サブシステムを提供している必要があります。これは
sshd_configのSubsystem sftp行で有効になります。確認するには、コンピューターのターミナルでsftpを使用して同じホストとポートに接続します。正常に動作しているサーバーではsftp>プロンプトが表示されます。 - 接続あたりのセッション数:macOS と Linux の Desktop は、1 つの SSH 接続で複数のセッションを開きます。サーバーの
sshd_configでMaxSessions 1が設定されている場合は、OpenSSH のデフォルトである 10 などに引き上げてください。 - インストールフォルダ:Desktop は、ホームディレクトリの
~/.claude/remote/の下にヘルパープログラムと Claude Code をインストールします。そこからそれらを実行するため、そのフォルダをnoexecでマウントされたファイルシステム上に置くことはできません。接続する各ユーザーのホームディレクトリに約 1 GB のディスク容量を確保してください。そのフォルダに含まれる内容については、リモートマシン上のファイルとプロセスを参照してください。 - シェル:リモートマシン上のアカウントに設定されているシェルは、Bash、Zsh、
shと同様に、SSH 経由で送信されたコマンドを実行できる必要があります - ネットワーク:Claude Code はリモートマシンで実行され、そこからネットワークリクエストを行うため、マシンには Claude Code が必要とするネットワークアクセスが必要です。マシンが Claude Code をダウンロードできない場合、Desktop はコンピューター上でダウンロードしてアップロードします。Claude Code のその他のリクエストは引き続きリモートマシンから送信されます。Linux のリモートマシンで、それらのリクエストにプロキシが必要な場合は、SSH セッション用に設定してください。
SSH セッションのプロキシまたは CA 証明書を設定する
Linux のリモートマシンがプロキシ経由でインターネットに接続する場合、または CA 証明書が必要な場合は、そのマシン上の~/.claude/settings.json の env にプロキシと CA の変数を追加してください。そのマシンの ~/.profile、~/.bash_profile、~/.zprofile、または ~/.zshrc ですでにエクスポートしている場合でも追加してください。
そのマシンのターミナルで実行した claude がそれらのファイルから変数を取得する場合でも、SSH セッションはそれらのファイルから変数を取得しません。その結果、セッションが応答しなくなったり、The connection from … to the API failed や Authentication failed が表示されたりすることがあり、再度サインインしても解決しません。
1
変数を追加する
CA ファイルには
NODE_EXTRA_CA_CERTS を使用してください。Claude Code は ~/.claude/settings.json の SSL_CERT_FILE に指定された CA を信頼しないためです。次の例では、プロキシと CA ファイルを設定します:~/.claude/settings.json
2
メッセージを再送信する
そのファイルで追加または変更した変数は数秒以内に有効になるため、メッセージを再送信してください。それでも失敗する場合は、新しいセッションを開始してください。
1
リモートマシンが設定する変数を一覧表示する
コンピューターのターミナルで、自分のホストを指定して
ssh devbox env を実行します。2
変数が設定されている場所で変更する
一覧にその変数がある場合は、リモートマシン上の
~/.zshenv、/etc/environment、~/.bashrc など、その変数を設定しているファイルで変更します。3
セッションに新しい値を渡す
リモートマシンを再起動するか、ヘルパーを削除する手順の最初の 2 つのステップと同様に、Desktop を終了してヘルパーのプロセスを終了します。どちらの方法でも Claude の作業が中断されるため、タスクが実行されていないときに行ってください。
macOS と Linux で SSH 設定を使用する
macOS と Linux では、Desktop はコンピューター上の OpenSSH クライアントを実行して接続するため、~/.ssh/config が使用されます。OpenSSH クライアントを介した接続には Claude Desktop v1.37937.0 以降が必要です。そのファイルの Host 名を SSH host フィールドに入力すると、HostName、User、IdentityFile、CertificateFile、ProxyJump、ProxyCommand など、そのエントリの設定が使用されます。
接続を追加する前に、コンピューターのターミナルでクライアントとエントリを確認してください:
- クライアントのバージョン:
ssh -Vを実行します。クライアントは OpenSSH 7.6 以降である必要があります。 - エントリ:
ssh devboxのように、Host名を指定してsshを実行します。失敗する場合は、先にエントリを修正してください。
- SSH port:ここに入力した値は、エントリの
Portを上書きします - SSH key (optional):Desktop は、エントリの
IdentityFileと SSH エージェント内の鍵に加えて、選択した鍵ファイルを提示します
ProxyJump または ProxyCommand を設定します。次のエントリは、bastion.example.com を経由して devbox.internal.example.com に接続します:
~/.ssh/config
devbox と入力します。
SSH ポートを公開していないコンテナ内でセッションを実行するには、ProxyCommand を使用してコンテナに接続してください。Desktop は接続先エントリの RemoteCommand を実行しないためです。エントリで RemoteCommand を使用してコンテナに入っている場合、セッションはコンテナ内ではなく、エントリがログインするマシン上で実行されます。
1
エントリを追加する
次のエントリを
~/.ssh/config の末尾に追加するか、Host * エントリがある場合は最初の Host * エントリの直前に追加します。Docker コンテナ devbox、そのユーザー dev、マシン build.example.com は自分のものに置き換えてください。このエントリのコマンドは、接続ごとにコンテナ内で SSH サーバーを起動します:~/.ssh/config
2
コンテナを準備する
- OpenSSH サーバーをインストールし、イメージを再ビルドしたりコンテナを再作成したりしても変わらないホスト鍵を用意します
Userで指定したアカウントに、authorized_keysファイルなどのログイン手段を用意します- コンテナがリモートマシンの要件を満たしていることを確認します
3
許可リストを確認する
管理者が SSH ホストを制限している場合は、コンピューターのターミナルで
ssh -G devbox-container を実行します。出力される hostname(ここでは devbox-container)を sshHostAllowlist で許可するよう管理者に依頼してください。管理者がその名前を許可すると、エントリの ProxyCommand が接続する先はどこであっても許可されることになります。4
エントリをテストしてから接続する
コンピューターのターミナルで
ssh devbox-container を実行します。報告された問題を修正し、何も尋ねられずにコンテナ内でシェルが開くまで繰り返し実行します:sshがパスワード、パスフレーズ、またはコードを求める場合:SSH エージェントが保持する鍵など、プロンプトなしで機能するログインに切り替えますsshがCannot execute command-line and remote command.またはBad packet lengthを報告する場合:build.example.comのエントリからRemoteCommandとRequestTTYを削除します。その後は、コンピューターのターミナルでssh build.example.comを実行すると、コンテナ内ではなくそのマシン上でシェルが開きます。sshがConnection closed by UNKNOWN port 65535を報告する場合:同じターミナルでssh build.example.com docker exec devbox /usr/sbin/sshd -tを実行します。Missing privilege separation directory: /run/sshdと出力された場合は、コンテナ内にそのフォルダを作成します。no hostkeys availableと出力され、コンテナにホスト鍵がある場合は、このコマンドとエントリの両方でexecの後に-u rootを追加します。
devbox-container と入力します。ProxyCommand または Match exec コマンドで独自の環境変数を使用するには、~/.zshrc などのシェル起動ファイルでその変数をエクスポートしてから、Desktop を終了して再度開きます。Desktop は起動時にログインシェルがエクスポートする内容を読み取り、終了するまでその値を保持します。
これには Claude Desktop v2.37337.0 以降と、-0 を受け付ける env コマンドが必要です。これはコンピューターのターミナルで env -0 を実行して確認できます。
シェルが一時的な AWS 認証情報を設定する場合は、
AWS_* 変数をエクスポートする代わりに、AWS CLI にプロファイルを指定してください。ProxyCommand は、ターミナルでは接続できても Desktop では失敗することがあります。シェルが AWS_SESSION_TOKEN、AWS_SECURITY_TOKEN、または AWS_CREDENTIAL_EXPIRATION をエクスポートしていると、Desktop の ssh と ProxyCommand は、シェルの AWS 認証情報、AWS_REGION、AWS_PROFILE を取得しません。
AWS CLI にリージョンや認証情報の他の取得元がない場合、You must specify a region または Unable to locate credentials で失敗します。Desktop から接続するには、AWS CLI が ~/.aws/config から読み取るプロファイルを指定します:
1
リージョンと認証情報の取得元を持つプロファイルを追加する
次の例では、ヘルパープログラムから認証情報を取得する
corp という名前のプロファイルを追加します:~/.aws/config
region:接続先マシンの AWS リージョンを指定しますcredential_process:AWS がドキュメントで定めている JSON 形式で認証情報を出力するプログラムのフルパスを指定します。AWS CLI は、不在中の再接続を含め、接続のたびにこのプログラムを実行するため、ユーザーの入力を必要としないプログラムを選んでください。- IAM Identity Center:
credential_processの代わりに、プロファイルの IAM Identity Center 設定を追加します。接続する前と、そのサインインの期限が切れたときに、ターミナルでaws sso login --profile corpを実行します。
2
ProxyCommand でプロファイルを指定する
次の例では、AWS が Session Manager 用にドキュメントで示しているコマンドに
--profile を追加します:~/.ssh/config
3
再度接続する
ターミナルでホストを指定して
ssh を実行し、エントリがそこで引き続き接続できることを確認してから、Desktop から接続します。ConnectTimeout が設定されていない場合、Desktop は ssh に接続のための 30 秒を与えます。ジャンプホストまたは ProxyCommand を経由する場合、この時間にはルートの接続にかかる時間が含まれます。ルートにそれ以上の時間が必要な場合は、エントリにより大きな値を追加します:
~/.ssh/config
ssh はホストに対して最初に見つかった値を使用するため、このエントリは ConnectTimeout を設定する Host * エントリよりも上に配置してください。確認するには、コンピューターのターミナルで ssh -G devbox を実行します。その出力には connecttimeout 120 が含まれます。値を変更した後は、Desktop を終了して再度開いてください。
リモートマシン自体がスマートフォンでの承認を待つ場合は、ConnectTimeout の設定にかかわらず、45 秒以内に承認してください。Desktop が ServerAliveInterval と ServerAliveCountMax を独自に設定し、リモートマシンがその間何も送信しないログインを ssh が閉じるため、この制限は延長できません。代わりにジャンプホストまたは ProxyCommand がユーザーを待つ場合は、リモートマシンのエントリの ConnectTimeout を延長して、その時間をカバーしてください。
ターミナルの ssh devbox では使用されない設定を Desktop が使用する場合は、エントリの HostName 行より上にある Match host ブロックを探してください。ターミナルでは、ssh はその位置のブロックを HostName 行より前に読み取るため、ブロックを devbox と比較します。Desktop はコマンドラインで ssh に HostName の値を渡すため、ssh はブロックをその値と比較します。
確認するには、Desktop と同様に、エントリの HostName と User の値をコマンドラインで指定して、コンピューターのターミナルで ssh -G を実行します:
ssh -G devbox の出力と比較します。proxycommand などのブロックの設定が最初の出力にのみ表示される場合、そのブロックは Desktop でのみ有効になります。Desktop でもスキップされるようにするには、その Match 行に !originalhost devbox を追加します:
~/.ssh/config
ForwardAgent、ForwardX11、LocalForward、RemoteForward、DynamicForward、Tunnel をオフのままにします。ターミナルや ! コマンドでは、Desktop がそれらの設定に従う別の ssh を起動することがあるため、転送設定は一部の場合にのみ適用されると考えてください。
- リモートマシン上のポートに接続するには:自分で転送します
- リモートマシンから自分の鍵を使用するには:
git push用など、リモートマシン自体に認証情報を設定します
ssh -G devbox を実行します。次に、出力された hostname と user の値を使用して、ssh -G -o HostName=devbox.internal.example.com -l alice devbox のように、Desktop が実行しうる形でもう一度実行します。2 回目の出力には、1 回目ではスキップされる Match ブロックの設定が表示されることがあります。
両方の出力で、no 以外の値を示す forwardagent 行と、localforward、remoteforward、または dynamicforward で始まる行を探します。見つかった場合は、その設定を SSH 設定から削除してください。ProxyCommand が ssh で接続するホストについても同様に行ってください。
リモートマシン上のポートに接続する
ポート 3000 の dev サーバーなど、リモートマシンで実行されているサーバーを開くには、ポートを自分で転送します。コンピューターのターミナルで、-L と接続先のホスト(devbox など)を指定して ssh を実行します:
-p または -i を追加します。そのコマンドを実行したままにし、コンピューターのブラウザで http://localhost:3000 を開くと、リモートマシンのポート 3000 に接続できます。ssh が open failed: administratively prohibited と出力した場合は、マシンの管理者に TCP 転送を許可するよう依頼してください。TCP 転送は SSH サーバーの sshd_config の AllowTcpForwarding で制御されます。
Windows リモートマシン
Windows リモートマシンには Claude Desktop v2.31226.0 以降が必要です。 Microsoft の OpenSSH Server を使用してください。マシンは x64 と ARM64 のどちらでもかまいません。SSH サーバーが起動するシェルには、cmd.exe、Windows PowerShell 5.1、または Git Bash を使用できます。
Windows リモートマシンは、Linux リモートマシンに比べてテストが少なくなっています。依存する前に、そこで自分の作業を試してください。
Windows リモートマシンでは、特に次のような制限があります:
- ターミナル:フォルダが
C:/projects/appのような Windows パスであるセッションでは、ターミナルは開きません - サンドボックス:Claude Code はそこではネイティブ Windows 上で実行され、コマンドはサンドボックス化されずに実行されます。サンドボックスが実行される場所を参照してください。
- プラグイン:Desktop は、
:を含む名前など、Windows で保存できないファイル名またはフォルダ名を含むプラグインをコピーしません。セッションには、Desktop が除外したプラグインが一覧表示されます。 - MCP サーバー:一部の Windows リモートマシンでは、
claude_desktop_config.jsonの MCP サーバーに対する Claude の呼び出しが Desktop を経由するため、Desktop が切断されている間は Claude がそれらのツールを呼び出せません。Claude Desktop v2.37337.0 より前では、これはすべての Windows リモートマシンに当てはまります。 - worktree:worktree は
<project-root>/.claude/worktrees/に作成されます。別のフォルダを選択しても、Desktop はそれを無視します。 - 以前のメッセージ:SSH サーバーのシェルが
cmd.exeまたは Windows PowerShell の場合、セッションの以前のメッセージを表示するには、接続が必要になることがあります - フォーク:SSH サーバーのシェルが
cmd.exeまたは Windows PowerShell の場合、セッションをフォークできるのは最初のメッセージの時点のみです - 切断中の実行:タスクが Desktop の切断中も実行を続けるのは、プログラムを起動した接続が終了した後もそのプログラムが存続することを SSH サーバーが許可している場合のみです。確認するには、リモートマシンをテストしてください。
- 残存プロセス:セッションの終了後も、Claude Code が起動したプログラムが実行を続けている可能性があるため、マシンを確認してください。Desktop がインストールするバックグラウンドヘルパーは、そこでは自動的に停止しません。
Desktop の切断中もタスクを実行し続ける
コンピューターがスリープした場合、ネットワークが切断された場合、または Desktop を終了した場合でも、タスクは完了するか、ユーザーの対応が必要になるか、いずれかの制限に達するまで続行されます。蓋を閉じることはスリープとみなされます。アップデートのためのものを含め、Desktop またはコンピューターの再起動は終了とみなされます。 Claude Code は、Desktop がリモートマシンにインストールするバックグラウンドヘルパーの下でプロセスとして実行されるため、実行を続けるのに SSH 接続は必要ありません。このセクションで説明する動作には Claude Desktop v2.31226.0 以降が必要です。- スリープまたはネットワーク切断の後:プロセスがまだ実行されており、Desktop がプロンプトなしでログインできる場合、実行中のタスクに戻れます。ログインできない場合は、メッセージを送信してください。
- 終了後、macOS または Linux の Desktop で Claude アカウントを使用している場合:Desktop がプロセスに再参加できれば、実行中のタスクに戻れます。再参加できない場合、タスクは停止します。停止したままの場合は、メッセージを送信してください。
- 終了後、Windows の Desktop またはサードパーティプロバイダーを使用している場合:Desktop はセッションを開いたときにプロセスを終了するため、実行中のタスクは失われます。続行するにはメッセージを送信してください。
- Desktop が再接続できない:セッションにその理由が表示され、通知でも知らされることがあります。Desktop はログインを必要とする場合があります。
- 認証エラー:サインイントークンまたは認証情報の期限が切れている可能性があります。Claude アカウントの場合は、メッセージを送信して続行します。サードパーティプロバイダーの場合は、SSH remote sessions in Claude Desktop on 3P を参照してください。
- 待機中のリクエスト:それに応答します
- いずれにも該当しない:メッセージを送信して続行します
- 先に更新する:長いタスクを開始する前に Desktop を更新してください。macOS と Windows では、Desktop はダウンロード済みのアップデートをインストールするために自動的に再起動することがあります。この再起動は、Claude が SSH タスクに取り組んでいる間は待機します。macOS で Claude アカウントを使用している場合、デフォルトでは、アップデートが 72 時間待機した後は、それでも再起動が実行されることがあります。
- Desktop を終了しない:Desktop が Windows で実行されている場合、またはサードパーティプロバイダーを使用している場合は、長いタスクの実行中は Desktop を開いたままにしてください。終了した場合、Desktop はセッションを開いたときに実行中のタスクを終了します。開いたままにしても、ユーザーを待機しているリクエストは保護されません。
- リクエストを減らす:タスクがユーザーを待つ頻度を減らす権限モード、ルール、またはフックを選択します
- ジャンプホストを確認する:ジャンプホストがサインイン(スマートフォンへのプッシュ通知など)を求める場合は、プロンプトなしで機能するログインに切り替えてください。そうしないと、Desktop は再接続を試みるたびに別のプッシュ通知を送信する可能性があります。
- リモートマシンをテストする:短いタスクを開始し、タスクの実行中に Desktop を終了して、タスクが完了しているはずの時刻を十分に過ぎてからセッションを再度開きます。タスクが完了しておらず、セッションに認証エラーが表示されていない場合は、リモートマシンでタスクを終了させうる要因を確認してください。
- Desktop のターミナルでコマンドを実行しない:リモートマシンがアイドル状態のターミナルをログアウトさせる場合は、Desktop の外部からの SSH ログインで独自のコマンドを実行してください
- サインイントークンまたは認証情報:Claude アカウントの場合、トークンの期限が切れるとタスクは認証エラーで停止します。サードパーティプロバイダーの場合は、シングルサインオンや認証情報ヘルパーから取得したものなど、期限が切れる認証情報にも同じことが当てはまります。SSH remote sessions in Claude Desktop on 3P を参照してください。Claude アカウントの場合は、Desktop がサインインを更新できるように、Desktop を実行して接続したままにしてください。
- リモートマシン:リモートマシンが再起動した場合、または SSH 接続が閉じたときにプロセスを終了させる場合、実行中のタスクは終了します。Desktop が切断されている間、タスクが再開されることはありません。systemd-logind の
KillUserProcessesがyesで、それがユーザーに適用される Linux マシンでは、この方法でプロセスが終了されます。そこでタスクを実行し続けるには、KillExcludeUsersなどでユーザーを除外するよう管理者に依頼してください。 - アイドル状態のターミナル:一部の Linux リモートマシンは、一定時間誰も入力しないターミナルをログアウトさせます(systemd-logind の
StopIdleSessionSec)。macOS または Linux の Desktop では、セッションのターミナルと!コマンドは、デフォルトで Desktop の SSH 接続を共有します。その場合、このログアウトによって Desktop の接続中に接続が終了し、実行中のタスクも一緒に終了することがあります。ターミナルペインを閉じても防げないため、そのターミナルでコマンドを実行しないでください。 - Desktop のアップデート:アップデートで新しいヘルパーが導入された場合、Desktop は後の接続時にリモートマシン上のヘルパーを置き換えるため、まだ実行中のタスクが終了することがあります
- 長期間の不在:Linux または macOS のリモートマシンで、Desktop が 30 日間接続しない場合、ヘルパーは停止し、その下で実行されているすべての Claude Code プロセスを終了します。それまでに接続してください。
- worktree:worktree を使用するセッションでは、Desktop は Claude がファイルを編集する前に各編集をチェックします。Desktop が切断されている間、各編集は約 30 秒待機した後に失敗します。シェルコマンドは引き続き実行されます。Linux または macOS のリモートマシンでは、編集が引き続き機能する場合があります。不明な場合は、worktree を使用せずにセッションを開始してください。
- フォルダの制限:組織がセッションで使用できるフォルダを制限している場合、Desktop は worktree の有無にかかわらず、各ファイルの読み取り、検索、編集をチェックします。Desktop が切断されている間、それぞれ最大 10 分間待機した後に失敗します。
- コネクタ:コネクタおよび Desktop が提供するその他のツールは Desktop を経由して実行されるため、Desktop が切断されている間は各呼び出しが約 30 秒後に失敗します
- ワークフロー:Desktop は新しいワークフローをそれぞれ開始前にチェックするため、Desktop が切断されている間、新しいワークフローは最大 10 分間待機した後に失敗します
- MCP サーバー:Claude Code がリモートマシンで起動する MCP サーバーは Desktop を経由しないため、Claude は引き続きそれらのツールを呼び出せます。
claude_desktop_config.jsonのサーバーがこれに含まれるのは、Desktop が組み込みの SSH クライアントを使用していない場合のみです。それ以外の場合、および一部の Windows リモートマシンでは、Desktop が切断されている間、Claude はそれらのツールを呼び出せません。
worktree 内の編集が引き続き機能する場合
worktree 内の編集が引き続き機能する場合
Linux または macOS のリモートマシンでは、チェックが Desktop を経由しないため、Desktop が切断されている間も worktree 内の編集は引き続き機能します。Claude Desktop v2.37337.0 より前では、これは Linux リモートマシンにのみ当てはまります。次のような場合には、編集は引き続き失敗します:
- 組み込みの SSH クライアント:Desktop がそれを使用している場合。たとえば、Microsoft Store からのインストール、Microsoft の OpenSSH 9.4 以降がない Windows コンピューター、またはサードパーティプロバイダーを使用する Windows でのデフォルトの場合です
- リポジトリの場所:リポジトリがホームディレクトリ、その上位のフォルダ、または
~/.claudeである - macOS のパス:macOS のリモートマシンで、リポジトリが
/Volumesの下にある、またはリポジトリもしくは worktree のパス内のフォルダ名に~または非 ASCII 文字が含まれている - フォルダの制限:組織がセッションで使用できるフォルダを制限している
- 企業ランチャー:Claude Desktop v2.37337.0 より前で、Claude アカウントでサインインしており、組織が企業ランチャーを介してリモートマシンで Claude Code を起動している
- auto モード:利用可能な場合は auto モードを選択します。ブロックが繰り返されると、再度確認が求められます。
- 許可ルール:リモートマシン上のユーザー設定ファイル
~/.claude/settings.jsonに、タスクに必要なコマンドの許可ルールを追加します。組織が管理設定からの権限ルールのみを受け入れる場合は、リモートマシンに適用される管理設定にそれらを追加するよう管理者に依頼してください。プロジェクトの.claude/settings.jsonの許可ルールについては、プロジェクトの許可ルールとワークスペースの信頼を参照してください。 - 応答するフック:リモートマシン上の
~/.claude/settings.jsonにPermissionRequestフックを設定し、ユーザーに代わってリクエストを許可または拒否します - 通知するフック:同じファイルに
permission_promptmatcher を使用したNotificationフックを設定し、リクエストが待機しているときに自分宛てにメッセージを送信します - Claude の完了を知らせるフック:同じファイルに
Stopフックを設定し、Claude が応答を終えたときに自分宛てにメッセージを送信します。API エラーによってターンが終了した場合は実行されません。その場合は、StopFailureフックを設定してください。
- 記憶されたパスワード:Desktop に記憶させたパスワードもプロンプトなしで機能しますが、長期間不在にする場合は SSH エージェントが保持する鍵を使用することをお勧めします。そのパスワードでのサインインが途中で切れたり応答しなくなったりする場合、Desktop は再接続を停止してユーザーを待つことがあります。
- その他のプロンプト:リモートマシンがワンタイムコードなど、その他の入力を求める場合、コンピューターに通知が届くことがあります。通知をクリックするか、セッションでメッセージを送信すると、Desktop にプロンプトが表示されます。
ジャンプホストがサインインを求める場合、停止が長い場合、出力が欠落している場合、またはプロセスが存在しない場合
ジャンプホストがサインインを求める場合、停止が長い場合、出力が欠落している場合、またはプロセスが存在しない場合
- ジャンプホスト、不在中にプッシュ通知が止まる:これは、ジャンプホストのサインイン(スマートフォンへのプッシュ通知など)に誰も応答しない場合に、macOS または Linux の Desktop で発生することがあります。その場合、Desktop はコンピューターの前に誰もいない間は再接続を停止します。コンピューターのロックを解除するか使用すると、Desktop が再試行できるため、別のプッシュ通知が届くことがあります。応答のない試行が 3 回続くと、ユーザーが再試行するかメッセージを送信するまで待機します。
- ジャンプホスト、プッシュ通知が届き続ける:Windows の Desktop のように、Desktop が誰も応答していないことを判別できない場合、再参加するプロセスがある間は、そのプロセスがまだ実行中かどうかにかかわらず試行を続けます。試行のたびに別のプッシュ通知が届くことがあります。試行を終了するには Desktop を終了しますが、その場合は実行中のタスクが失われる可能性があります。
- 長時間の停止:Desktop は約 5 分ごとに 1 回の試行にペースを落とします。早く再接続するには、セッションで再試行するか、メッセージを送信します。メッセージは接続後に Desktop が配信します。
- 出力の欠落:Desktop が切断されている間、ヘルパーは各セッションの最新の Claude Code 出力を 16 MiB のバッファに保持し、それより古い出力は破棄します。Desktop が再接続した後、セッションに
Loading recent output from <host>…と表示されることがあります。Desktop がすべての出力を読み込めない場合は、Some output produced while you were disconnected may be missing here.という行が表示されます。この行はタスクが停止したことを意味するものではありません。 - プロセスが存在しない:Desktop の再接続時にプロセスが存在しない場合、Desktop は会話の保存された履歴から新しいプロセスを開始し、タスクを続行するよう Claude に指示することがあります。プロセスが繰り返し終了する場合、または Desktop がサードパーティプロバイダーを使用している場合、Desktop はタスクを自動的に続行しません。メッセージを送信して続行してください。
- macOS または Linux の Desktop で Claude アカウントを使用している場合:Desktop を起動してセッションを開きます。Desktop がプロセスに再参加できると、実行中のタスクに戻れます。一部の Desktop アップデートの後や、組織が管理設定を変更した後など、常に再参加できるとは限りません。
- macOS または Linux で、Desktop が再参加できない場合:Desktop はプロセスを終了し、会話の保存された履歴から新しいプロセスを開始します。実行中のタスクは停止し、待機していた承認や質問は失われます。アップデートの後は、Desktop がその後 Claude に続行を指示することがあります。タスクが停止したままの場合は、メッセージを送信してください。
- Windows の Desktop、または任意のプラットフォームでサードパーティプロバイダーを使用している場合:タスクが完了していると見込まれるときにのみ Desktop を再起動してください。Desktop は終了後に再参加することがないため、実行中のタスクには戻れません。Desktop はセッションを開いたときにプロセスを終了し、これは Desktop の起動時に発生することがあります。メッセージを送信して続行してください。
SSH セッションの worktree の作成場所を選択する
組織がセッションで使用できるフォルダを制限していない限り、新しい SSH セッションは、次のうち最初に設定されている場所に worktree を作成します:- SSH 接続の Worktree folder
- リモートマシン上の
~/.claude/settings.jsonにあるworktree.location - デフォルトの
<project-root>/.claude/worktrees/
~/worktrees を設定した場合、worktree のパスは ~/worktrees/<project>-<id>/<worktree-name> になります。設定したフォルダがプロジェクト内にある場合、Desktop はそのプロジェクトではそのフォルダを無視し、デフォルトを使用します。Windows リモートマシンでは、Desktop は常にデフォルトを使用します。
以前に追加した接続、または組織が管理する接続に Worktree folder を設定するには、環境ドロップダウンでその接続にマウスを合わせて、ギアアイコンをクリックします。
このフィールドには Claude Desktop v1.44121.0 以降が必要です。組織がセッションで使用できるフォルダを制限している場合、Desktop はこのフィールドを非表示にし、worktree をプロジェクト内に作成します。
リモートマシン上のファイルとプロセス
Desktop は、Linux または macOS のリモートマシンに接続する各ユーザーのホームディレクトリの~/.claude/remote/ の下に、ヘルパープログラムと Claude Code をインストールします。ヘルパーはどのネットワークポートもリッスンしませんが、Claude Code と、MCP サーバーや開発サーバーなど Claude Code が起動するプログラムはリッスンすることがあります。
1 人のユーザーのプロセスを一覧表示するには、リモートマシン上でそのユーザーとして
pgrep -fl "$HOME/.claude/remote/" を実行するか、$HOME の代わりにそのユーザーのホームディレクトリを指定して実行します:
- ヘルパー:接続するコンピューターごとに 1 つ以上の
serverプロセス - Claude Code:ヘルパーがユーザーのセッションのために起動するプロセス。それぞれ
2.1.295-…のように、バージョンにちなんだ名前のファイルから起動されます
~/.claude/remote/run/ の下にあるヘルパーのフォルダ内の Unix ソケット rpc.sock を経由してヘルパーに到達します。ソケットのモードは 600、そのフォルダのモードは 700 であるため、root を除き、マシン上の他のユーザーはそのソケットに接続できません。
ヘルパーが自動的に停止する場合については、Desktop の切断中の制限を参照してください。
1 人のユーザーのヘルパーと Claude Code を削除するには:
1
Desktop を終了する
ユーザーが接続する各コンピューターで Desktop を終了します。Desktop は次回接続時に両方のプログラムを再度インストールし、自動的に再接続することがあります。
2
プロセスを終了する
リモートマシンにそのユーザーとしてログインし、
pgrep が一覧表示する各 Claude Code プロセスの ID を指定して kill を実行します。それらが一覧から消えたら、各 server プロセスの ID を指定して kill を実行します。先に server プロセスを終了すると、Claude Code が実行中のコマンドが実行を続けることがあります。次に、ps -u "$(id -un)" -f などでユーザーの残りのプロセスを一覧表示し、Claude Code が起動したと分かるものを終了します。Claude Code がバックグラウンドに残したプログラムは、pgrep の一覧に含まれないまま、Claude Code の終了後も実行を続けることがあります。3
フォルダを削除する
~/.claude/remote/ を削除します。~/.claude/ と ~/.claude.json にある Claude Code 自体のファイルを削除するには、設定ファイルを削除するを参照してください。sudo は必要ありません。ユーザーを確認するには、pgrep が一覧表示するプロセス ID を指定して、リモートマシンで ps -o user= -p を実行します。
シェルコマンドや MCP サーバーなど、Claude Code が起動するプログラムも、そのユーザーとして起動します。そこでコマンドを実行する人に対して行うのと同様に、sudo ルールを含め、リモートマシン上のそのユーザーの権限を確認してください。
リモートマシンに誰が接続したかを確認するには、そのマシン上の SSH サーバーのログを読みます。ログでは、Desktop からのログインはターミナルからのログインと同じように表示されます。macOS または Linux の Desktop では、エントリはセッションごとではなく、Desktop が接続するたびに記録されます。
Desktop の SSH 接続は、Claude Code のメトリクスとイベントには含まれません。そこから SSH セッションがどのリモートマシンで実行されたかを確認するには、Desktop SSH セッションにテレメトリを関連付けるを参照してください。Desktop 自体の接続記録については、SSH の問題について Desktop のログを取得するを参照してください。
ログイン前に閉じる接続
SSH サーバーのログに、ログイン前に閉じる接続が記録されている場合、それは Desktop による SSH ポートのテストである可能性があります。Desktop は、たとえばマシンへの接続が失敗した後などに、マシンが応答するかどうかをテストします。ポートへの接続を開き、何も送信せずにすぐに閉じます。テストは 1 回の場合もあれば、たとえば約 2 分間に 8 回など、連続して複数回行われる場合もあります。 そのような接続に対してアドレスを禁止または拒否する仕組みがない場合は、Desktop のテストについて何もする必要はありません。Desktop の接続元アドレスが拒否または禁止される場合は、SSH サーバー自体がそのアドレスを拒否しているかどうかと、fail2ban が Desktop のテストをカウントしているかどうかを確認してください。 ログの行を、Linux 上の OpenSSH サーバーがデフォルトのLogLevel でテストについて書き込む行と、サーバーのバージョンに対応する行で比較してください。Desktop が接続を閉じる前にサーバーのグリーティングが届いた場合は、代わりに最後の列の行が表示されることがあります。
ポートを開いて閉じる他のプログラムも、同じ行を残すことがあります。行にアドレスがある場合は、それが Desktop を使用するコンピューターの接続元アドレスであることを確認してください。
8.0 から 8.2 の行にはアドレスがありません。アドレスを取得するには、
sshd_config で LogLevel VERBOSE を設定し、root として sshd -T | grep -i loglevel を実行します。loglevel VERBOSE と出力された場合は、SSH サーバーをリロードします。その後、テストの行の前にある Connection from 203.0.113.7 port 51234 を含む行を探してください。
Desktop を使用する多数のコンピューターが共有するアドレスからの接続が拒否される場合は、SSH サーバーのログで次のように終わる行を探してください。
LogLevel では、OpenSSH 9.8 以降は、Desktop のテストのようにログインを試みずに閉じた接続を理由にアドレスを拒否する際に、このような行を書き込むことがあります。デフォルト設定では、数回のテストだけでこのような行が表示されることはありません。
拒否を防ぐには、sshd_config で PerSourcePenaltyExemptList を接続元のアドレスに設定します(例: PerSourcePenaltyExemptList 203.0.113.7)。サーバーはそれらのアドレスに対して、ログイン失敗に対するものを含め、どのペナルティも適用しなくなります。ファイルを確認するには、root として sshd -T | grep -i persourcepenalt を実行します。リストが出力された場合は、SSH サーバーをリロードしてください。
fail2ban 0.10.5 以降が Desktop の接続元アドレスを禁止した場合は、jail.conf、jail.local、または jail.d/ の下で jail のモードを確認します。
- 角かっこ内でモードを指定する
filter行(filter = sshd[mode=aggressive]など)がある場合: そのモードを使用します。 - 標準の
filter行([mode=%(mode)s])のみの場合:mode行を使用し、ない場合はnormalを使用します。
normal の場合、fail2ban は Desktop のテストの行をカウントしないため、禁止の別の原因を探してください。
それ以外のモードの場合は、自分のログの行をリモートマシン上のファイルにコピーします。各行を日付から末尾まで丸ごとコピーし、テストが 2 行を残す場合は両方の行をコピーします。そこで、ファイルと jail のモード(たとえば aggressive)を指定して fail2ban-regex を実行します。
203.0.113.7 のようにアドレスを 1 行ずつ出力します。その場合は、禁止を防いでください。何も出力されない場合、fail2ban はそのモードではそれらの行を 1 つもカウントしていないため、禁止の別の原因を探してください。
fail2ban が Desktop のテストを理由にアドレスを禁止しないようにするには、jail の 2 つの設定のいずれかを変更します。どちらにも代償があります。
mode: jail で設定されている箇所(mode行、またはfilter = sshd[mode=aggressive]のような行の角かっこ内)でnormalに設定します。ログインを試みずに接続して切断するクライアントのカウントなど、他のモードでのみ行われるカウントはすべて行われなくなります。ignoreip: 接続元のアドレスに設定します(例:ignoreip = 203.0.113.7)。fail2ban は、ログイン失敗を含め、それらのアドレスからのものを一切カウントしなくなります。
リモートマシンで設定した MCP サーバーを使用する
SSH セッションで~/.claude.json またはプロジェクトの .mcp.json の MCP サーバーを使用するには、リモートマシン上のそれらのファイルで設定します。Claude Code はそれらの stdio サーバーをリモートマシンで起動するため、それらのサーバーが実行するコマンドをリモートマシンにインストールしてください。claude_desktop_config.json のサーバーについては、Desktop の切断中の制限を参照してください。
リンクから SSH セッションを開く
claude://code/new リンクは Desktop の新規セッションページを開き、SSH 接続を指定することもできます。このようなリンクを runbook、ダッシュボード、または wiki ページに置いておくと、適切なマシンとフォルダが設定された状態で Desktop を開けます。このようなリンクを除去するプラットフォームについては、リンクがクリック可能にならずプレーンテキストとして表示されるを参照してください。
SSH リンクには Claude Desktop v2.110.0 以降が必要です。
次のリンクは、build.example.com のユーザー dev、ポート 2222、フォルダ /srv/payments を指定し、プロンプトを入力します:
ssh_host のみです:
~/.ssh/config のエイリアスは、そのエントリを持っているユーザーに対してのみ ssh_host として機能します。ユーザーがすでに持っている接続と一致させるには、その接続と同じユーザー、ホスト、ポートをリンクに指定します。
リンクを開くと、Desktop は接続を選択する前に確認を求めます:
- 既存の接続:ホスト、ユーザー、ポートが既存の接続のいずれかと一致する場合、Desktop はその接続を使用するかどうかを確認し、接続の名前とホスト、およびリンクでフォルダが指定されている場合はそのフォルダを表示します。
- 新しい接続:それ以外の場合、Desktop は SSH 接続を追加するダイアログを開きます。接続を追加すると、Desktop は何かを保存する前に接続するかどうかを確認し、リンクのホスト、およびリンクでポートとフォルダが指定されている場合はそれらを表示します。
- 確認する前に:ホストとフォルダを確認します。
- 送信する前に:プロンプトと選択されている環境を確認します。
/ や !、@ によるファイルメンションは、コマンドやメンションとして機能しません。キャンセルした場合、プロンプトはボックスに残り、選択していた環境は変更されません。
リンクによって sshHostAllowlist を回避することはできません。Desktop は接続時に許可リストを確認します。
リンクを開いても接続に関するダイアログが表示されずに Desktop が開く場合は、次のいずれかの原因を確認してください:
- サインアウトしている:サインインしてから、もう一度リンクを開きます。
- 別のダイアログが開いている:そのダイアログを閉じてから、もう一度リンクを開きます。
- リンクが無効である:Desktop は修正すべき点を示すメッセージを表示し、プロンプトは入力しません。
- Desktop が v2.110.0 より古い:以前のバージョンは SSH パラメータを無視し、プロンプトのみを入力した状態で新規セッションページを開きます。
- SSH セッションがオフになっている:管理者が許可リストを空の配列に設定している場合、Desktop は SSH リンクを拒否します。
チームの SSH 接続を事前設定する
管理者は、管理設定でsshConfigs を設定することで、SSH 接続をチームメンバーに配布できます。この方法で定義された接続は、各ユーザーの環境ドロップダウンに自動的に表示され、管理対象として表示されます。ユーザーはそれらを選択し、独自の Worktree folder を設定できますが、アプリでそれ以外を編集したり、削除したりすることはできません。
次の例は、単一の接続を事前設定しています:
id、name、および sshHost が必要です。sshPort および sshIdentityFile フィールドはオプションです。ユーザーは、自分の ~/.claude/settings.json に sshConfigs を追加することもできます。
sshHost から user@ を省略した場合、Desktop は各開発者の ~/.ssh/config がそのホストに対して設定している User として接続し、設定がない場合は開発者自身のコンピューター上のユーザー名で接続します。
ユーザーが接続できる SSH ホストを制限する
管理者は、管理設定でsshHostAllowlist を設定することで、Desktop の SSH セッションを承認されたホストのセットに制限できます。設定されると、ユーザーは解決されたホスト名がパターンの 1 つと一致するホストにのみ接続できます。SSH セッションを無効にするには、空の配列に設定します。空の配列が他の管理ソースのリストとどのように組み合わされるかについては、sshHostAllowlist のリファレンス項目を参照してください。
次の例は、devboxes.example.com の下のすべてのホストと、単一の名前付きバスティオンホストへの接続を許可しています:
* はすべてのホストと一致し、*.example.com は example.com とすべてのサブドメインと一致します。その他はすべて完全一致です。チェックは ssh -G を経由した ~/.ssh/config 解決後のホスト名に対して実行されるため、Host エイリアスと ProxyCommand/ProxyJump エントリは、解決された HostName が一致する限り許可されます。
sshHostAllowlist は管理設定からのみ読み取られます。ユーザーまたはプロジェクト設定の値は無視されます。Claude Desktop アプリのみがこの設定を尊重します。Claude Code CLI と IDE 拡張機能はこれを読み取らず、Bash ツールを通じて実行される ssh コマンドを制限しません。これは Desktop アプリが接続するホストを管理し、ネットワーク出力ではないため、ハード境界が必要な場合は組織のネットワークまたはゼロトラストコントロールと組み合わせてください。
ローカルセッションをオフにして SSH 接続を配布する
ローカルセッションをオフにし、SSH セッションを選択したホストに制限するには、disableDesktopLocalSessions、sshConfigs、sshHostAllowlist を一緒にデプロイします。
この構成は、Claude アカウントでサインインするユーザー向けです。サードパーティプロバイダーを使用する場合、SSH セッションはデフォルトでオフになっており、
sshHostAllowlist を設定するとオンにできます。これらのキーをデプロイする前に、SSH remote sessions in Claude Desktop on 3P をお読みください。managed-settings.json
- CLI:どのキーも、開発者が自分のコンピューターで Claude Code CLI を実行することを妨げません
- Cowork:どのキーも Cowork セッションや Cowork のスケジュールタスクには適用されません
- クラウドセッション:どのキーもクラウドセッションを利用できるかどうかを変更しません。クラウドセッションをオフにするには、Admin console controls の Cloud sessions 設定を使用します。
- ホスト名:
sshHostAllowlistのパターンが、user@を除いた各sshConfigsエントリのホスト名と一致することを確認してください。一致しない場合、開発者はその接続に接続できません。Desktop がホスト名を照合する方法については、ユーザーが接続できる SSH ホストを制限するを参照してください。 - バージョン:
disableDesktopLocalSessionsには Claude Desktop v1.37937.0 以降が必要です - ファイルの権限:コンピューター上の各開発者のアカウントが管理設定ファイルを読み取れることを確認してください。アカウントが読み取れないファイル内のキーは Desktop によって適用されず、Claude Code もそれらのキーなしで起動します。
1
環境ドロップダウンを確認する
Desktop を終了して再度開き、プロンプトボックスの環境ドロップダウンを開きます。Local がグレーアウトされ、SSH の下に Shared Dev VM が表示されます。Local がまだ利用できる場合は、Desktop のバージョン、ファイルが有効な JSON であるかどうか、およびコンピューターがどの管理ソースを読み取っているかを確認してください。
2
許可リストにないホストを追加する
other.example.com など、許可リストにないホスト名で SSH 接続を追加します。Desktop は接続を保存しますが、接続を拒否し、組織の設定でその接続が許可されていないことを示します。エンタープライズ設定
Team または Enterprise プランの組織は、管理コンソールコントロール、管理設定ファイル、およびデバイス管理ポリシーを通じてデスクトップアプリの動作を管理できます。管理コンソールコントロール
これらの設定は管理設定コンソールを通じて設定されます:- Desktop:組織内のユーザーがデスクトップアプリで Claude Code にアクセスできるかどうかを制御します
- Cloud sessions:組織のクラウドセッションを有効または無効にします
- Remote Control:組織のRemote Controlを有効または無効にします
管理コンソールのデータとプライバシー設定のMonitoring下の Cowork 用 OpenTelemetry フォームは、Cowork セッションのみに適用されます。このマシン上の Cowork セッションでは、デスクトップアプリはそのコレクタを Claude Code に
OTEL_*環境変数として渡すため、Claude Code がそのセッションで管理コンソール設定をフェッチしない場合でも、フォームは有効になります。Code タブセッションからテレメトリをエクスポートするには、Claude Code 管理設定のenvブロックでCLAUDE_CODE_ENABLE_TELEMETRYとOTEL_*変数を設定します。監視用の管理者設定に示されているとおりです。ローカル、クラウド、SSH セッションは、それぞれ異なるソースから管理設定を読み取ります。クラウドセッションが到達できるホストについては、ネットワークアクセスを参照してください。Code タブセッションが報告するservice.nameについては、サービス情報を参照してください。SSH セッションがどのリモートマシンで実行されたかを確認するには、テレメトリを Desktop SSH セッションに関連付けるを参照してください。管理設定
管理設定はプロジェクトおよびユーザー設定を上書きし、Desktop の Claude Code セッションに適用されます。これらのキーを組織の管理設定ファイルで設定するか、管理コンソールを通じてリモートでプッシュできます。
Desktop セッションがどこで実行されるかに応じて、どの管理設定がそのセッションに到達するかが異なります。
availableModelsなどのモデル制限は、Desktop の Claude Code セッションでターミナル CLI と同じ方法で適用されます。surface coverageを参照してください。
- このマシン上のローカルセッション:ディスクにデプロイされた管理設定ファイルが適用されます。管理コンソールを通じてリモートでプッシュされた管理設定は、セッションが適格なログインで認証する場合、Anthropic の API でこれらのセッションに到達します。ターミナル CLI と同じ設定の優先順位に従います。
- クラウドセッション:サーバー管理設定を受け取ります。デバイスにデプロイされたファイルはこれらのセッションに到達しません。Anthropic が管理する VM で実行されるためです。自己ホスト環境にルーティングされたセッションは、ランナーイメージ内の管理設定ファイルも読み取ります。Claude Code が管理ソースを組み合わせる方法は、そのファイルが適用される場合を示しています。
- SSH セッション:セッションはリモートホストから管理設定ファイルを読み取ります。Desktop 自体は、ローカルマシン上で
sshConfigs、sshHostAllowlist、disableSshSavedPasswords、およびdisableDesktopLocalSessionsを読み取ります。複数の管理ソースを配信する場合、Desktop はデフォルトではそのうち 1 つからこれらを読み取ります。 - Coworkセッション:このマシン上の Cowork セッションでは、ユーザーが Team または Enterprise アカウントでサインインしている場合でも、Claude Code は管理コンソール設定をフェッチしません。マシンにデプロイされたポリシーを読み取ります。ただし、Claude Desktop 設定が
requireCoworkFullVmSandboxを設定している場合を除きます。リモート Cowork セッションはどちらも受け取りません。ポリシーが適用される場所と時期を参照して、どのデバイスファイルが Cowork に到達するかを確認してください。MCP 権限ルールを参照して、BashおよびWebFetchルールが Cowork のツールにどのように適用されるかを確認してください。
managed-mcp.jsonはこれらのコネクタに到達しません。使用する設定ソースまたはファイルの場所に関係なく。これらのセッションでコネクタのツールをブロックするには、組織のコネクタツールコントロールを使用してください。コネクタが Claude Code に到達する方法は、各種類のセッションでコネクタを管理する設定を示しています。
permissions.disableBypassPermissionsModeとdisableAutoModeはユーザーおよびプロジェクト設定でも機能しますが、管理設定に配置するとユーザーがそれらを上書きするのを防ぎます。
管理ソースのみが設定できる権限、プラグイン、および配信キーについては、管理設定のみが設定できるキーを参照してください。
デバイス管理ポリシー
IT チームは、macOS の MDM、Windows のグループポリシー、または Linux のポリシーファイルを通じてデスクトップアプリを管理できます。利用可能なポリシーには、Claude Code 機能の有効化または無効化、macOS と Windows での自動更新の制御、およびカスタムデプロイ URL の設定が含まれます。- macOS:Jamf または Kandji などのツールを使用して
com.anthropic.claudefordesktopプリファレンスドメインを通じて設定します - Windows:
SOFTWARE\Policies\Claudeのレジストリを通じて設定します - Linux:
/etc/claude-desktop/managed-settings.jsonにある root 所有のファイルを通じて設定します。このファイルはポリシーキーを JSON オブジェクトとして保持します。root 以外のユーザーがファイルまたはそのフォルダに書き込める場合、Desktop はそのファイルを拒否します。これは Claude Code の管理設定ファイルとは別のファイルです。
ネットワークアクセス要件
Desktop はアプリケーションコードとユーザーコンテンツを Anthropic CDN ホストから読み込みます。bridge.claudeusercontent.comをclaude.aiおよびapi.anthropic.comと同じプロキシ出口を通じてルーティングしてください。そのようにルーティングできない場合は、プロキシがそのホストに使用する出口アドレスを組織の IP 許可リストに追加してください。ただし、そのアドレスが組織に専用されている場合のみです。共有プロキシ出口範囲は、プロキシベンダーの他の顧客も許可します。
Anthropic は、到着元のアドレスを使用して、組織の IP 許可リストに対してそのホストへの接続をチェックします。プロキシがそのホストのトラフィックを、その許可リストにないアドレスを通じて送信する場合、Chrome の Claude およびブリッジを通じて接続する他の機能は機能しなくなりますが、アプリの残りの部分は機能し続けます。
アーティファクトがGoogle Fontsからタイプフェイスを読み込む場合、fonts.googleapis.comおよびfonts.gstatic.comもリクエストします。両方のホストはオプションです。それらをブロックする場合、アーティファクトはフォールバックタイプフェイスでレンダリングされます。フォントリクエストが即座に失敗するように、高速拒否でブロックしてください。ページの最初のレンダリングを遅延させるのではなく。
アーティファクトは、React またはチャートパッケージなどの JavaScript ライブラリをcdnjs.cloudflare.com、cdn.jsdelivr.net、cdn.tailwindcss.com、code.jquery.com、およびunpkg.comから読み込むこともできます。他の外部ホストからは読み込みません。それらのホストをブロックする場合、ライブラリに依存するアーティファクトの部分は機能しません。ブロックされたフォントとは異なり、ブロックされたライブラリにはフォールバックがありません。ここでも高速拒否でブロックしてください。ブロックされたライブラリリクエストが即座に失敗するように。タイムアウトするまでハングするのではなく。
認証と SSO
Team および Enterprise 組織はすべてのユーザーに SSO を要求できます。プランレベルの詳細については認証を参照し、Setting up SSOで SAML 設定を参照してください。OIDC セットアップはClaude Enterprise Administrator Guideで説明されています。データ処理
Claude Code はローカルセッションではコードをローカルで処理するか、クラウドセッションでは Anthropic が管理するインフラストラクチャで処理します。組織がそれらを自己ホスト環境にルーティングしない限り。クラウドセッション(自己ホスト環境を含む)は、処理のために会話とコードコンテキストを Anthropic の API に送信します。ローカルおよび SSH セッションは、デプロイで設定されているモデルプロバイダー(デフォルトでは Anthropic の API)に送信します。データ保持、プライバシー、およびコンプライアンスの詳細については、データ処理を参照してください。デプロイ
Desktop はエンタープライズデプロイツールを通じて配布できます:- macOS:Jamf または Kandji などの MDM を使用して
.dmgインストーラーを通じて配布します - Windows:MSIX パッケージを通じてデプロイします。サイレントインストールを含むエンタープライズデプロイのオプションについては、Deploy Claude Desktop for Windowsを参照してください。
CLI から移行する場合
Claude Code CLI を既に使用している場合、Desktop はグラフィカルインターフェイスで同じ基盤となるエンジンを実行します。同じマシン上で、同じプロジェクト上でも、両方を同時に実行できます。各々は独自のセッションリストを保持し、CLI セッションを Desktop に持ち込むことができます。CLAUDE.md ファイルを通じて設定とプロジェクトメモリを共有します。 CLI セッションを Desktop に移動するには、ターミナルで/desktop を実行します。Claude はセッションを保存し、デスクトップアプリで開いてから CLI を終了します。このコマンドは、Claude サブスクリプションでサインインしている場合、macOS と x64 Windows で利用可能です。API キー認証、Amazon Bedrock、Google Cloud の Agent Platform、または Microsoft Foundry では利用できません。
シェルから、claude --desktop は Desktop を直接開き、ターミナルセッションを開始しません。Claude Code v2.1.285 以降が必要で、/desktop と同じプラットフォームおよびサインイン要件があります。他の引数がない場合、現在のディレクトリで Desktop を開きます。既存の CLI セッションを Desktop で開くには、このディレクトリの最新の会話に対して --continue を追加するか、/status が表示するセッション ID で --resume を追加します:
Opening session <session-id> in Claude Desktop を出力し、セッションはアプリで開き、コマンドは終了します。セッション名は ID の代わりに機能しません。Claude Code は別のターミナルで開いているセッションや、バックグラウンドで実行中のセッションを移動しません。Claude Desktop がインストールされていない場合、コマンドはダウンロードリンクを出力して終了します。
Desktop 内から CLI セッションを再開することもできます。/resume を使用します。このコマンドはローカルセッションで利用可能で、SSH、WSL、またはクラウドセッションでは利用できません。
Desktop でターミナルセッションを続行するには:
- ターミナルでセッションを閉じます。
- Desktop のプロンプトボックスで
/resumeと入力します。Desktop は、このコンピューターで CLI から開始したセッションをリストアップします。タイトル、フォルダ、またはブランチで検索し、各セッションがどこで終了したかをプレビューします。 - セッションを選択します。アプリで完全な会話とコンテキストとともに続行されます。
claude --resume を実行すると、その後も見つかります。
CLI フラグの同等物
このテーブルは、一般的な CLI フラグの Desktop アプリの同等物を示しています。リストされていないフラグは、スクリプトまたは自動化用に設計されているため、Desktop の同等物がありません。共有設定
Desktop と CLI は同じ設定ファイルを読み込むため、セットアップが引き継がれます:- プロジェクト内の CLAUDE.md および
CLAUDE.local.mdファイルは両方で使用されます ~/.claude.jsonまたは.mcp.jsonで設定された MCP サーバー は両方で機能します- 設定で定義された フック および スキル は両方に適用されます
~/.claude.jsonおよび~/.claude/settings.jsonの 設定 は共有されます。settings.jsonの権限ルール、許可されたツール、およびその他の設定は Desktop セッションに適用されます。- モデル:同じモデルが両方で利用可能です。Desktop では、送信ボタンの横のドロップダウンからモデルを選択します。セッション中にも同じドロップダウンからモデルを変更できます。
Claude Desktop チャットアプリからの MCP サーバー
Desktop アプリは、claude_desktop_config.json から MCP サーバーをローカルコードタブセッションに読み込み、~/.claude.json および .mcp.json のサーバーと並行して実行します。claude_desktop_config.json で定義したサーバーは、Desktop チャットサーフェイスとローカルコードタブセッションの両方で利用可能です。
claude_desktop_config.json と ~/.claude.json または .mcp.json で同じサーバー名を定義した場合、ローカルセッションのコードタブは 1 回接続し、claude_desktop_config.json の定義を使用します。
アプリは、~/.claude.json の stdio サーバーをローカルセッションの組み込み CLI に再配信します。~/.claude.json(ユーザースコープ)と .mcp.json のトップレベルが同じ stdio サーバー名を定義する場合、コードタブは ~/.claude.json の定義を使用し、CLI のスコープ階層から外れます。
スタンドアロン CLI は
claude_desktop_config.json を読み込みません。macOS と WSL では、claude mcp add-from-claude-desktop を実行して、それらのサーバーを ~/.claude.json にコピーします。Claude Desktop から MCP サーバーをインポートを参照して、インポートフローとスコープオプションを確認してください。機能比較
このテーブルは、CLI と Desktop の主要機能を比較しています。CLI フラグの完全なリストについては、CLI リファレンスを参照してください。Desktop で利用できない機能
以下の機能は Desktop では利用できません(記載されている場合を除く):- サードパーティプロバイダー:Desktop はデフォルトで Anthropic の API に接続します。Desktop をゲートウェイ経由でルーティングするか、Code タブを Amazon Bedrock、Google Cloud の Agent Platform、Microsoft Foundry、または自己ホスト型 LLM ゲートウェイで実行するには、サードパーティプロバイダー行のリンクに従ってください。
- Linux(ベータ):Linux デスクトップアプリではコンピューター使用はまだ利用できません。Claude Desktop on Linuxを参照してください。
- インラインコード提案:Desktop はオートコンプリートスタイルのコード補完を提供しません。会話型プロンプトと明示的なコード変更を通じて機能し、Claude の応答後に次のプロンプトを提案できます。
- エージェントチーム:Claude がチームリーダーとして共有タスクリストからチームメイトにタスクを割り当てる調整されたチームは、CLIで利用可能で、Desktop では利用できません。1 つのセッション内でマルチエージェント作業を行う場合は、Desktop で実行される動的ワークフローを使用します。Claude は他のセッションに直接メッセージを送信して管理することもできます。
- ターミナルダイアログコマンド:ターミナルで対話的パネルを開く組み込みコマンドは、コードタブで異なる動作をします。設定ファイルを直接編集して権限ルールと設定を管理するか、スタンドアロン CLI からコマンドを実行します。
/permissionsなどの引数形式がないコマンドは、isn't available in this environmentで応答します。/configは設定 → Claude Code を開きます。コマンド後のテキストは無視されるため、/config theme=darkはテーマを設定しません。
トラブルシューティング
以下のセクションでは、デスクトップアプリに固有の問題について説明します。チャットに表示されるAPI Error: 500、529 Overloaded、429、またはPrompt is too longなどのランタイム API エラーについては、エラーリファレンスを参照してください。これらのエラーとその修正は、CLI、Desktop、Web 全体で同じです。
バージョンを確認する
実行しているデスクトップアプリのバージョンを確認するには:- macOS:メニューバーのClaudeをクリックしてから、About Claudeをクリック
- Windows:Helpをクリックしてから、About Claudeをクリック
Code タブの Claude Code バージョン
セッションで実行されている Claude Code のバージョンを確認するには、Code タブのローカルセッションで/status と入力し、Claude Code 行を確認します。この行には 2.1.286 のようなバージョンが表示されます。
ローカルセッション用に新しいバージョンを取得するには、macOS では Claude → Check for Updates、Windows では Help → Check for Updates を開き、新しいセッションを開始します。
ローカルセッションでは、Code タブは独自の Claude Code のコピーを実行し、そのコピーには独自のバージョン番号があります。デスクトップアプリがそのコピーをダウンロードして更新するため、ターミナルの claude コマンドとはバージョンが異なる場合があり、一方を更新してももう一方は更新されません。
Code タブの 403 またはエラー認証エラー
Code タブを使用するときにError 403: Forbiddenまたはその他の認証エラーが表示される場合:
- アプリメニューからサインアウトして再度サインインします。これが最も一般的な修正です。
- アクティブな有料サブスクリプション(Pro、Max、Team、または Enterprise)があることを確認します。
- CLI は機能するが Desktop は機能しない場合、デスクトップアプリを完全に終了し(ウィンドウを閉じるだけではなく)、再度開いてサインインします。
- インターネット接続とプロキシ設定を確認します。
起動時に空白または停止画面
アプリが開いても空白または応答しない画面が表示される場合:- アプリを再起動します。
- 保留中の更新を確認します。macOS と Windows ではアプリは起動時に自動更新されます。Linux では、Claude Desktop on Linuxで説明されているように apt を使用して更新します。
- マネージドネットワーク上では、ファイアウォールがネットワークアクセス要件の CDN ホストを許可していることを確認します。
- Windows では、Windows Logs → Applicationの Event Viewer でクラッシュログを確認します。
「Failed to load session」
Failed to load sessionが表示される場合、選択したフォルダが存在しなくなった可能性があります。Git リポジトリがインストールされていない Git LFS を必要とする可能性があります。またはファイル権限がアクセスを防ぐ可能性があります。別のフォルダを選択するか、アプリを再起動してみてください。
セッションがインストール済みツールを見つけられない
Claude がnpm、node、またはその他の CLI コマンドなどのツールを見つけられない場合、ツールが通常のターミナルで機能することを確認し、シェルプロファイルが PATH を正しく設定していることを確認し、デスクトップアプリを再起動して環境変数を再度読み込みます。
Git および Git LFS エラー
独自の worktree で実行されるセッションには Git が必要です。「Git is required」が表示される場合、Gitをインストールするか、Windows ではGit for Windowsをインストールして、もう一度試してください。Windows では、1.49585.0 より前の Claude Desktop バージョンはローカルセッションを開始する前に Git を要求していました。そのプロンプトが表示され、worktrees を使用していない場合は、アプリを更新してください。 「Git LFS is required by this repository but is not installed」が表示される場合、git-lfs.comから Git LFS をインストールし、git lfs installを実行してアプリを再起動します。
Windows で MCP サーバーが機能しない
MCP サーバートグルが応答しない場合、または Windows でサーバーが接続に失敗する場合、サーバーが設定で正しく設定されていることを確認し、アプリを再起動し、Task Manager でサーバープロセスが実行されていることを確認し、接続エラーについてサーバーログを確認します。ログイン後に SSH 接続が失敗する
カードのタイトル、またはエラーメッセージの末尾にあるコードをこの表で探し、最後の列の指示に従ってください。メッセージを確認するには、失敗カードで View details を選択します。
その他のメッセージについては、リモートマシンの要件を確認してください。
SSH の問題について Desktop のログを取得する
Desktop の SSH 接続の記録であるssh.log は、Help メニューから保存する Desktop のログの zip ファイルに含まれています。保存するには、Help > Troubleshooting を開き、使用しているシステムに対応する項目を選択します:
- macOS:Show Logs in Finder
- Windows:Show Logs in File Explorer
- Linux:Show Logs in File Manager
<host> と <user> は、Desktop が置き換えた名前を表します。Desktop はすべての名前を置き換えるわけではなく、SSH のホスト名やユーザー名が記述されたまま表示される場合もあります。zip ファイルを誰かに送信する場合は、ログにホスト名が記載されていない可能性があるため、どのホストでいつ失敗したかを伝えてください。
zip ファイルには、Desktop がリモートマシンにインストールするヘルパープログラムのログは含まれていません。そのログも取得するには、接続したユーザーのホームディレクトリにある ~/.claude/remote/run/ 配下のヘルパーのフォルダから remote-server.log をコピーします。このファイルも送信する前に内容を確認してください。
アプリが終了しない
- macOS:Cmd+Q を押します。アプリが応答しない場合、Cmd+Option+Esc で Force Quit を使用し、Claude を選択して Force Quit をクリックします。
- Windows:Ctrl+Shift+Esc で Task Manager を使用して Claude プロセスを終了します。
Windows 固有の問題
- インストール後に PATH が更新されない:新しいターミナルウィンドウを開きます。PATH の更新は新しいターミナルセッションにのみ適用されます。
- 同時インストールエラー:別のインストールが進行中であるというエラーが表示されるが、実際には進行中でない場合、インストーラーを管理者として実行してみてください。
CLI で開くときに「Branch doesn’t exist yet」
クラウドセッションはローカルマシンに存在しないブランチを作成できます。セッション内のブランチ名をクリックして Copy branch name を選択してから、ローカルでフェッチします:まだ立ち往生していますか?
- デスクトップアプリで Help → Get Support を開くか、Claude サポートセンターに直接アクセスします
- スタンドアロン
claudeCLI でも再現される問題については、GitHub Issuesでバグを検索またはファイルします