Helpike 收集什么
这一页就是承诺书。它说明 Helpike 关于你的使用所发送的全部内容、在什么情况下发送, 以及如何关闭。如果这里写的和软件的实际行为不一致,那就是 bug——字段清单由源码中的一个测试锁定。 协议本身是使用条款的第 5 节;这一页是它背后逐字段的细节。
helpike-mcp)不会为遥测发出任何网络请求——一个都没有。这一页的内容不会改变这一点。
两个层次
第 0 层——CDN 访问日志(始终存在,和任何下载一样)
应用会向本站发起 HTTPS 请求:下载安装包、文档目录、DocPack 或嵌入模型时——另外还会
每小时自动一次询问是否有新版本(/download/latest.json,
query string 里带上版本、操作系统和架构)。应用打开期间,还会每 30 分钟重新加载一次文档目录。
和互联网上任何服务器一样,CDN 会为其中每一次请求记录一行:日期、请求路径、状态码、字节数、IP 和 User-Agent。你从任何地方下载任何文件都是如此,这早于我们的任何决定。项目对这些日志行做的事:
- 按天汇总,绝不按单次请求;
- 统计各平台、各文档包的下载量;
- 用
IP + User-Agent的摘要估算独立机器数,并加上一个每月轮换的密钥 做盐——这使得跨两个月把观测结果关联到同一台机器成为不可能; - 绝不把 IP 写入数据库。它只在汇总过程中存在于内存里,原始日志 45 天后从存储中过期。
应用的 User-Agent 是 Helpike/2.3.0 (macos; aarch64),sidecar 的是
helpike-mcp/0.1.0 (macos; aarch64)。产品名、版本、系统、架构——仅此而已。
第 1 层——beacon(写在使用条款里)
在你接受使用条款之后——也就是应用首次启动时呈现、第 5 节对此作出声明的那个界面—— 应用会每天发送一次 GET 请求,带上前一天的计数。在你接受之前,什么都不会发送。
接受不追溯既往。接受会把昨天标记为已上报:在条款被阅读之前记录的数据永远不会被发送。
设置 DO_NOT_TRACK 会立即停止发送,包括中断一次正在进行中的发送。
另一端并没有服务器在接收:目标是同一个 CDN 上一个 3 字节的文件,而 CDN 为这次请求写进访问日志的那一行 本身就是这次采集。
完整的上报内容
应用会在你做决定之前,在界面上原样展示这个 URL。它由执行发送的同一个函数拼装:
GET https://helpike.com/beacon.txt
?v=1
&i=0123456789abcdef0123456789abcdef
&d=2026-08-23
&a=2.3.0&o=macos&r=aarch64
&fd=41&pk=7&pb=3120&ao=3&am=214&sc=5&em=95
&q=88&q0=4&t=12&p50=31&p95=84&md=1
&cl=claude-code:4,cursor:1
&tp=rails,turbo,rubyllm
| 字段 | 含义 |
|---|---|
v | 格式版本 |
i | 安装 id:16 个随机字节,在本机生成 |
d | 这些数字对应的(已结束的)日期,UTC |
a · o · r | 应用版本 · 操作系统 · 架构 |
fd | 距首次运行的天数 |
pk · pb | 已安装文档包数 · 占用磁盘 MB |
md | 嵌入模型是否已安装,是则为 1 |
ao · am | 应用打开次数 · 窗口开启的分钟数 |
sc | MCP 助手会话数 |
em | 活跃分钟数:至少含一次 MCP 事件的 5 分钟窗口 |
q · q0 · t | 搜索次数 · 零结果的搜索次数 · 其他工具调用次数 |
p50 · p95 | 搜索延迟,单位毫秒 |
cl | 连接过的助手,及各自的会话数 |
tp | 命中这些搜索的文档包,最多 8 个 |
永远不会发送的内容
- 你的搜索词。永不发送——不截断发送,也不做哈希发送。
- 项目路径、文件名或目录名。
- 搜索结果页面的标题或正文。
- 机器名、系统用户名、邮箱、电话号码。
- 以上任何内容的哈希值——路径的哈希仍然是在追踪一个项目。
产品里任何地方都没有账号、登录、会话或 cookie。
tp 看似是唯一的例外,其实不是:文档包的 slug(如 rails)是公开目录里的数据,
也是回答“人们下载之后到底会查哪些包”的唯一途径。只有存在于已发布目录中的名字才会被发送——
你自己构建、复制到 ~/.helpike/packs 的包会在发送前被过滤掉,因为它的名字就是你磁盘上的一个
目录和一个文件。如果拿不到目录,tp 就发空值。
如何关闭
在环境变量里:设置 DO_NOT_TRACK=1 或
HELPIKE_NO_TELEMETRY=1。每次发送前都会重新读取,因此无需重启应用即可生效。
DO_NOT_TRACK 是跨工具的通用约定;Helpike 自己的变量则用于只让这一个应用噤声。
应用里没有开关。第 1 层写在使用条款第 5 节里,随你使用本产品而开始;应用在界面上提供的是透明度—— 首页的使用数据面板会展示它将要发送的那条 URL,以及本次安装的 id。
想更换标识符,删除 ~/.helpike/install.json 即可:下次运行会生成一个新的,且与旧的没有任何关联。
要删除已经发送出去的记录,把应用在同一个界面上显示的 i 发送到
support@helpike.com——该 id 下的所有记录都会被删除。
同一个地址也接收安全问题报告。
留在你机器上的内容,以及位置
| 文件 | 内容 |
|---|---|
~/.helpike/activity.jsonl | 助手做过的一切,包含搜索词原文。一直在写入,从不发送。首页的“清除历史”按钮会删除它。 |
~/.helpike/appuse.jsonl | 应用打开期间,每 5 分钟一行 |
~/.helpike/usage/<日期>.json | 每日汇总——正是上面表格里的那些数字 |
~/.helpike/install.json | 安装 id、你所接受的条款版本,以及接受的日期 |
它们全都是纯文本,用 cat 就能读。删掉其中任何一个都是安全的。
为什么需要它
这个项目是免费的,没有收入,由一个人维护。遥测回答的那些问题,正是决定接下来做什么的问题:哪些文档包值得维护、 到底有多少人在用,以及最烧钱的那一个——下载流量什么时候会超出 CDN 的免费额度,开始每月花掉几百美元。
不去度量,诚实的替代做法是承认在猜。不诚实的做法,是度量了却不说。