Claude CodeのSendUserFileでスマホに成果物を送る条件と使い方
SendUserFileは、Claude Codeが作ったレポートや図をスマホなど手元の端末へ届けるツールです。displayの指定、使える条件、届かないときの切り分けをまとめます。
Claude CodeのSendUserFileでスマホに成果物を送る条件と使い方
SendUserFileは、セッションの中で作ったファイルを、いま画面を見ている端末へ送る組み込みツールです。レポート、図、スクリーンショット、ビルドした成果物が対象で、キャプションも付けられます。ファイル名を会話に書いて終わりにせず、手元の端末にファイルそのものが届く点が要になります。
ただし、いつでも使えるツールではありません。使えるのはRemote Controlのクライアントが接続されているときか、クラウドセッションのときです。この記事では、役割、display 入力の指定、使える条件、届かないときの切り分けを扱います。
SendUserFileとは何をするツールか
SendUserFileは、Claude Codeのツール一覧に載っている組み込みツールの1つです。セッションのファイルをキャプション付きで送り、生成したレポートや図が会話の文面に登場するだけで終わらず、端末へ届くようにします。
たとえば外出中にスマホから長時間のタスクを見守っているとします。Claudeが調査結果をMarkdownにまとめても、パスが文字で返るだけなら、そのファイルは手元のPCの中です。SendUserFileを使うと、スマホの画面でファイルを開いたり、ダウンロードしたりできます。
ツール一覧の Permission required 列は、このツールについてNoです。この列は、Manualモードで作業ディレクトリ内のパスに対して確認が出るかどうかを示します。
displayで表示方法を選ぶ
v2.1.196から、任意の入力として display が加わりました。ファイルをどう見せるかを決める入力で、指定できる値は2つ、指定しない場合もあります。
| 指定 | 動き | 向く場面 |
|---|---|---|
render | 動きクライアント内でファイルをそのまま開く | 向く場面図やレポートをその場で読む |
attach | 動きダウンロード用のカードだけを出す | 向く場面大きなファイルや、保存が目的の成果物 |
| 未指定 | 動きファイルの種類を見てクライアントが決める | 向く場面迷ったらこの既定 |
render は、開いた画面で中身をすぐ確認したいときの指定です。attach はカードだけを出すので、会話の流れを崩さずに成果物を渡せます。未指定の場合は、種類ごとの振り分けをクライアント側に任せる形になります。
この入力を選ぶのはClaudeです。人間がコマンドで display を渡すわけではありません。狙いどおりの見せ方にしたければ、指示文で伝えます。書き方の例は「指示文でdisplayの狙いを伝える」の節にあります。
使える条件は2つ、使えない環境は3つ
ツールが使えるのは次のどちらかです。
- Remote Controlのクライアントが接続されている
- クラウドセッション(Claude Code on the web)である
送るファイルが端末へ届く経路は、Anthropicが運用する基盤を通ります。そのため、Amazon Bedrock、Google CloudのAgent Platform、Microsoft Foundryでは、このツールは使えません。
| 状況 | SendUserFile |
|---|---|
| Remote Controlのクライアントが接続中 | SendUserFile使える |
| クラウドセッション | SendUserFile使える |
| Amazon Bedrock / Agent Platform / Foundry | SendUserFile使えない |
ツール一覧に挙がっている使用条件は、上の2つだけです。Remote Controlを有効にしていないローカルの単独セッションは、この条件に含まれていません。ターミナルの前に座っているだけなら、成果物のパスはそのまま手元で開けるので、送る必要がありません。
Bedrockなどの3環境は、Remote Control側でも使えない環境として挙がっています。クラウドセッションも、第三者プロバイダー向けの設定のままでは始められません。つまりこの3環境では、SendUserFileに至る2つの道がどちらも閉じています。
届かないときは、症状から原因をたどる
SendUserFileが見当たらない、またはファイルが届かないときは、次の順に絞ります。
届かないときの切り分け
- 1
セッションの種類を見る
ローカルならRemote Controlのクライアントが接続中か、クラウドセッションかを確かめます。接続中は端末に
/rc activeの表示が出ます(狭い端末では隠れます)。 - 2
プロバイダーを見る
Bedrock、Agent Platform、Foundryのいずれかなら、ここで原因が決まります。
CLAUDE_CODE_USE_BEDROCKのような環境変数が残っていないかも見ます。 - 3
Remote Controlの要件を見る
プラン、
ANTHROPIC_BASE_URL、フィーチャーフラグ関連の環境変数、組織側のトグルを順に確かめます。表示されたエラー文言は、下の表で原因に引けます。 - 4
ツール一覧を直接尋ねる
Claudeに
What tools do you have access to?と尋ね、SendUserFileが出ているかを見ます。使えるツールの一覧はプロバイダー、プラットフォーム、設定で変わるため、読み込み済みのツールは本人に聞くのが確実です。
3番目の確認で目にしやすい表示は次のとおりです。メッセージの原文は、Remote Controlのトラブルシューティングに載っているものです。
| 表示 | 原因 | 直し方 |
|---|---|---|
Remote Control is only available when using Claude via api.anthropic.com | 原因Bedrockなどのプロバイダーのほか、ANTHROPIC_BASE_URL が api.anthropic.com 以外を指している | 直し方名指しされた環境変数を外して再起動 |
Remote Control requires claude.ai subscription auth. | 原因ANTHROPIC_API_KEY、ANTHROPIC_AUTH_TOKEN、apiKeyHelper のいずれかで認証している | 直し方該当の設定を外し、claude auth login でclaude.aiを選ぶ |
Remote Control requires feature-flag evaluation | 原因CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC か DISABLE_GROWTHBOOK が設定されている | 直し方その変数を、設定されている場所(シェルまたは settings.json の env)から外す |
テレメトリー系の変数は少し違います。DISABLE_TELEMETRY と DO_NOT_TRACK だけを設定している場合、Remote Controlは使えます。ただし組織がTrusted Devices(端末の登録を求める設定)を必須にしているときは、この2つも外す必要があります。この2つを設定したままの利用はv2.1.283以降が条件で、v2.1.154からv2.1.282までは、2つとも上の feature-flag evaluation の表示で止まっていました。
組織の管理側が原因のこともあります。次の3つは、手元の環境変数をいくら見ても直りません。
- Team / Enterpriseで、Ownerが管理画面のRemote Controlトグルをまだ有効にしていない(既定はオフ)
- 管理設定の
disableRemoteControlで、IT管理者がその端末のRemote Controlを止めている - 組織がHIPAA構成のとき(
/statusのCompliance行にHIPAAと出る)。管理画面のトグルもグレーアウトされ、Ownerは変更できない
接続手順そのものはRemote Controlの入門記事に、ANTHROPIC_BASE_URL やLLMゲートウェイが絡むエラーの一覧は「requires the Anthropic API」の解説にあります。
Remote Controlを使う前に押さえる要件
要件は、SendUserFileが使えない原因になりうるものだけを拾うと次のとおりです。
- サブスクリプションはPro、Max、Team、Enterpriseです。APIキーは対象外です
- 企業のClaude apps gateway経由でサインインしている場合も、Remote Controlは使えません
- 信頼していないディレクトリでは、
claude remote-controlがTrust <directory>? [y/N]と尋ねます。ホームディレクトリでは信頼が保存されず、実行のたびに尋ねられます
接続を始める方法は次の3つです。
# サーバーモードで起動(端末から接続を待ち受ける)
claude remote-control
# 起動済みの対話セッション内で接続する(スラッシュコマンド)
# /remote-control
# 対話セッションを最初からRemote Control付きで起動する
claude --remote-controlv2.1.289の claude remote-control --help には、--spawn <mode>(same-dir / worktree / session、既定は same-dir)と --capacity <N>(同時セッション数の上限、既定は32)が並んでいます。same-dir では全セッションが同じ作業ディレクトリを共有するため、成果物を書き出すファイル名がぶつかることがあります。SendUserFileで送る前に別セッションの出力で上書きされる事態を避けたいなら、--spawn worktree でセッションごとに作業ツリーを分ける選択肢があります。
ローカルとクラウドで「届く先」の意味が変わる
2つの条件は、セッションが動く場所が違います。Remote Controlはセッションが手元のマシンで動き、Webやスマホはその窓口になります。クラウドセッションは、Anthropicが管理するクラウド基盤(組織の自前環境を選んだ場合はそちら)で動き、ノートPCを閉じても走り続けます。
SendUserFileが効く場面の違い
Remote Control
成果物は手元のPCにあります。ただし外出中は開けないので、スマホへ先に送る意味が出ます。送らなかった場合は、帰宅後にPCで開けます。
クラウドセッション
成果物はクラウド上の作業環境にあり、手元の端末にはファイルが1つもありません。送らなければセッション内に残ったままで、読むには会話の文字か、受け取ったファイルが頼りです。
クラウドセッションは、ローカルにリポジトリがない状態でも作業を始められる使い方です。対象プランはPro、Max、Teamと、プレミアムシートまたはChat + Claude Codeシートを持つEnterpriseです。Remote Controlとは対象プランの書かれ方が異なるので、両方を使い分ける場合は条件を別々に見ます。
逆向きの「スマホからPCへ」とは別の機能
Remote Controlには、スマホやブラウザーから写真やファイルを添付して送る機能もあります。こちらはユーザーからClaudeへ向かう方向です。
添付とSendUserFileは向きが逆
Remote Controlの添付
スマホやブラウザーから写真やファイルを送ります。写真はメッセージの一部としてそのままClaudeに見え、写真以外は手元のマシンにダウンロードされ、@ のファイル参照として渡ります。
SendUserFile
Claudeが生成したレポートや図が、端末に届きます。display で、その場で開くかカードだけにするかを選びます。
往復の作業では、スマホから元データを添付し、Claudeが加工した結果をSendUserFileで受け取る流れが組めます。片方が動くことは、もう片方が動く保証にはなりません。
添付側には、受け取りに失敗した場合の動きが決まっています。手元のマシンにダウンロードできなかったファイルがあっても、メッセージとダウンロード済みのファイルはClaudeに渡ります。欠けたファイルの代わりに、[1 of 3 attachments did not arrive] のような注記がメッセージに加わります。
権限設定とフックでの扱い
ツール名は、権限ルールやフックのmatcherにそのまま書く文字列です。SendUserFileのように括弧付きの指定子を持たないツールは、名前だけを書く形になります。
--tools フラグで組み込みツールの集合を絞り込むときも、ツール名はこの文字列です。手順は--tools フラグの解説にあります。フックからこのツールの呼び出しを見たいときは、PreToolUse hookの記事にあるmatcherの書き方に沿って、ツール名を指定します。
ファイルの外部送信そのものを止めたい組織では、deny に名前だけを書く方法があります。
{
"permissions": {
"deny": ["SendUserFile"]
}
}権限ルールの仕様では、括弧なしのツール名だけの deny ルールは、そのツールをClaudeのコンテキストから取り除きます。会話の途中で追加した場合も、次のツール呼び出しから使えなくなります。ツール一覧の Permission required 列がNoであることと、deny で止められることは別の話です。
指示文でdisplayの狙いを伝える
display を選ぶのはClaudeなので、成果物の扱いはプロジェクトの指示文に書いておくと揃います。CLAUDE.mdに置く規約の一例です。
## 成果物の受け渡し
- 調査レポートや図を作ったら、ファイルのパスを書くだけで終わらせず、
SendUserFile で送る。
- その場で読ませたい短いレポートと図は render にする。
- ビルド成果物や大きなファイルは attach にして、ダウンロードだけできるようにする。
- キャプションには、何のファイルかを1文で書く。
- SendUserFile が使えない環境では、ファイルのパスを書く。これはClaudeへの依頼文の例です。書いたとおりに選ばれるかどうかは、実際のセッションで見て調整します。最後の1行は、送れない環境のセッションが混ざる場合の代替です。ツールが見つからなくても、成果物の場所が会話に残ります。
render を指定したのに画面で開かず、カードだけが出ることもあります。未指定時はクライアントが種類で判断する、というのが仕様の説明です。render を指定した場合に表示できない種類をどう扱うかは、ツール一覧の説明に書かれていません。
まとめ
SendUserFileの使えなさは、たいてい「環境」「Remote Controlの要件」「組織の設定」のどれかに行き着きます。手元の環境変数を見ても直らなければ、Ownerのトグルや disableRemoteControl のように、組織側で止まっている可能性を疑います。
指定に迷ったときは、display を未指定のままにしてクライアントに任せられます。