← 全部文章
engineeringprivacy

终端广告隐私:我们如何把同意与脱敏放在第一位

终端广告隐私是我们的出发约束,而不是事后加上的功能。当我们决定在 Tybre.md 的内置终端里探索情境广告时,第一个问题不是「怎么赚钱」,而是「怎么设计才能让开发者的密钥永远不离开机器」。本文是对这套设计的工程解读:为什么系统默认关闭、两段式同意如何运作,以及在任何一个字节发出去之前,本地 Rust 脱敏如何把密钥遮成 ▮▮▮

首先说诚实的部分:这套系统目前不给你钱。收益累计还在计划阶段,尚未上线;不支持提现;现在轮播的自家广告收入是 $0。我们在赚钱这块还只是脚手架时就公开架构,正是希望隐私设计凭自身价值被审视,而不是被当成副业来兜售。

永远默认关闭

终端广告系统以禁用状态发布。全新安装不显示广告、不发送任何东西、也不收集任何东西。在你进入设置并刻意打开之前,广告管线的任何部分都不会运行。这与行业默认相反——那种默认开启遥测、让你去找开关关掉的做法。

默认关闭比任何单项技术控制都更重要,因为它意味着「什么决定都不做时得到的状态」就是安全状态。一个从不读本文、从不打开设置、从不想广告的用户,在设计上就是完全私密的。下文的一切只适用于刻意选择开启的人。

两段式同意,而非埋起来的一个复选框

打开这个功能不是偏好面板里藏着的单个开关。它需要两个刻意的步骤:一次明确的启用操作,然后是一份单独的确认,写清到底收集什么、不收集什么。两步都通过,才会激活任何东西。

我们故意分成两步。单击太容易误触,而能被误触给出的同意不算同意。第二步的存在,是为了让「数据收集可能开始的那一刻」成为你在条款摆在眼前时明确选择的一刻。任一步未完成,系统就停留在默认的沉默状态。

在任何数据离开前,用 Rust 本地脱敏

这套设计的核心在于脱敏「发生在哪里」:完全在你的机器上,在原生 Rust 层,先于任何网络调用。不存在先发原始数据、再到服务器端清洗的做法。遮蔽先在本地跑,只有遮蔽后的结果才有资格离开。

具体来说,脱敏过程会扫描收集到的输入,寻找看起来像密钥、API key、token、凭证之类的高风险字符串,并就地替换成 ▮▮▮。等到管线有东西要传输时,敏感子串早已消失,被换成无法还原的不透明块。在拥有 PTY 的同一层——Rust 里做这件事,意味着脱敏不是渲染 bug 可能跳过的 JavaScript 事后处理,而是坐在一切都必须经过的路径上。

这与整个应用贯穿的本地优先理念一致。正如我们在 本地优先 Markdown 笔记里说的,笔记留在磁盘上;广告系统同样把你的机器当作信任边界,在这条边界的内侧做脱敏,就是全部要点。

只收提交的输入行,绝不收按键或输出

终端看得到很多东西。把一切都抓下来——每次按键、每条命令的输出、滚过的每个文件——很容易,但也是错的。我们刻意一样都不收。唯一有资格被收集的,是你真正按下 Enter 提交的那一行命令。

  • 不是按键:打了一半的输入、退格、放弃的命令都不会被抓。只有最终按 Enter 提交的那一行才被考虑。
  • 不是输出:命令打印的内容、日志、文件内容、程序结果,一律不进入管线。
  • 不是提示符里输入的密码:不回显的交互式提示完全在「提交行」路径之外。
  • 连提交的那行也先在本地脱敏。带 token 的 Enter 提交命令,在任何东西移动之前 token 就已被遮成 ▮▮▮

为什么是这个形态,以及还缺什么

架构长这样,是因为情境相关性几乎不需要什么。比如要给使用 Claude Code 的开发者展示相关广告,系统只需要一个关于你运行哪些工具的粗略信号,而一条脱敏后的提交命令行就够了。它不需要你的按键、输出或密钥,所以一样都不收。最小化收集,比广泛收集再承诺规矩,更便宜也更安全。

我们对「还没做的部分」同样坦白:今天没有真金白银付款的收益账本,没有提现机制,轮播中的是收入 $0 的自家广告。如果赚钱这块哪天成真,它会得到和隐私设计一样的待遇——只在能诚实描述时才发布。对更关心工作流而非内部实现的读者,我们的 Claude Code Markdown 工作流指南是这篇深潜的实用搭档。

常见问题

终端广告系统现在会让我赚钱吗?

不会。收益累计已在计划但尚未上线,不支持提现,当前自家广告收入 $0。我们先发布了隐私架构,并坦白:付款这一侧目前还不存在。

广告系统默认开启吗?

不。它以完全关闭的状态发布。在你通过两段式同意刻意启用之前,什么都不收集、不发送,所以从不碰这个设置的用户完全私密。

如果我选择开启,究竟会收集什么?

只有你按 Enter 提交的命令行,而且要在本地 Rust 脱敏把密钥遮成块之后。按键、命令输出、文件内容、提示符里输入的密码,一律不收集。

密钥脱敏发生在哪里?

在你机器的原生 Rust 层,先于任何网络请求。密钥在本地被替换成不透明块,原始敏感字符串从一开始就不会离开设备。

30 秒安装

立即安装

终端里一行命令——无需邮箱、无需信用卡。

$ curl -fsSL https://tybre.md/install.sh | bash

想用安装包? 下载 DMG