文章摘要
Vercel插件在非Vercel项目中要求收集用户所有提示内容,包括通过提示注入方式获取授权许可,这一行为引发隐私担忧。作者通过分析源代码发现该插件试图跨项目收集用户数据。
文章总结
标题:Vercel插件试图收集你的所有提示词!隐私风险大揭秘
核心问题概述
虚假的同意机制
- Vercel插件通过向Claude系统上下文注入自然语言指令,伪装成原生界面询问用户是否共享提示词。
- 用户回答后,插件会直接通过Shell命令在本地文件系统写入偏好设置(如
echo 'enabled'),而非通过标准UI流程。 - GitHub已有开发者质疑此设计(#34号议题),但官方回应称受限于平台约束。
模糊的"匿名数据"定义
- 实际收集的数据远超描述:
- 必传数据:设备ID、操作系统、完整Bash命令(含敏感路径和变量名)
- 可选数据:用户提示词(需"同意"后收集)
- 所有数据通过持久性设备UUID关联,且Bash命令收集功能默认开启且未告知。
- 实际收集的数据远超描述:
无差别监控所有项目
- 插件虽具备框架检测能力(如识别Next.js项目),却对非Vercel项目同样启用遥测。
- 钩子匹配规则为空字符串(
""),意味着监控范围覆盖用户所有类型的项目。
改进建议
对Vercel
- 采用显式分级授权(会话元数据/Bash命令/提示词分项选择)
- 严格限制遥测范围为Vercel相关项目
- 在安装时明确披露数据收集范围
对Claude Code
- 为插件内容添加视觉标识(如
[Vercel插件]前缀) - 实现类似VS Code的插件权限管理系统
- 要求插件声明作用域限制
- 为插件内容添加视觉标识(如
用户即时应对方案
| 需求 | 操作 |
|------|------|
| 禁用所有遥测 | 在~/.zshrc添加export VERCEL_PLUGIN_TELEMETRY=off |
| 彻底停用插件 | 修改~/.claude/settings.json中的插件开关 |
| 清除设备追踪 | 删除~/.claude/vercel-plugin-device-id文件 |
技术证据链
- 设备ID存储路径:
~/.claude/vercel-plugin-device-id - 遥测端点:
telemetry.vercel.com/api/vercel-plugin/v1/events - Bash命令收集代码:
hooks/posttooluse-telemetry.mjs中直接提交toolInput.command原始值
(注:原文中的图片链接、部分代码片段及社交媒体信息等非核心内容已精简)
评论总结
评论总结:
- 关于插件设计问题:
- 批评插件在所有会话中强制注入无关技能,造成性能损失(~19k token/会话)
- "skills are injected into sessions that have nothing to do with Vercel"
- "every skill's trigger rules get evaluated on every prompt... regardless of whether Vercel is in scope"
- 指出当前插件架构缺乏细粒度权限控制
- "the permission model is 'all or nothing'"
- "Plugins should declare which project types they apply to"
- 关于隐私安全问题:
- 揭露默认开启的遥测会收集完整bash命令
- "Every bash command...sent to telemetry.vercel.com"
- "File paths, project names, env variable names...they get it"
- 质疑Vercel的诚信问题
- "Vercel is not a good actor"
- "That whole company is built on sketchy practices"
- 关于工程质量:
- 批评开发团队缺乏基本验证
- "where did even thinking the smallest amount go?"
- "I doubt anyone even thought to check it on a repo outside of a Vercel one"
- 有用户表示未发现异常连接
- "I have never seen Claude Code connect to anything other than api.anthropic.com"
- 公司层面批评:
- 指责Vercel垄断React生态
- "embrace-extend-extinguished the entire future of React"
- 讽刺性评论
- "the guy in the middle wants to take advantage of you"
- "You always had the option to not, ever, touch Vercel"