Claude Code WebのGitHub認証 — GitHub Appと/web-setupの選び方
Claude Code on the webのGitHub連携は、方式によって届くリポジトリの範囲が違います。GitHub Appと/web-setupの選び分けと、Quick web setup、つまずきの原因を解説します。
このTipsでできること
Claude Code on the webのGitHub認証は、方式によってセッションが届くリポジトリの範囲が変わります。ブラウザーでClaude GitHub Appを認可する方式では、プライベートリポジトリはAppを入れた場所だけ。ターミナルで/web-setupを使う方式では、手元のghトークンが見られる場所すべてです。
この記事では、どちらを選ぶかの切り分けと、組織管理者のQuick web setupトグルが何を変えるかを扱います。リポジトリが出てこない、/web-setupが候補に出ないといったつまずきの原因も、症状から引けるようにしました。
届くリポジトリの範囲が違う
2つの方式の届く範囲
GitHub App
claude.ai/codeの初回オンボーディングでClaude GitHub Appを認可します。パブリックリポジトリはそのままclone可能です。プライベートリポジトリで作業できるのは、Appをインストールしたアカウント・組織のうち、インストール時にリポジトリアクセスへ含めたものだけです。
/web-setup
ローカルのghCLIトークンをclaude.aiアカウントに送ります。そのトークンが見られるリポジトリには、Appのインストールなしで届きます。
Appのインストールにはもう1つ役割があり、Auto-fix(PRのCI失敗やレビューコメントへの自動対応)がインストール済みのリポジトリで使えるようになります。つまりAppのインストールは、プライベートリポジトリへの到達とAuto-fixの両方を担っています。組織のポリシーで/autofix-prが止まる場合は、GitHub組織ポリシーによる拒否の切り分けを参照してください。
GitHub Appの側で組織のリポジトリを使うには、組織のオーナーによるインストールの承認が必要になる場合があります。ここが詰まりやすい箇所です。
もう1つの例外がプロジェクトです。プロジェクトのスレッドがリポジトリをcloneするには、どちらの方式で接続していてもClaude GitHub Appのインストールが要ります。/web-setupのトークンは、プロジェクト以外のクラウドセッションにだけ効きます。
手元のghを使い回すなら/web-setup
/web-setupはシェルのコマンドではなく、Claude Code CLIのプロンプト内で打つスラッシュコマンドです。ローカルにClaude Code CLIが入っていて、/loginでclaude.aiアカウントにサインインしている必要があります。APIキーやサードパーティプロバイダーでの認証は、この条件を満たしません。/statusのLogin method行がclaude.aiアカウントかどうかで確認できます。
/web-setupで接続する
- 1
ghにログインしておく
シェルで
gh auth loginを済ませます。ghが未インストール、または未認証の場合は、/web-setupがブラウザーオンボーディングに切り替わります。 - 2
claudeを起動して実行する
ターミナルで
claudeを起動し、プロンプトに/web-setupと入力します。Claude Codeはgh auth tokenが出力するトークンを読み取り、送信してよいか確認を求めます。 - 3
Connected asを確認する
成功すると
Connected as <GitHubユーザー名>と表示され、claude.ai/codeがブラウザーで開きます。クラウド環境がまだ無ければ、Trusted network accessでsetup scriptなしの環境が作られます。
送ったトークンは、Anthropicがclaude.aiアカウントに紐づけて暗号化して保存します。取り消すまで、クラウドセッションのGitHubアクセスに使われます。すでにブラウザーでGitHubを接続している場合、/web-setupは「続行するとクラウドセッション用の接続が置き換わる」と警告します。
workflowスコープの警告が出たとき
ghトークンにworkflowスコープが無いと、/web-setupが警告します。続行はできますが、GitHub Actionsのワークフローファイルを変更するpushなどはGitHubに拒否されることがあります。シェルでgh auth refresh -s workflowを実行してから、/web-setupをやり直します。
トークンを外すには
外し方は2段階あります。claude.aiのConnectors画面でGitHubを切断すると、クラウドセッションが使うGitHubの資格情報が消えます。ブラウザー接続でも/web-setupでも同じ扱いなので、切断後は再接続するまでクラウドセッションがGitHubに届きません。手元のghはログインしたままで、トークン自体もGitHub上では有効なままです。
トークンそのものを無効にしたいなら、GitHubのSettings > Applications > Authorized OAuth Appsで取り消します。ghをブラウザー経由でログインしていれば、対象は「GitHub CLI」のエントリです。ただし取り消すと、手元のGitHub CLIもサインアウトされます。
個人開発者と組織でオンボーディングが違う
個人のPro・Maxでは、claude.ai/codeを開いてサインインし、GitHubの認可ページで承認すれば接続が終わります。プライベートリポジトリを使うならClaude GitHub Appのインストールも要ります。インストールを促す画面でSkipを選んでも接続自体は完了しますが、その時点ではパブリックリポジトリしか使えません。
Team・Enterpriseは事情が違います。OwnerがAdmin settings > ConnectorsでGitHub connectorをオンにするまで、Sign in with GitHubのステップは「GitHub access is required for Claude Code on the web」と表示されたまま進めません。オンにした後はclaude.ai/codeをリロードして、最初のステップからやり直します。
環境の作られ方も違います。ProとMaxでは初回オンボーディングでDefault環境が自動作成されます。Team・Enterpriseでは「Create your first cloud environment」フォームが出るので、名前とネットワークアクセスを初期値のままCreate & finishを押します。
Quick web setupは何を変えるか
Quick web setupをオンにすると変わる3点
/web-setupが使える
Team・Enterpriseでは既定でコマンド自体が隠れています。オンにするとメンバーが使えるようになります。
Appの案内が出ない
ブラウザーオンボーディングで、Claude GitHub Appのインストール確認をスキップします。
Defaultが自動作成される
環境設定フォームを出さず、Default環境をメンバーごとに作ります。
切り替えはOwnerがAdmin settings > Claude CodeのQuick web setupトグルで行います。Team・Enterpriseでは既定でオフです。
2つ目の効果には注意点があります。公式の記述を組み合わせると、Quick web setupがオンの組織でメンバーがブラウザー接続を選んだ場合、Appのインストールを促されないため、プライベートリポジトリが一覧に出ないまま進む形になります。CLIを使わないメンバーが多い組織や、プロジェクト機能を使う組織では、Appの導入手順を別途案内しておく必要があります。
オフのままなら、メンバーは全員ブラウザーのGitHub App認可を通ります。CLIに慣れたメンバーが多く、既存のリポジトリアクセスをgh側の権限管理に寄せたいなら、オンにする意味があります。
Zero Data Retentionを有効化している組織は、/web-setupを含むクラウドセッション機能を使えません。Quick web setupの設定とは無関係です。管理者がクラウドセッションを無効にしている場合、/web-setupはメニューに出ません。送信すると後述の症状表にあるエラーになります。
症状から原因を引く
接続まわりの症状と原因
No commands match / Unknown command
シェルではなくclaudeのプロンプト内で打っているか確認します。それでも出ないなら、APIキーやサードパーティ認証でログインしているのが主な原因です。
/loginでclaude.aiアカウントに切り替えます。Team・Enterpriseでは、Quick web setupがオフの間は隠れます。Not signed in to Claude
CLIに有効なclaude.aiのサインインがありません。以前のサインインが期限切れになった場合も同じです。
/loginのあとに/web-setupをやり直します。Cloud sessions are disabled by your organization's policy
管理者がクラウドセッションを無効にしています。v2.1.268より前は、同じ状況でもUnknown commandと表示されていました。
接続後にリポジトリが一覧に出ない場合は、接続方式で切り分けます。ブラウザー接続なら、Appがそのアカウントか組織にインストールされ、リポジトリアクセスに対象が含まれているかを確認します。/web-setupなら、シェルでgh repo view OWNER/REPOを実行し、ghのログインがそのリポジトリを見られるかを確かめます。ghのアカウントを切り替えた後は、/web-setupをやり直します。
手元のリポジトリをそのまま送る場合
claude --cloudをgitのリモートが無いリポジトリ、またはAppが入っていないgithub.comのリポジトリで実行すると、Claude Codeはローカルリポジトリをバンドルしてクラウドセッションへ直接アップロードします。/web-setupで接続していても同じです。バンドルには全ブランチの履歴と、追跡中ファイルの未コミット変更が含まれます。
手元のClaude Code v2.1.285でclaude --helpを実行すると、この経路のフラグとして--cloud [description|session_id|url]と--teleport [session]が並んでいます。一方の/web-setupはセッション内のスラッシュコマンドで、--helpには出ません。
定期実行が止まるとき
/scheduleでルーティンを作るとき、Claudeは実行したリポジトリへのGitHubアクセスがあるかを確認し、無ければ付与方法を書いたセットアップノートを添えます。付与方法としては、GitHub Appと/web-setupの2つが案内されます。
ただし/web-setupが付与するのはcloneのためのリポジトリアクセスだけです。Claude GitHub Appはインストールされず、Webhookの配信も有効になりません。GitHubのイベントをトリガーにするルーティンには、Appのインストールが要ります。
接続が切れたり期限切れになったりすると、実行時刻が来てもルーティンはスキップされます。最大72時間までは再接続すれば自動で再開します。72時間を過ぎるとルーティンがオフになり、再接続してから手動で戻します。トークンを取り消したり、GitHubを切断したりするときは、この期限を意識しておく必要があります。
GitHubを接続しない選択肢とセルフホスト
GitHubをそもそも接続したくないなら、Remote Controlがあります。ローカルのClaude Codeをブラウザーやスマートフォンから監視・操作する機能で、クラウドセッションではないため、GitHubの接続を必要としません。手元のリポジトリを送るアップロードが止まったときは、Not uploading this working treeの対処を参照できます。
セルフホスト環境へセッションを流している組織では、前提が変わります。Anthropicホスト環境ではgitクレデンシャルや署名鍵がサンドボックスの外にあり、プロキシがスコープ付きの資格情報で認証を仲介します。セルフホストでは、デプロイ側が用意した資格情報でgitに認証します。この記事のGitHub App / /web-setupの手順は、Anthropicホスト環境を前提にしています。
まとめ
プライベートリポジトリを個人で使うなら、ghログイン済みの人は/web-setup、それ以外はGitHub Appのインストールまで済ませる、という分け方になります。プロジェクト機能とAuto-fixを使うなら、方式に関わらずAppが要ります。組織の管理者は、Quick web setupをオンにするとApp導入の案内が消える点を踏まえて決めます。