See Dollar · AI Token Speedtest

我们不收什么

这不是一份法律免责声明,是一份「库里到底存了什么」的清单 —— 可核查,不是承诺。

没有账号

你不注册、不登录、不留邮箱。第一次测试时我们发一个匿名 subject,凭据只是一个 httpOnly cookie(网页 JS 读不到、Agent 也拿不到)。 你的公开身份是一个 10 字符的随机 ID(/r/XXXXX-XXXXX),不可枚举、不含任何关于你的信息。

subject 表里没有一列是可识别信息

这是设计约束(内部编号 I4),做成了「库里根本没有那一列」这个可核查的事实,而不是一句「我们保证不看」:

两列你自己填的展示信息(2026-09-22 修订)

subject 表新增两个可选列,都默认为空、都随时可在 /me 清除,身份契约修订记录在 SUBJECT-IDENTITY-SPEC §12:

排行榜地球只按用户自报的国家/地区聚合显示大致位置,不使用 IP;少于 3 个成绩的地区不显示精确数量。 没填地区的成绩不会出现在地球上,只计入「未填写」,而这个数也只给到 10 的倍数(向下取整)。 这些数都按匿名身份计数(一个人清掉 cookie 再测会多算一个),所以写作「个成绩」,不是人数。

限流用的 IP 只活在限流器里

为防滥用,无凭据领票按每小时 6 次限流,这需要短暂看一眼来源 IP。这个 IP 只存在于限流计数器里,不落任何业务表 —— 计数器表(anon_rate_limits)里存的也不是 IP 本身,而是它的单向密钥摘要(HMAC)加一个整点窗口; 它不进你的成绩、不进榜单、不和你的 subject 关联。限流窗口一过就没了。

你的报告存成什么

上面说的是「不收什么」;这一节是反面:你点了提交之后,库里实际多出来哪些行、每行有哪几列。 清单对着数据库迁移文件(supabase/migrations/)逐表写,改表必改这里。没有一列是 IP、User-Agent、邮箱或文件路径。

表一次提交写什么备注
reports 每份报告一行:报告编号、你的匿名 subject 编号、schema 版本、生成日期、收到时刻;采集器名 / 版本 / 命令、剥洗器版本; 来源两行标签(SOURCE / VIA);检测到的工具列表;报告窗口(起止日期)与内容指纹;校验结论与校验器版本; 行数、日期范围、四类 token 合计;按定价快照重算的金额(含上限)与你报告里自带的金额。 描述「收到的这份报告」本身,不随后续提交改写。
usage_rows 逐日明细:日期、工具、模型名(不在厂商前缀表里的私有模型名一律折成 custom 再存)、规范模型名; input / output / cache_read / cache_creation / reasoning 五类 token、会话数;你报告里每行自带的金额(ccusage 估的那个); 按定价快照重算的金额与计价覆盖度、状态。 每个 (subject, 日期, 工具, 模型) 一行,重交同一天会覆盖。
audit_flags 校验规则命中记录:命中的规则编号、严重度、一句说明、出问题的字段路径、时刻。 只在报告触发规则时才有;说明里的私有模型名同样替换成 custom。
quarantine 被隔离待人工复核的报告:规则编号、一句说明、复核状态 / 复核时刻 / 复核人。 只在报告被隔离时才有。
test_tickets 每次「开始测试」领到的一次性票据:测试编号、subject 编号、票据的摘要(不存明文)、签发 / 过期 / 使用时刻、 用它交上来的报告编号、提交路径(VIA)。在 /me 上点「给我的 Agent 一张提交票」签出来的,也是这张表里的一行 —— 同样的列,没有新增任何东西。 测试编号就是分享链接 /t/{test_id} 里那一段。
subject_snapshots 每次成绩变化一版:排名量、名次与名次状态、窗口、内容指纹、两行来源标签;以及同一刻冻结的 Core 描述、结果页切面(逐日量 / 活跃天数 / 模型数 / 通道)、画像输入。 分享链接永远显示的就是这里冻结的那一版。
subject_client_tokens 只在你连接了 Dollar 时才有:凭证的摘要、种类(dollar)、签发时刻、最近一次使用时刻(last_used_at, Dollar 每用它提交或读位置一次就更新)、撤销时刻。 /me 上显示的「上次使用」就是这一列;断开 Dollar 即撤销。
og_core_snapshots 链接预览图左半边那张画像图:测试编号、PNG 本身、收图时刻。 详见下面「链接预览图」一节;可被人工下架。

交给 Agent 时,什么留在你的机器上(2026-10-18)

Agent 用的剥洗器是本站下发的一个单文件(seedollar-scrub.mjs),在你自己的机器上跑、它自己不联网: 它读 ccusage 的原始输出,写出一份报告,打一份摘要,仅此而已 —— 它不把原始输出发到任何地方。 交上来的只有剥洗后的那份报告(就是上面那张表里列的那些列,包括 ccusage 自己估的金额),由 Agent 用一张一次性票据提交。

哪些靠 Agent 守约、我们在技术上强制不了:三件套要求 Agent 先把摘要和文件给你看、你说 OK 才提交、原样提交、 不打开也不改 usage.json。这一步靠 Agent 遵守说明 —— 报告文件在它手里、提交由它执行,它也读得到 usage.json; 它要是把 usage.json 读进对话,原始输出就到了它所用的模型厂商那里。我们能做的是把要求写清楚, 并让剥洗器出错时明说「停下、交给人」。

采集那一步也不是完全不联网:npx 第一次运行时要从 npm 下载 ccusage,ccusage 计价时也可能联网取一次价目表 —— 这两次请求都不带你的用量数据。

下载剥洗器就是一次普通的静态文件请求:我们不为它写任何记录,没有下载计数,也不知道谁下载过。 在 /me 上给 Agent 签一张提交票,库里多出的只是 test_tickets 里的一行(只存票据的摘要), 和你在首页点「开始测试」时完全一样;不新增任何长期凭证、不新增任何计数。

清了 cookie 就找不回 —— 这是刻意的

没有账号就没有找回。清 cookie / 换浏览器 / 换设备 / 隐私模式,旧成绩就认不回来了。 我们不做邮箱找回、魔法链接、短信 —— 那些都要收集联系方式,违反上面那条。 页面上给你一个显式的 NOT ME · START FRESH 重置入口。

一个诚实的后果:一个人可以清 cookie 反复参与。
这意味着首页的「公开成绩」计数不等于「不同的人数」 —— 它是当前公开成绩的条数。 我们接受这个代价(替代方案是账号或设备指纹,前者不在 V0.1、后者违反上面那条),但不假装它是别的东西。

只存在你浏览器里的几条记录

为了不重复播放揭晓动画、以及在你重测后段位和上次不同时提示「和上次相比 · 篝火 → 灯塔」,页面会在你自己的浏览器 (localStorage / sessionStorage)里记几条东西:看过揭晓动画的成绩链接编号、你上一次在这台设备上看到的段位与用量、 「比一把」的对手公开 ID、你选的配色主题(sd_theme,只有 琥珀 / 星紫 / 青潮 三个取值之一,2026-10-18 起)。 它们从不发回服务器,我们看不到;清浏览器数据就没了,换设备也不会带过去。

分享计数:只记「哪天、哪件事、几次」(2026-10-19)

为了知道分享到底有没有人点、有没有人顺着链接回来,页面会在几个时刻发一条匿名计数: 点了 SHARE / COPY LINK / 「分享我的段位」、打开或下载分享卡、打开段位页 /c/…、以及带着 Discord 帖子或海报二维码里的 utm_source 落地。库里为此只有一张表 share_funnel_daily,只有三列:日期(UTC)、事件名、次数。

已经分享出去的成绩

你分享的是 /t/{test_id} —— 它钉死在那一次提交上,永不改变,就算你以后重测、或点了重置。 这是为了让别人看到的那份成绩和画像不会在你背后变形。想让别人看你的当前名次,分享 /r/{public_id},那个会随你重测而更新。

链接预览图里的那张画像(2026-09-26)

链接发到微信 / X / Slack 时自动出的预览图,左边是你的用量画像。服务端画不了它,所以你本人第一次打开自己的成绩页、 名次已算出时,浏览器会在后台截一张不含任何文字的画像图(560×560 PNG)传上来;每个成绩只收一次。 库里因此多一张表 og_core_snapshots,每行只有三样:成绩链接编号、这张图、收图时刻 —— 不存 IP、不存设备信息(限流看一眼 IP,与上面同一个限流器、同样不落业务表)。 图是从已冻结的画像数据画出来的,不含新信息;预览图右边的数字由服务端从冻结的成绩写,不取图里的任何东西。 这张图可以被人工下架(下架后预览图回到旧版样式),所以预览图是「钉死」的唯一例外:抓取器最多缓存一天。 浏览器里另记一条「这台设备 24 小时内试过上传」,只为不重复尝试。

Discord 机器人(2026-10-18)

See Dollar 有一个只读的 Discord 机器人,是一个独立的 See Dollar 应用,不是 Dollar 的功能; 它在 Dollar 社群服务器里单独一个分类下提供 /seedollar 命令。用它不需要 Dollar,也不需要是 Dollar 用户。没有开启它的社群里,下面这些都不发生。

按钮、链接与更新公告(2026-10-19)

你在 Discord 上的其它一切受 Discord 自己的隐私政策约束,不在本页范围内。

怎么生成报告 → · 方法论 →