【免费下载链接】stashbase
An open-source, local-first writing workspace where you can write with Claude Code and Codex, drawing on your own sources and past work.
StashBase 是一款开源、本地优先(local-first)的写作工作台,让你可以带着 Claude Code 和 Codex 一起写作,并引用自己的资料与过往作品。不少新用户都会关心同一个隐私问题:**StashBase 遥测到底上传了什么数据?能不能一键关闭?**本文基于官方文档与源码给你一份完整、透明的解读,并附上最快的一键关闭方法。
一、先说结论:默认开启,但只收集"骨架数据"
官方桌面版(Official Desktop Builds)默认会将产品活动事件和详细的错误诊断发送到 PostHog 分析平台。核心规则只有一条:
设置(Settings)→ 通用(General)→ 隐私(Privacy)→Share usage statistics(共享使用统计),一个开关同时控制活动统计与错误诊断。
而且关掉之后,所有功能照常可用,不会有任何功能降级。开发版构建以及没有配置上报地址的构建则完全不发送任何数据。
二、StashBase 收集了哪些遥测事件?
官方事件白名单只有十几类,全部定义在 shared/protocols/http/telemetry.ts 中,逐一对应如下:
| 事件 | 含义 | 附带字段 |
|---|---|---|
app_opened | 工作区挂载(每个宿主生命周期仅一次) | 无 |
app_active | 可见且聚焦窗口内收到真实指针/键盘/滚轮输入 | 模式:welcome / documents / chat |
document_engaged | 在文档界面内交互或真实编辑 | 阅读/编辑、文件格式 |
agent_turn_started/agent_turn_finished | Agent 对话轮次开始与结束 | 运行时、成功/失败/取消/拦截、耗时分档 |
document_write_result | 编辑器保存结果 | 成功/失败/冲突 |
project_entry_result | 打开项目操作的结果 | 结果状态 |
account_login_*/account_signed_out | 登录流程开始、成功/失败、登出 | 结果状态 |
billing_*/subscription_observed | 获取结账页/管理页的结果、订阅权益确认 | 计划档位(有界枚举) |
agent_setup_result/agent_setup_stage | Agent 安装与连接各阶段 | 运行时、阶段、结果 |
application_error/application_warning | 宿主/渲染端/Agent/原生组件的失败或降级 | 受限的诊断文本 |
几个值得注意的"克制设计":
- 📉不是心跳:
app_active和文档活动事件在全应用范围内每分钟最多计一次;后台空闲进程、自动刷新、流式输出都不会算作"活跃"。 - 📝不记录文字:编辑事件不含任何文本内容或按键记录。
- 🔁错误去重:相同的错误在窗口期内(错误 1 分钟、警告 10 分钟)只上报一次并累计
occurrences次数,避免重复刷屏。
三、它永远不会收集什么
这一点在 docs/usage-statistics.md 中有明确承诺:
- ❌ 文档内容、聊天记录、提示词/回复原文
- ❌ 搜索查询、剪贴板内容、截图
- ❌ 硬件指纹、完整原始日志、内容哈希
- ❌ DOM 点击捕获、会话回放(session replay)、页面浏览追踪、AI 调用追踪
需要坦诚说明的一点:错误诊断可能包含出错操作提及的文件路径、URL 或名称,已知凭证(API Key、Bearer Token、私钥、Cookie 等)会在采集时和发送前被双重过滤,但官方明确这是"定向过滤",不承诺从诊断文本中删除所有个人细节。
四、匿名 ID 是怎么工作的?
- StashBase 会生成一个随机的安装 ID和一个独立的匿名 ID,两者都不来自硬件,因此无法关联到你的设备。
- 登录 StashBase 账号后,匿名历史会通过稳定的账号 ID关联到你的账户——注意,用的不是邮箱、姓名或头像。
- 退出登录或切换账号会生成新的匿名身份,历史不会跨账号合并。
五、一键关闭:最快配置方法
关闭遥测只需 3 步,10 秒搞定 ⏱️:
- 打开 StashBase,进入设置(Settings)
- 依次点击通用(General)→ 隐私(Privacy)
- 关闭Share usage statistics开关
该开关的界面实现在 renderer/src/features/settings/ui/general/telemetry-group.tsx。关闭瞬间,后端会立刻做以下清理(见 server/telemetry.ts 的update逻辑):
- ⚡ 取消所有待发送的网络请求
- 🗑️ 删除本地事件队列(最多缓存 500 条、保留 7 天)
- 🧹 抹除全部本地分析身份、原生诊断文件与抑制标记
- 🔕没有"最后的告别请求"——关闭开关后不会再向网络发任何通知
六、关闭后要知道的三件事
- 已发送的数据无法撤回。这个开关只能阻止未来的采集,之前已传输的事件无法通过它删除。
- 重新开启是"全新开始":会生成全新的本地 ID,不会回填关闭期间的活动。
- 本地缓存队列:事件是先原子写入本地配置目录再发送的,队列上限 500 条(server/telemetry-state.ts 中的
QUEUE_LIMIT),限流为每分钟 120 条,且遥测从不阻塞你的写作操作或应用退出。
七、进阶:给开发者和 Fork 用户的提示
- 自动化测试环境下(
NODE_ENV=test、Vitest、Jest)会自动禁用生产采集,无需手动处理。 - 手动验证打包版时,可用环境变量强制关闭:
STASHBASE_TELEMETRY_DISABLED=1 # 启动前设置,优先级高于一切设置项 - Fork 项目时请注意:server/telemetry-destination.json 内置了 PostHog 上报地址与公共摄取令牌,官方建议 Fork 后清空或替换它。
八、延伸阅读
- 📄 完整遥测说明(事件语义、保留策略、去重机制):docs/usage-statistics.md
- 🔧 采集主逻辑(身份、准入、会话归因、退出开关):server/telemetry.ts
- 📡 事件协议与严格字段白名单:shared/protocols/http/telemetry.ts
- 🧭 设置项路由(
/api/telemetry):server/routes/telemetry.ts - 💻 安装与平台要求:docs/installation.md
一句话总结:StashBase 的遥测只关注"你在用、用得顺不顺、哪里出错了",不碰你的文档与对话内容;如果你追求极致隐私,进设置 → 通用 → 隐私一键关闭即可,且无需付出任何功能代价。
【免费下载链接】stashbase
An open-source, local-first writing workspace where you can write with Claude Code and Codex, drawing on your own sources and past work.
相关推荐
Strix 遥测(Telemetry)机制全解析:收集什么、隐私边界与一键关闭
Strix 遥测(Telemetry)机制全解析:收集什么、隐私边界与一键关闭 导读 Strix 是一个开源 AI 渗透测试工具,其遥测(telemetry)模
网络安全渗透测试应用安全AI Agent人工智能红蓝对抗QOwnNotes 使用指标(Metrics)收集机制全解析:为什么收集、收集什么、如何关闭与审计
QOwnNotes 使用指标(Metrics)收集机制全解析:为什么收集、收集什么、如何关闭与审计 导读 本文以 QOwnNotes 官方 FAQ 文档( we
桌面应用如何关闭 Quivr 的遥测数据收集?
如何关闭 Quivr 的遥测数据收集? 如果你自行部署了 Quivr 的 RAG 后端,并希望避免它向外部发送匿名使用数据,需要做的核心操作只有一个:在后端的环
后端人工智能RAG搜索引擎
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考