
「Java 写的(ew)」:Million.js 作者把 TLA+ 检查器搬进了 npm
它是什么 把 TLA+ 官方那个要装 Java 的模型检查器用 TypeScript 重写了一遍,浏览器和 Node 里都能跑,还能检查证明,结果和官方一致。
为什么火了 9 月 Claude Code 负责人带火了「让 AI 写 TLA+ 做验证」,一批 Web 开发者想试却卡在装 JVM;前端圈大号 Aiden Bai 用「Java 写的(ew)、快两倍、npm 一装」两次发帖,合计约 6 万浏览,star 跟着上了两个台阶。
C你可以怎么跟 别再做 TLA+ 的 TS 版;挑一个老牌但安装劝退的专业工具,让 agent 对着原版测试集移植成 npm 或 WASM 包,README 放一致性结果和基准、配在线 playground,在 X 和 Show HN 用一句「原版难装又慢,现在一键装、更快」发布。
- 数据(每天更新) · 建库 2026-10-26 · 237 星 · 7 天 +121
GitHub · 星数 数据 2026-10-30 → 2026-11-08(10 天,10 次观测)。10-28 以前的点来自 deeply / 存档补录,不是每天都有
2026 年 10 月 28 日,Million.js 和 React Scan 的作者 Aiden Bai 在 X 上发了一条帖子,介绍 tla-ts:一个用 TypeScript 重写的 TLA+ 模型检查器,npm install 就能装,自称比官方的 TLC 快一倍。到 11-06,这个建库才 11 天的仓库 star 刚过两百。量不大,可它是怎么起来的值得拆开看:先有一股「让 AI agent 写 TLA+」的风,再有一个有流量的作者,加上一句前端开发者一听就懂的话。如果你想做一个同样能拿到 star 的开源项目,这里能学的是选题和发布方法,这个位置本身已经有人占了。
一条 4 万浏览的帖子
帖子原文是:「Introducing TLA-ts。A 2× faster drop-in replacement for TLC, written 100% in TypeScript。Why? TLA+ for formal verification and model checking is great!... but is written in Java (ew), unusable in browser, and slow」。配了一张基准图。到 11-06,这条有 4.01 万浏览、439 赞、243 收藏、42 条回复。
回复里被转得最多的一句来自一个普通用户:「the only way web devs were ever going to touch formal verification was if it came as an npm install」(Web 开发者要碰形式化验证,只能是 npm 一装就能用的那种)。这句话把卖点讲完了。
有个细节:放 GitHub 链接的那条跟帖只有约 2,700 浏览。4 万人看到了帖子,点进仓库的只是一小部分。
它是什么
TLA+ 是一种写「系统该怎么运行」的规格语言,分布式系统、并发协议的人用它在写代码之前找 bug。官方工具 TLC 是 Java 写的,要装 JVM 和 TLA+ Toolbox,很多人卡在安装这一步就放弃了。
tla-ts 做了三件事:
- 在 JS 里跑。 浏览器、Node、Bun 都行,有一个在线 playground(tla-ts.aidenybai.com),也能在代码里
import { check } from "tla-ts"当库调。 - 比 TLC 快。 README 里的基准:单线程下两阶段提交 2.2 倍、哲学家就餐 1.5 倍,542 个一致性模型合计 986 秒对 403 秒。但开 8 个线程、跑 Raft、Paxos 这类大模型,只快 1.1 到 1.5 倍,都是作者自己在 M4 Pro 上测的,没有第三方复现。
- 结果和 TLC 一致。 那 542 个模型,两边报出来的状态数一个不差。前面几个重写版本都没做到这一步,所以「快两倍」才有人信。
11 月 2 日,它又加上了 TLAPS 证明检查,原本得装一整套 tlapm 才能做的事,现在 npx tla-ts tlapm 一行就行。
star 从哪来
GitHub 每日快照里的 star 曲线,两个台阶正好对着两次发帖:
| 日期 | star | 发生了什么 |
|---|---|---|
| 10-30 | 55 | 10-28 发布帖之后 |
| 10-31 | 100 | 单日 +45,最多的一天 |
| 11-02 | 121 | 发第二条「introducing TLA-ts proofs」,配视频,2.04 万浏览 |
| 11-04 | 172 | 两天各涨约 25 |
| 11-06 | 191 | GitHub 实时数是 227(11-06 下午) |
作者本人是主渠道。 Aiden Bai 在 GitHub 上有约 5,800 个关注者,名下项目合计 5 万多 star,在 X 的前端圈是大号。两次发帖合计约 6 万浏览。
同圈子的人接了话。 React Compiler 核心成员 lauren(@poteto)10-29 回复「will take a look at supporting tla-ts!」,这条有 1.95 万浏览;她的项目原来用别的 TLA+ 解析器,Aiden 答应去提 PR。这是目前唯一能看到的下游在谈接入,最后接没接上,还看不出来。
时机。 2026-09-22,Claude Code 负责人 Boris Cherny 发帖说用 Opus 5.5 拿 Lean 和 TLA+ 形式化验证 Claude Agent SDK,220 万浏览。之后 reasonable.io 写了《The internet discovers TLA+》,Stack Overflow 博客 10-16 写了「AI says you're right, formal methods say you're wrong」,GitHub 上「让 agent 做形式化验证」的新库明显多了。一批原本不碰 TLA+ 的 Web 开发者想试试,第一道门槛就是 JVM。tla-ts 一个月后把这道门槛拆了(热点和 star 之间的因果是推断)。
没去的地方。 Hacker News、Reddit、Product Hunt 上都找不到发布帖,也没有媒体报道。npm 上日下载从 10-27 的 461 涨到 11-05 的 2.9 万,但它 10 天发了 150 个版本,几乎每次提交都自动发一个包,镜像和扫描器每次都要全量拉一遍,这个数大概率虚高(推断),不能当真实用户数。
它大概率是 agent 写的
仓库里的 AGENTS.md 第一句要求:动手之前先把 tlaplus/tlaplus 克隆到本地,翻 TLC 源码弄清语义,「不要凭记忆或猜测」;行为不清楚就拿 TLC 跑一遍对照。再加上 10 天 150 个版本、两周不到做完模型检查和证明检查,这很像最近一批「让 LLM 对着原版源码和测试集移植大型工具」的做法(推断,作者没明说)。
这一点对想跟的人最重要:以前把一个几十年的 Java 工具重写一遍是一个团队一年的活,现在门槛变成了「有一套能对照的测试 + 一个会指挥 agent 的人」。
谁在抢这个位置
| 项目 | 形态 | 规模 | 和 tla-ts 的区别 |
|---|---|---|---|
| TLC / TLA+ Toolbox | 官方,Java | 3,199★ | 标准答案,要 JVM,不能进浏览器 |
| Spectacle(tla-web) | 浏览器里的 JS 解释器,2021 | 227★ | 最早在浏览器跑 TLA+,官方文档写明比 TLC 慢很多,用来探索和分享规格 |
| tla-checker | Rust 重写,2026 年初 | 未核实 | 同样重写 TLC,带 TUI,不是 npm 包,作者没流量 |
| Quint | TLA 系的新语法 | 1,926★ | 换了一套语法,tla-ts 保留原版 TLA+ |
| Apalache | Scala,SMT 符号检查 | 623★ | 路线不同 |
| Specula、tla-precheck 等 | 让 agent 用 TLA+ 的技能和流水线 | 几十到 629★ | 底下还是调 TLC,tla-ts 可以给它们当引擎 |
重写 TLC 的人不少,但「npm 包 + 比 TLC 快 + 一致性测试 + 证明检查」凑齐的只有它。在 TS/JS 里再做一个 TLC,目前没看到跟风的,也没必要去做。
如果是你
一句判断: 别再做 TLA+ 的 TS 版,抄它的选题公式:找一个老牌、好用、但安装劝退的专业工具,借 agent 热点,用 agent 对着原版测试集把它移植进 npm 或 WASM。
适合谁: 会指挥 coding agent 做大规模移植、对某个专业领域(形式化验证、图形布局、编译器、科学计算)熟、在 X 或某个开发者社区里有几千关注者的人。
不适合谁: 没有任何发布渠道的人。Aiden Bai 有 4 万浏览打底,也只换来两百多 star。没有流量,同样的东西很可能就停在个位数。
怎么做:
- 挑原版:Java、OCaml、Scala 或要装一堆本地依赖,有公开的测试集或示例库能拿来对照(比如 Alloy、PlantUML、各类 SAT/SMT 求解器的前端,哪个合适要你自己判断)。
- 让 agent 先读原版源码,每一步都对着原版跑结果;README 里放「N 个模型和原版结果完全一致」加基准表,这是让人信的关键。
- 一定要有在线 playground,别人点开就能试。
怎么获客: 在 X 上用一句话发:「X 写的(ew)、不能在浏览器跑、慢 → 现在 npm 一装、快 N 倍」,配基准图;把功能拆成两次发,隔 5 天左右;主动给用得上它的 agent 技能、编辑器插件提 PR 把它接进去;它没去 Hacker News,你可以首发 Show HN。
什么时候之前: 「agent 写形式化验证」这股风是 9 月下旬起来的,用 agent 移植老工具的项目接下来会越来越多,先做的人才能拿到「第一个 npm 版」这个名头。估计窗口在半年以内。
什么情况说明看错了: 如果到 12 月 tla-ts 还在两三百 star、poteto 那边也没接入,说明这类项目的 star 天花板就是作者自己的流量,产品本身拉不动增长;如果官方 TLA+ 出了 WASM 版或浏览器版,这条路在 TLA+ 上就彻底关了。
研究底稿:竞品表、获客证据、完整研究报告
- 竞品
名字 在哪 上线 规模 它和这家不同在哪 TLC / TLA+ Toolbox(tlaplus/tlaplus) 开源 1999 年前后(GitHub 2016) 3,199★,官方标准 Java、要装 JVM、不能在浏览器里跑;tla-ts 对着它的结果做一致性测试,自称快 2 倍 TLAPS / tlapm 开源 2008 年前后 官方证明系统 安装很重;tla-ts 在 JS 里检查 TLAPS 证明 Apalache 开源 2015 623★ 走 SMT 符号检查,Scala 写的,路线不同 Spectacle / tla-web 开源 2021 227★ 同样是浏览器 JS 解释器,但官方说比 TLC 慢很多、不追求性能;tla-ts 主打快和完整的检查器 Quint 开源 2021 1,926★ 换了一套 TLA 系语法;tla-ts 保留原版 TLA+ tla-checker(Rust) 开源 2026 年初 未核实(Reddit 发布帖) 同样是重写 TLC,Rust 写的,带 TUI,没有作者流量,也不是 npm 包 Specula / tla-precheck / proof-skills 等 agent 技能 开源 2025-06 至 2026-10 几十到 629★ 都是 agent 用 TLA+ 的流水线或技能,底下还是调 TLC;tla-ts 是可以把 JVM 换掉的引擎 - 用户从哪来
- 查实 作者 X 发布:10-28 发布帖 40.1K 浏览、439 赞、243 收藏;11-02 发证明检查功能,20.4K 浏览、394 赞;两次发完 star 都跟着上了台阶
- 查实 同圈子大号互动:React Compiler 核心成员 @poteto 10-29 回复要接入 tla-ts,19.5K 浏览
- 推断 平台热点(agent 加形式化验证):Boris Cherny 09-22 发帖说用 Opus 5.5 拿 Lean/TLA+ 验证 Claude Agent SDK,2.2M 浏览;reasonable.io《The internet discovers TLA+》
- 推断 HN/Reddit/媒体:HN Algolia 和网页搜索都没找到发布帖或报道
aidenybai/tla-ts:为什么能跑出来
渠道:GitHub | 建库 2026-10-26 | 研究日 2026-11-06
一句话
tla-ts 用 TypeScript 重写了 TLA+ 的官方模型检查器 TLC(还能检查 TLAPS 证明),npm install 就能装,浏览器、Node、Bun 里都能跑,作者自己跑的基准里比 TLC 快约 2 倍。它能起来,靠的是三件事叠在一起:作者 Aiden Bai(Million.js 作者,GitHub 约 5,800 关注者,X 上是前端圈的大号)的 X 发布、9 月下旬起「让 AI agent 写 TLA+ 做形式化验证」这股风,还有「Java 写的(ew)→ TypeScript、npm 一装就能用」这个对 Web 开发者很好懂的卖点。从绝对量看它还很小,属于小圈子里在传。
数据
- star:数据卡(github 库,2026-11-06)191,近 7 天 +136,单日最多 +45(10-31)。曲线:10-30 55 → 10-31 100 → 11-01 116 → 11-02 121 → 11-03 146 → 11-04 172 → 11-05 177 → 11-06 191。GitHub API 现查是 227(2026-11-06 14:29 UTC)。fork 9 个,没上 trending(trending 只收建库约 60 天以上的库,所以这点说明不了什么)。
- npm:
tla-ts包 10-27 首发,到目前已发 150 个版本(几乎每个 commit 都自动发一个0.0.3-dev.<sha>),最新 0.0.8,只依赖 fflate。日下载从 10-27 的 461 涨到 11-05 的 29,256(npmjs.org downloads API)。这个下载数明显虚高:版本发得这么密,镜像站和扫描器每次都会全量拉一遍,CI 也会反复装,所以它不代表真实使用量(未核实)。 - 作者别的库(GitHub API):cnfast 1,180★、tailwind-stylex 100★ 等;早期的 million、react-scan 是几万 star 级别(数据卡上 owner_total_stars 是 5.33 万)。
竞品(做同一件事的)
| 产品 | 形态 | 上线 | 规模 | 和 tla-ts 的区别 |
|---|---|---|---|---|
| TLC / TLA+ Toolbox(tlaplus/tlaplus) | 开源,Java | 1999 年前后;GitHub 库 2016 年建 | 3,199★ | 官方标准,需要 JVM,不能在浏览器里跑;tla-ts 定位是它的「drop-in 替代」,用 542 个一致性模型对着 TLC 跑结果 |
| TLAPS / tlapm | 开源,OCaml + 后端证明器 | 2008 年前后 | 官方证明系统 | 安装很重;tla-ts 11-02 起在 JS 里检查 TLAPS 证明 |
| Apalache | 开源,Scala,符号模型检查 | 2015 | 623★ | 走 SMT 符号检查,路线不同 |
| Spectacle / tla-web(will62794) | 开源,浏览器里的 JS 解释器 | 2021 | 227★ | 最早的「浏览器里跑 TLA+」;它的官方 wiki 写明比 TLC 慢很多、不追求性能,主要用来探索和分享规格。tla-ts 主打的是速度和完整的检查器 |
| Quint(Informal Systems) | 开源,TLA 系的新语法 | 2021 | 1,926★ | 换了一套语法,自带工具链;tla-ts 保留原版 TLA+ |
| tla-checker(Rust) | 开源,CLI + Web,带 TUI | 2026 年初(Reddit r/rust、r/tlaplus 发布帖) | 规模未核实 | 同样是「重写 TLC」,用的是 Rust,没有作者流量 |
| vscode-tlaplus | VS Code 插件 | 2019 | 443★ | 本质是编辑器外壳,底下还是调 TLC |
| agent 周边:Specula(629★)、kingbootoshi/tla-precheck(112★,TS)、opum-ai/proof-skills、michael-denyer/agent-formal-verify | 开源 | 2025-06 至 2026-10 | 几十到几百★ | 都是「让 agent 用 TLA+」的技能或流水线,底下还是要 TLC;tla-ts 是它们可以拿来换掉 JVM 的引擎 |
结论:重写 TLC 这条路上并不缺人(Spectacle 是 JS 版,tla-checker 是 Rust 版),但「npm 包 + 比 TLC 快 + 一致性测试 + 证明检查」这几样凑齐的只有 tla-ts。
增长手段(用户从哪来)
- 作者本人在 X 发布,这是主渠道(已确认)。2026-10-28 发的「Introducing TLA-ts:A 2× faster drop-in replacement for TLC, written 100% in TypeScript… TLC is written in Java (ew), unusable in browser, and slow」,配一张基准图:40.1K 浏览、439 赞、243 收藏、42 回复(x.com/aidenybai/status/2115477440747413995)。2026-11-02 第二波「introducing TLA-ts proofs」,配视频:20.4K 浏览、394 赞、249 收藏(x.com/aidenybai/status/2117306744523161732)。两波发完,star 都跟着涨了:前者对应 10-30、10-31 的 +45;后者对应 11-03、11-04 各 +25 左右。
- 同圈子的人互动(已确认)。React Compiler 核心成员 lauren(@poteto)10-29 回复说「will take a look at supporting tla-ts!」,19.5K 浏览(x.com/poteto/status/2115926914531819595);Aiden 那边答应给她的项目提 PR,那个项目原来用的是 tla-parser。也就是说,已经有下游项目在考虑接它。
- 借了 TLA+ 正火的势(已确认是背景,因果是推断)。2026-09-22 Boris Cherny(Claude Code 负责人)发帖说用 Opus 5.5 拿 Lean + TLA+ 形式化验证 Claude Agent SDK,2.2M 浏览、6.3K 赞(x.com/bcherny/status/2102543349102338309)。reasonable.io 专门写了篇《The internet discovers TLA+》;Stack Overflow 博客 10-16 也写了「AI says you're right, formal methods say you're wrong」。我们的 GitHub 库里,09-20 之后新建的 TLA+、形式化验证 agent 库明显变多(linux-formal、proof-skills、agent-formal-verify、FVjobs 等)。
- 零星转述(已确认)。dev-null.sh 上有人转:「no need for using heavy TLC to check TLA+, this one run in the browser」。
- 没找到的:HN(Algolia 搜 tla-ts、搜 url 都没有)、Reddit 发布帖、媒体报道、Product Hunt。x-radar 本地语料这次所有查询都返回 0,像是接口那边的问题,所以 X 上二次传播的面没扫全。
为什么跑出来
- 作者有流量,一条推文就能起步:建库两天后的发布帖拿到 4 万浏览,star 曲线上的两个台阶正好对着两次发帖。
- 时机好:Boris 9 月那条把「agent 写 TLA+」带火了,一下子多了一批 Web/TS 开发者想试 TLA+,可第一道门槛就是装 JVM 和 Toolbox。tla-ts 一个月后正好把这道门槛拆掉了。
- 卖点一句话就懂:「Java (ew) → TypeScript」「2× faster」「npm install」,这对 X 上的前端受众很有效(有回复说「the only way web devs were ever going to touch formal verification was if it came as an npm install」,623 浏览)。
- 能让人信:README 里有和 TLC 对比的基准,542 个一致性模型的状态数和 TLC 完全一致,还有在线 playground。这让「2 倍快」不只是一句口号,前面那几个 JS/Rust 重写都没有做到这一步。
- 很可能是 agent 写的:AGENTS.md 要求「clone tlaplus/tlaplus,对照 TLC 源码、跑 TLC 对比」,10 天发了 150 个版本,两周不到把模型检查加证明检查都做了。这和最近一批「用 LLM 移植大型工具」的案例是一个思路(比如 tsc-rs)。这条是推断,作者没有明说。
差异化
差异化是三样凑在一起:运行环境(JS 和浏览器)、性能(比 TLC 快)、兼容(一致性套件对着 TLC 验)。前人只占了其中一样:Spectacle 能在浏览器里跑但慢,tla-checker 快但没有分发。它能跑出来,一半靠这个差异化(能被 agent 工具、在线 playground、TS 工具链直接当库嵌进去,poteto 的回应就是证据),另一半靠作者的分发能力。目前 star 主要还是来自作者那两次发帖,产品本身在拉增长的证据还不多(下游接入只有 poteto 这一处在谈)。
可见度与跟风
- 可见度:小圈子里在传。只有作者自己两条帖子(合计约 6 万浏览)加少量转述,没有媒体、没有 HN,star 也才两百出头。这是开源项目,不存在收入。
- 跟风:暂时没有。在我们的库里没看到 10-28 之后冒出来的 TS/JS 版 TLC。
能借鉴的
- 挑一个「老牌、好用、但工具链劝退」的专业工具(JVM、OCaml、本地装一堆东西),借着 agent 热点用 AI 移植成 npm 包或 WASM,在 README 里放上对照原版的一致性测试和基准,在 X 上用一句「X 写的(ew)、更快、一键装」发布。
- 把功能拆成两次发(先发模型检查,过 5 天再发证明检查),每次都能再吃一波流量。
- 把它定位成 agent 工具链的底层引擎,主动去找下游项目(比如 poteto 那个)提 PR,把它接进去。
不确定
- npm 日下载 2.9 万里有多少是真实使用(大概率被 150 个版本的镜像和扫描拉高了)。
- 「2 倍快」是作者在 M4 Pro 上自己测的,在 8 个 worker 的大模型上只快 1.1 到 1.5 倍;没有第三方复现。
- 代码是不是主要由 AI 写的:只有 AGENTS.md 和发版节奏这些间接证据。
- X 上二次传播的规模:x-radar 这次没返回数据,没扫全。
- poteto 那个项目叫什么、最后有没有接 tla-ts,未核实。
出处
- github.com/aidenybai/tla-ts (README、AGENTS.md)
- tla-ts.aidenybai.com/
- registry.npmjs.org/tla-ts 、api.npmjs.org/downloads/range/last-month/tla-ts
- x.com/aidenybai/status/2115477440747413995 、x.com/aidenybai/status/2117306744523161732 、x.com/poteto/status/2115926914531819595 、x.com/bcherny/status/2102543349102338309
- reasonable.io/blog/tla-tutorial/ 、stackoverflow.blog/2026/10/16/formal-methods-say-you-re-wron… 、docs.tlapl.us/using:tla_web_explorer 、dev-null.sh/@Hasnayeen/commits/01a19de0-a8d6-71b5-ba53-fdc85…
- GitHub API(tlaplus/tlaplus、apalache-mc/apalache、will62794/spectacle、quint-co/quint、tlaplus/vscode-tlaplus 的 star 数,2026-11-06);我们的 github 库 repo_profile(2026-11-06)