tw93,GitHub ID @tw93,X @HiTw93。一个人,有正职,有家庭,还有个小女儿。却在 13 年里,靠着长假、早起、和游泳池边的笔记本,做出了六款被硅谷 CTO、Pinterest、YC 创始人都在用的开源工具。
六个产品,六个"自己先用烦了"的故事
妙言:找不到顺手的 Markdown 编辑器。本职前端工程师,讨厌 Electron 重框架,学 Swift 自己写。边学边做,做完学会了 Swift,摸透了 Apple 底层渲染性能。到今年快 6 年。
Pake:习惯每年分享电脑上好用工具。那年喜欢用微信读书,没有桌面端,用 UI 框架打包了一个。发出去后大家发现他分享的软件里将近三分之一是自己写的,纷纷来问微信读书怎么打包。代码几百行,顺手开源。没想到在国外比国内火。
潮流周刊:七年前开始带团队,发现技术氛围不够强,立 flag:每天早上看开源工具和技术资讯,整理成内部周刊发在公司语雀上。后来很多人离职问能不能在外面看,顺手放到 GitHub README。半年后国庆在老家,花两天做了个网站,发出去了。
Mole:本地跑了一年的 Shell 脚本,快 1000 行,专门清理程序员电脑垃圾缓存。每年买很多正版清理软件,但觉得太重。去年国庆带宝宝去三亚度假,游泳池边放台电脑,游一圈回来歇着的间隙,写出 Mole 第一个版本。
Kaku:fork 了一个终端工具,本地改了半年,过年期间才发出来。最早用的极轻量终端配得很好看,但 AI 时代必须多窗口,那款不支持。找来找去只有一个项目改得动,就自己动手了。
Kami:做投资,七八年前开始投资美股,本地写了一套多 agent 的投资分析系统,但 AI 生成的报告太丑,按自己审美调了一版。后来看到推特上大家发的报告也不够好看,就开源出去了。
Waza:将近一年、五六个 G 的 Claude 对话记录沉淀出来的工程技能库。用 AI 分析所有对话,按项目维度、时间维度拆解,提炼最佳实践,包括怎么回复海外用户需求、哪些 PR 该合、哪些功能该做。
这个逻辑贯穿了他所有产品:不是先想"我要做什么",而是先碰到了一个让自己难受的问题,顺手把它解掉。
Mole 为什么 70% 用户在海外?
第一,老外更节俭。欧美用户会把一台 Mac 用很多年,用久了很卡。用 Mole 清了 60G、100G 垃圾,会非常激动,然后疯狂推广。tw93 说老外说话夸张,会直接说"我要给你跪下,你是个天才"。
第二,更懂程序员的"清理"工具。传统清理软件不关心程序员各种开发工具的缓存。CleanMyMac 等出于安全考虑不会去动深层开发缓存。但 Mole 是程序员写给程序员的,知道哪些东西可以清。
第三,开源本身就是最好的产品迭代机制。Mole 有 300 个 PR,100 个贡献者,全是海外用户。每个人的电脑环境不同,国家不同,技术工种不同,这些贡献让 Mole 能清理的东西越来越多,这是任何公司产品都做不到的。
当然也踩过坑。第一版发布时,因为 tw93 自己的环境偏前端,没有数据库相关配置,结果把一个用户 JetBrains 数据库工具里存在 cache 目录的账号密码全清掉了。那个用户很生气,他也很抱歉。这件事让他意识到,很多客户端产品的文件路径规范极其混乱,普通用户不关注,但清理工具必须关注。Mole 后来给 JetBrains 全系产品开了白名单,也因为这个教训越做越严谨。
还有一个细节说明 Mole 的热度:他把两张图片放到 Vercel CDN 加速,不到一周 Vercel 发来紧急通知说他欠了 80 美元。查了一下,就是那两张图片,用了 80T 流量,就几分钟时间。立刻意识到这个 README 有大量的人在访问。
第一款付费产品,每 10 秒收一笔钱
Mole 推出桌面端时,tw93 周一晚上 10 点发布,因为白天在上班。发出去之后,手机大概每 10 秒响一次支付通知,后来连 iPhone 都开始发烫。睡觉前不得不把 Google 的通知全部关掉,不然睡不着。
定价 9 美元终身买断,很多人说他卖太便宜了。也有喷子说"你不就把 CLI 包了一下吗?"他觉得无所谓。他本来就不是靠这个赚钱的。最开心的是有人用了以后愿意主动打赏。免费的东西有人愿意付钱,说明做的东西是有意义的。
支付对接用的是 Dodo Payment,一家印度小哥创立、注册地在美国的支付平台。之前试过 Stripe,走到最后一步要香港身份证,卡死了。Lemon Squeezy 也要求提供公司信息,个人用不了。后来在推特上看到有人推荐 Dodo,花了一个下午接好,发布了。
关于收款,他有一个实操建议:超过 1 万美元,立刻会有很多人来找你核查,非常麻烦。尽量把钱放在香港卡或新加坡卡,不要直接汇回国内。他自己就因为这个折腾了几次,最后把钱退回去重新想办法,不过他夸了招商银行的服务人员会为客户着想。
Waza:把自己的工程经验,变成 AI 的本能
tw93 有一个习惯:每周花一小时,让 AI 分析他过去一周的踩坑记录,然后更新 Waza。
Waza 是他的 Claude Code 技能库,但跟大多数人写的 Skills 不一样,他 70% 是代码,只有 30% 是 Markdown 文档。原因是:MD 只是告诉 AI 怎么干活,代码是让 AI 能基于它去扩展。
他不喜欢那种把 AI 手脚拴住的框架,比如 Superpower、Spec 编程,觉得太重,而且会拖模型能力的后腿。他更愿意把 AI 当朋友,而不是外包或下属。
他说,Claude 4.6、4.7 出来以后,模型能力越来越强,你越约束它,其实是在拖它的后腿。
Waza 里有 8 个 Skill,覆盖的不只是写代码,还有怎么推进项目、怎么做技术方案、怎么写让读者看得懂的文档、怎么画设计稿。因为在他看来,一个工程师只有 30% 的时间在写代码,其余的能力同样重要。
Waza 本身也会自我迭代。它知道自己的迭代方式,所以 tw93 只需要定期喂给它新的踩坑记录,它会自己更新。现在 Waza 也支持了 Codex,因为他自己开始用 Codex 了,所以它也去分析 Codex 的对话记录。
他本地还有一个基于 Waza 的私人 agent,专门帮他处理开源项目的 issue 和 PR。这个 agent 知道他对 Mole 的调性要求,知道哪些功能坚决不能合,哪些 PR 写得有问题但可以改好,哪些直接不合适。他把自己从最耗时间的事情里解放出来,专注于写新功能。
为什么他的东西好看?
很多人用完 tw93 的工具,第一反应是:怎么这么好看?
大学时保研后有大量空闲时间,把图书馆里所有前端和设计相关的书都看完了。设计思维、极简主义、日本设计原理,那个阶段打下的审美底子,后来工作了才慢慢显现出来。
入职后最喜欢跟设计师玩,经常一起讨论设计细节,受他们审美影响很深。后来负责整个部门的 ToB 产品,发现用文档跟人对齐方案,大家理解都不一样。最后发现最有效的办法是直接画一张高保真 Sketch 稿,发群里拉个会,大家立刻就 get 了。为了不让一件事反复讨论,他逼着自己学会了画稿。
还有一个更底层的原因:他是强迫症。刚入职时 QA 同学测不出他写的页面有 bug,他的代码可以免提测直接上线。这个习惯一直延续到做开源产品。做到 75 分没 bug 不够,他要做到 95 分。不是为了炫技,是因为他受不了丑的东西,也不想让用户反复来问他。
最近还在看元至清的中国古画,以及日本设计原理方面的书。他说很多古画看不懂意境,但看画家怎么画马、怎么构图,还是能 get 到一些东西。
关于长期主义
"长期主义能帮你更好地偷懒。"
他在一家公司工作了 11 年没换过。买特斯拉股票是在 100 多美元,买英伟达股票是在 80 多美元,买了以后从来不卖,一年只操作两三次。
他说他很讨厌做判断,因为一旦有多个选项就会很纠结,那几天都会很难受。所以他尽量在需要做判断之前,就把很多事情提前决定好,这样就不用反复纠结了。
长期主义在他这里不是口号,是一种减少决策消耗的生活方式。
他的 GitHub 只有 6 个 pin 位,全占满了,不会再开新坑。他认为,同时做 100 个产品,100 个都做不好。把现有的几个维护好,复利会越来越强。
Mole 发布半年,已经迭代了将近 40 个版本,用的人越来越多,知道这个产品的人越来越多,这才是真正的积累。
他还提到一个反直觉的观察:妙言在真正公布之前,已经迭代了半年多,用户量一直很少。一推出去,数据直接从平线拉起来。酒香也怕巷子深,你还是得在适当的时候把门面讲清楚。
给非技术人用 vibe coding 的建议
非技术人做产品,最大的风险不是写不出代码,而是不懂通识,半年后代码跑不动了,自己也不知道出了什么问题。
他举了个例子:AI 能把一个产品做到 80% 很容易,但从 80% 到 100%,可能要花 80% 的时间。很多人不懂这一点,觉得前端也就这么回事,后端也就这么回事,我什么都不会,app 就写出来了。但这个 app 想从你能用到 100 个人能用,中间有大量你发现不了的 bug,因为你不具备找 bug 的能力。
推荐了几本书:
- 《人月神话》:理解为什么软件项目不能靠堆人解决,AI 时代同样适用
- 《启示录》:理解怎么做产品取舍、怎么定义最小闭环、怎么规划里程碑
- 《左耳听风》(耗子哥的博客和书):理解一个资深工程师是怎么看问题的
- 《Linux/Unix设计思想》:一本很薄的书,讲原子能力、管道、系统设计的底层逻辑,大学看完以后有种"功力大增"的感觉
核心观点:你不需要会写 React,但你要知道什么时候该用 React、什么时候只需要一个静态服务器。这种判断力,才是 vibe coding 时代真正的护城河。
最值得收藏的观点
在 AI 时代,真正的壁垒不是你做出了什么工具,而是你和 AI 的聊天上下文。
别人可以把你的产品蒸馏走,但没办法蒸馏你踩过的坑、你的判断逻辑、你和 AI 反复打磨出来的那些失败路径。
他特别强调:记录失败比记录成功更重要。成功的东西大家只看结果,失败的路径才能告诉你下次怎么绕开。就像线上系统挂了,你一定会去查挂在哪里,但系统跑得好的时候,没人会去研究它为什么好。
关于记忆系统的设计,他有一个很有意思的框架:按照人类记忆的方式来设计。大语言模型本来就是基于人类语言训练的,所以记忆系统也应该像人一样,有项目上下文记忆(当前在做什么)、短期记忆(最近遇到的卡点)、长期记忆(历史积累)。
他不太推荐直接给 AI 灌知识库,因为知识会过期,灌进去的人可能自己也不知道哪些已经过时了。把你和 AI 的所有对话记录保护好,把 AI 帮你干成和干失败的记录都保存下来。这些东西,才是别人学不走的东西。
出海商业化的几个实操细节
如果你打算做出海产品,他的经验是:
个人身份对接商业资源,天然处于劣势。建议注册一家美国小公司,费用不高,每年记得报税就好。有了美国公司主体,App Store 账号、支付平台、云服务商,都以公司名义对接,中国个人身份的限制就绕开了,税率也会低一些。
支付平台不要自建,也不要用那些知名大平台。Stripe 对中国个人限制很多,走到最后一步会卡死。他推荐 Dodo Payment,印度小哥做的,注册地在美国,响应速度快,能处理全球支付和各国税务合规,包括欧盟要求的 14 天无理由退款政策。
售后系统不要过早做。前期专注把主产品做好,用户量还不大的时候,手工回邮件、手工点退款就够了。很多程序员喜欢把所有东西都自动化,但这个阶段的精力应该全放在产品本身。
这场对话里,tw93 反复说的一件事是:他的所有产品,都是先解自己的问题,然后发现有人跟他有同样的问题,才开源出去的。
这个逻辑听起来简单,但能坚持 13 年、做出 6 个有人用的工具,背后是他对"不做什么"的极度克制,对"做好一件事"的极度专注。
如果你现在也在想做点什么,他的建议是:先找到那个让你自己最难受的问题,把它解掉。不用想太多,先解自己的问题。