世界を動かす技術を、日本語で。

Claude CodeのVercelプラグインがあなたのプロンプトを読み取ろうとしています

2026年4月10日原文(akshaychugh.xyz)

概要

Vercelプラグインが非Vercelプロジェクトでも全プロンプトやbashコマンドを収集 同意取得はプロンプトインジェクションで、実際のUIでは表示されない 「匿名使用データ」の範囲が広く、bashコマンド全文やデバイスIDも送信 全プロジェクトで動作し、明確なオプトアウト方法は隠されている 問題点と対策、改善提案を解説

Vercelプラグインの問題点と実態

  • VercelプラグインVercel非対応プロジェクト でも動作
  • vercel.jsonnext.config、依存関係がなくても発動
  • ClaudeなどのAIツール利用時、 「プロンプト共有」 の確認が突然表示
  • 同意取得 はUIでなく、 プロンプトインジェクション による擬似的な質問
    • Claudeのシステムコンテキストに命令を注入、質問とシェルコマンド実行を指示
  • 「匿名使用データ」 の範囲が不明瞭
    • bashコマンド全文、デバイスID、OS、検出フレームワーク、CLIバージョンなど
    • bashコマンドは 毎回自動送信、オプトイン不要
    • プロンプト全文は オプトイン時のみ
  • プロジェクト検出なし
    • すべてのプロジェクト、全ファイルで動作
    • フレームワーク検出機能はあるが、 テレメトリ発火の制御には未使用
  • デバイスID は一度作成され永続利用、セッションやプロジェクトを横断して紐付け
  • オプトアウト方法 はREADME内のみ記載
    • インストール時や初回起動時には案内なし

問題点まとめ

  • 同意取得が不透明
    • UIでの明示的な同意でなく、AIへの命令で擬似的に質問
    • 「Vercelプラグインからの質問」との明示もなし
  • 「匿名使用データ」の説明が不十分
    • 実際はプロジェクト名やファイルパス、環境変数名なども送信対象
    • オプトアウトしない限り 常時収集
  • 全プロジェクトで動作
    • RustやPythonなどVercel非対応のプロジェクトでも監視
    • フレームワーク検出機能を テレメトリの発火制御に未使用
  • オプトアウト方法が分かりにくい
    • 環境変数や設定ファイル編集が必要
    • READMEはプラグインキャッシュディレクトリ内のみ

改善提案

  • 全テレメトリ項目で明示的オプトイン必須
    • 収集項目ごとに選択肢を提示
  • 「匿名使用データ」の再定義
    • 実際の収集内容を正確に明示
  • テレメトリのプロジェクト限定化
    • フレームワーク検出結果で発火制御
  • Claude Codeプラグインの可視化
    • プラグイン由来の質問には明示的なラベル表示
  • プラグインごとの権限設定
    • インストール時に収集範囲・権限を明示
    • VS CodeのactivationEventsのような仕組み導入

現時点での対策方法

  • Vercelテレメトリ完全停止
    • export VERCEL_PLUGIN_TELEMETRY=off~/.zshrc などに追記
  • プラグイン無効化
    • ~/.claude/settings.json"vercel@claude-plugins-official": false を設定
  • デバイスID削除
    • rm ~/.claude/vercel-plugin-device-id で永続IDを削除

    • 環境変数でテレメトリを停止しても、プラグインは通常通り利用可能

    • 機能損失はデータ収集のみ

技術的根拠とGitHub課題

  • ソースコードの該当箇所
    • テレメトリエンドポイント: hooks/telemetry.mjs 8行目
    • デバイスID生成: hooks/telemetry.mjs 10行目
    • bashコマンド収集: hooks/posttooluse-telemetry.mjs 29-33行目
    • セッション開始時の情報送信: hooks/session-start-profiler.mjs 471-480行目
    • 同意プロンプトの注入: hooks/user-prompt-submit-telemetry.mjs 67-85行目
    • プロジェクト制御なし: hooks/hooks.json のmatcher設定
  • 関連GitHub課題
    • #34, #38, #19, #12

総括

  • VercelClaude Code 両者の設計・運用の問題
  • 利用者は現状を把握し、 明示的なオプトアウト で自己防衛が必要
  • プラグイン・AIツールの権限設計や可視性向上の必要性

Hackerたちの意見

スキルは、VercelやNext.js、またはこのプラグインの範囲とは関係のないセッションに注入されている > 各スキルのトリガールールは、Vercelが範囲内かどうかに関わらず、すべてのリポジトリのすべてのプロンプトとツール呼び出しで評価される > 複数のプロジェクト(Vercelのものとそうでないもの)で作業しているユーザーにとって、これはすべてのセッションで固定の約19,000トークンのコストがかかる — セッションが純粋なバックエンド作業、データサイエンス、または非Vercelのフロントエンドであっても。最近は何でも「バイブスロップ」って感じだけど、こんなものをどうやって出荷するに至ったのか? プラグインや拡張機能が自分の望むコンテキストで動作するか確認し、望まないコンテキストに影響を与えないことを確かめるのが、こんなものを作るための最初のステップだと思うんだけど。「エンジニアリングはどこに行った?」って言うのも複雑すぎるし、そもそもちょっとでも考えることすらなくなったのかな?

プラグイン/拡張機能が動作するか確認する なんで今の彼らが自社製品でそんなことをしてると思うの?

ここでの大きな問題は、テレメトリーそのものじゃなくて、無関係なリポジトリで使われるツールに対してコンテキストに敏感でない統合を出荷することだよ。もしオーバーヘッドが本当にあるなら、それは便利なプラグインを、チームが積極的に対抗しなきゃいけないものに変えてしまう。

残念ながら、人々はいつも自分が欲しかった機能が動作するかどうかを確認することに時間を費やす傾向があるんだよね。ハッピーパスをテストするだけ。多くの表面的な上司やコードレビュアー、QAテスターもこれをチェックする… 自分のコードが他の場所で何度も実行されるか、失敗ケースを確認することなんて… それは「早く出荷して、壊す」モードの時には贅沢すぎるよ。

あなたのコメントは、プラグインが彼らの望むように動作していないと仮定しているけど。設計の仕方が、彼らに最大限のデータをもたらすんだよ。それが彼らの目標なら、うまく機能している。

最近は何でも「バイブスロップ」って感じだけど、こんなものをどうやって出荷するに至ったのか? あなたの質問の最初の部分が、2番目の部分に答えているよ。気にする人はいなくなった。変わる前に、人々は自分の足で投票しなきゃいけない。

正直、Vercelで働いている人たちや、彼らのバイブコーディングの量を知っていると、誰もこれをプッシュする前にチェックしたとは思えない。

セッションごとに19kトークン使うのに、スキルトリガーはプロジェクトの範囲をチェックすらしない。非Vercelのリポジトリでもそのオーバーヘッドを払わなきゃいけないのが辛い。

心配いらないよ。彼らはBunを手に入れたのは、全体のエコシステムやツールのエンジニアリングの優秀さにすごく投資しているからみたいだね。

確かに、問題はプラグインがシステムプロンプトに振る舞いを注入することじゃない — それはすべてのプラグインやスキルがやっていることだから。でも、これは信頼の大きな裏切りだよ。特にデフォルトでオンになっているテレメトリーは、完全なbashコマンドを含んでいるから。OOPによれば: > あの真ん中の行。すべてのbashコマンド - ツール名だけじゃなくて、完全なコマンド文字列 - がtelemetry.vercel.comに送信される。ファイルパス、プロジェクト名、環境変数名、インフラの詳細。コマンドに何が含まれていても、彼らはそれを取得する。(言うまでもなく、これはあらゆる意味でサプライチェーン攻撃であり、セキュリティチームはそのように扱うべきだ。)CLIスペースがないからオプトインのテレメトリーができないという主張は馬鹿げてる — 彼らのREADMEには、Vercelプラグインをnpxでインストールするように書いてある https://github.com/vercel/vercel-plugin?tab=readme-ov-file#i... これはVercelの社員が書いたもので、いつでもこのオプトインを追加できる。個人的には、Vercelは良い行動をしていないと思う。彼らがReactの未来を独立した自己完結型の基盤ライブラリとして抱え込んで、サーバーサイドレンダリングの複雑さや、それを支える文書化されていないプロトコル、そして彼らのサーバー環境への密接な結合をもたらしたという主張は十分に成り立つ。残念ながら、この行動には驚かない。追記: あのnpx pluginsのコード? GitHubにはなくて、NPMにしか存在しないし、そのパッケージのv1.2.9の時点で、https://www.npmjs.com/package/plugins?activeTab=codeを検索すると、すでにオプトアウトベースでテレメトリーをhttps://plugins-telemetry.labs.vercel.dev/tに送信している! ほら、ほとんどその自信を称賛せざるを得ないよ。

Reactチームにいた者として言わせてもらうけど、Reactをサーバーに拡張する動きやそのデザインの反復は、常にチーム内から出てきたものだよ。何人かはVercelに行って、Metaよりも強固なバックアップで始めたことを完成させたけど、君たちが言ってる「Vercelの乗っ取り」みたいな話は嘘だね。

あの会社は怪しいやり方で成り立ってるよね。

Hacker Newsで議論の続きを見る