コミットメッセージに Claude-Session という行が付いていた
チームメンバーのコミットを眺めていたら、末尾に見慣れない行がありました。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XXXXXXXXXXXXXXXXXXXXXXXX
1行目の Co-Authored-By は以前からある共同作成者の表記で、どのモデルが書いたかを示すだけです。2行目の Claude-Session は、そのコミットを作った Claude Code のセッション(会話)への直リンクです。開けば、どんな指示でどう調べてこの変更に至ったかを、会話ごと遡って読めます。
結論から言えば、この行が付くのはクラウド上で動いた Claude Code のセッションだけで、リンクは作成者本人が共有設定を変えないと他人には開けません。以下は Claude Code 2.1系、2026年9月時点の挙動です。
Claude-Session が付く条件
ターミナルで普通に Claude Code を使ってコミットしても、この行は付きません。付くのは次のいずれかで作ったコミットです。
- ウェブ版の claude.ai/code で始めたセッション
- ターミナルから
claude --cloudでクラウドに投げたセッション - Remote Control でローカルのセッションを claude.ai 側から操作していたとき
公式ドキュメントでは Claude Code 2.1.179 以降の挙動とされています。プルリクエストを作った場合は、本文にもセッションの URL が1行で入ります。
つまり、この行が付いたコミットを見たら「この人はクラウドセッションで作業している」と読めます。逆に、自分のローカルの Claude Code の会話が知らないうちに他人から見える状態になる、ということはありません。会話ログはローカルの ~/.claude/projects/ 以下に保存されるだけです。
リンクを開いても見られない理由
同じ組織のアカウントでログインしていても、他のメンバーが作ったセッションの URL は既定では開けません。「Session not found」のような表示になります。セッションは組織単位ではなく作成者単位で管理されていて、可視性の既定が Private だからです。
可視性の選択肢はプランで違います。
| プラン | 可視性の選択肢 | Team / Public の意味 |
|---|---|---|
| Team・Enterprise | Private / Team | 同じ claude.ai 組織のメンバーに見える |
| Pro・Max | Private / Public | claude.ai にログインしている誰でも見える |
Team プランでは、見る側のアカウントに紐づく GitHub アカウントがそのリポジトリを読めることも、既定で条件になります。同じ組織にいてもリポジトリ権限がなければ開けません。Pro・Max の Public はこの確認が既定では働かないので、共有前にセッションの中に認証情報やクライアントのコードが写っていないかを見ておく必要があります。
claude –cloud の使い方
前提条件
- ターミナルの Claude Code が claude.ai アカウントでログインしていること。API キー認証では使えません。
/loginで切り替えられます - 組織の管理設定でクラウドセッションが許可されていること。Team プランでは Owner が管理画面の Claude Code の項目で切り替えます
- GitHub との接続。ウェブ版の初回設定で Claude GitHub App を許可するか、ターミナルで
/web-setupを実行して gh の認証を同期します。Team プランでは/web-setupは管理側で「Quick web setup」を有効にしないと表示されません
基本の流れ
クラウド側はローカルの作業ツリーではなく、リモートの現在ブランチを clone します。手元にしかないコミットがあれば先に push しておきます。
git push
claude --cloud "app/Customize 配下の購入フロー拡張が 4.3 系で動くか影響範囲を洗い出して"
これでクラウド上の VM がリポジトリを clone してタスクを進めます。ローカルのターミナルは解放されるので、そのまま別の作業ができます。進捗はターミナルで /tasks を打つか、claude.ai/code か Claude のモバイルアプリで開けば見られます。途中で質問を返してきたときは、後から答えれば続きから動きます。
追加の指示を送る
走っているセッションに1行だけ指示を足すコマンドがあります。返事は待たずに終了します。
claude -p "変更箇所ごとにテストも足して" --cloud session_01XXXXXXXXXXXXXXXXXXXXXXXX
セッション ID は claude.ai/code の一覧か、コミットに付いた Claude-Session の URL から取れます。URL をそのまま渡しても通ります。
結果を手元に戻す
claude --teleport session_01XXXXXXXXXXXXXXXXXXXXXXXX
クラウド側のブランチを fetch して checkout し、会話履歴ごとローカルのターミナルに引き継ぎます。同じリポジトリの checkout 上で、作業ツリーがクリーンな状態で実行する必要があります。引き継いだ後の作業はローカルだけに残り、クラウド側には反映されません。
便利なシーン
ローカルの Claude Code と何が違うのかと言えば、自分の端末を占有しないことと、会話が URL で共有できることの2点です。この2点が効く場面を挙げます。
- 退勤前に投げて翌朝レビューする。依存パッケージの更新、Deprecated になった API の置き換え、lint の一括修正のような、時間はかかるが判断は少ない作業に向きます。端末を閉じてもセッションは続きます
- 複数タスクを並列に走らせる。
claude --cloudを3回打てば3つのセッションが独立して動きます。テストの修正、ドキュメントの更新、ロガーの差し替えを同時に進めて/tasksでまとめて見る、という使い方です。ただしレート制限は通常の利用と共通なので、並列にした分だけ消費は増えます - 設計は手元で、実行はクラウドで。ローカルをプランモード(
claude --permission-mode plan)で起こして方針だけ詰め、計画を Markdown でコミットして push し、実行はクラウドに任せます。長い実装中に自分の端末が塞がりません - 外出中にスマホから様子を見る。モバイルアプリで途中経過を読み、質問に答えたり方針を変えたりできます
- レビューで「なぜこの変更か」を会話ごと確認する。Claude-Session のリンクを開けば、コミットメッセージに書き切れなかった調査過程や、途中で却下された案まで読めます。プルリクエストの説明を書く手間が減り、レビュアーは判断の根拠を直接確かめられます
受託開発で使うなら、EC-CUBE のバージョンアップ影響調査が典型です。app/Customize と app/Plugin を対象に、変更対象のサービスクラスや Twig の継承関係、purchaseFlow の差し込み箇所を洗い出す作業をクラウドに投げ、出てきたセッションを Team 可視性にしてレビュー担当に URL で渡します。調査結果のテキストだけを Backlog に貼るより、どのファイルをどう読んでその結論になったかが残るので、見積もりの根拠として使えます。Laravel でマイグレーションとモデルと FormRequest の影響範囲を出す作業や、WordPress でフックの使用箇所を横断して調べる作業も同じ型に乗ります。
セッションを他のメンバーに見せる手順
- claude.ai/code を開き、左のサイドバーから該当のセッションを開きます
- セッションタイトル横のメニューから共有の設定を開き、可視性を Private から Team に切り替えます
- セッションの URL をそのまま相手に渡します。コミットに付いている Claude-Session の URL と同じものです
見る側には、開いた時点の最新状態が読み取り専用で表示されます。リアルタイムには更新されないので、続きを見せたいときは再読み込みしてもらいます。共有者の表示名は相手に見えます。名前を出したくない場合や、Pro・Max でもリポジトリ権限の確認を必須にしたい場合は、claude.ai の Settings の Claude Code の項目にある Sharing settings で変えられます。
注意点と判断基準
- GitHub 以外のリポジトリでは片道になる。Backlog の Git のように GitHub に無いリポジトリでも、ローカルのリポジトリをまとめてアップロードする方式で
claude --cloudは動きます。ただし結果をリモートに push し戻せません。差分は claude.ai/code の画面で見るか、手で写すことになります。GitHub 連携のあるリポジトリでだけ往復が成立する、と考えておくのが安全です - Claude-Session を付けたくない場合。設定の
attribution.sessionUrlをfalseにすると、コミットのトレーラーとプルリクエスト本文のリンクが消えます(Claude Code 2.1.182 以降)。ただしCo-Authored-Byを無効にしても Claude-Session だけ残る、という不具合報告が GitHub の Issue に複数あります。バージョンによって挙動が揺れているので、非公開にしたい案件では実際のコミットを一度確かめてください - クライアントのリポジトリで使うときの判断。クラウドセッションではリポジトリの内容が Anthropic 管理の VM に clone されます。Team・Enterprise プランなら学習には使われず保持期間は30日ですが、それで足りるかどうかは契約次第です。開示範囲に制約がある案件はローカルで、自社案件や OSS はクラウドで、と最初に線を引いておくと迷いません
- 共有は自分で切り替えたときだけ起きる。他人のコミットに Claude-Session が付いていたからといって、自分の会話が見られているわけではありません。逆に、Team に切り替えたセッションは組織の全員が読めるので、共有する前に中身を一度見返す習慣は必要です
クラウドセッションの権限モードは、ローカルと同じ選択肢から画面のドロップダウンで選びます。自動モードの挙動と deny ルールの効き方は別記事にまとめています。今回のきっかけになったコミットに書かれていた Opus 5 の 1M コンテキストについてはこちらを参照してください。