猛蹬三天,我做了四个菜单栏 App,然后账号被封了
同事陆续被封号,我把两周额度、赠送额度和一次周额度重置用到了极致。国庆三天疯狂推进四个 Mac App,修了很多问题,也留下很多问题。以为自己是天选之人时,账号突然被封了。
一直想做点自己的产品。
好几次动过念头去注册苹果开发者账号,每次都停在「算了」:Swift 要学,AppKit 要学,签名公证那一套更是一想就头大,下班之后那点精力根本撑不起来。
九月份,我在 X 上陆续看到不少人说自己的 Claude 账号被封了。中秋前后,同事们也开始一个接一个地被封。我有心理预期,说不定哪天就轮到自己了。
既然还能用,就抓紧把一直想做的东西做出来。我的 Claude Max 20x 周额度每到星期天更新,从中秋那周开始,两个完整周的额度,加上 250 美元的赠送额度,还有一次额外的周额度重置,我全都用到了极致。国庆这三天尤其疯狂,几个项目来回切,加功能、试用、报问题、修问题,再继续往前推。
看着同事们陆续被封,自己这样蹬了一周却还没事,我渐渐开始觉得:难道我是天选之人?
然后,突然就封了。页面上只剩下「Organization access is disabled」。有心理预期,和真的看到这行字,还是两回事。

好在留下了四个住在菜单栏里的 Mac App:Pop、Meno、Stox、Proxi。原生 Swift,玻璃质感,开源免费,已经做了签名公证和 App 内更新。它们解决了不少我平时用电脑时遇到的问题,开发过程中也修了很多问题。当然,到现在还有很多问题。
这四个项目并不是国庆三天从零冒出来的。翻回提交记录,Proxi 的 Mac 版从 9 月 24 日开始,Pop 和 Stox 从 28 日开始,Meno 从 29 日开始。国庆三天是在已有的东西上疯狂推进,把功能、修复和发布流程一起往前赶。
先说这四个东西是怎么来的,按我想到它们的顺序。
Proxi:从一个代理开关开始
源头是公司网络。连内网要设代理,Windows 上没有一个顺手的一键切换,我想要的是平时自己用不受影响,要干活了立刻连上。所以最早做的其实是个 Go 写的 Windows 托盘小工具:一个开关,切系统代理、PAC、环境变量、git、npm。
做着做着发现 Mac 上单纯切代理也不好用,就想要一个 Mac 版。但我不想要一个和 Windows 一模一样的东西:它得是原生的,主要活在菜单栏里,界面要高级一点,有玻璃的质感。这个要求后来成了四个 App 共同的调性。
然后就把平时会碰到的网络相关的事都往里加:填一个订阅地址就能选节点,全局或者按规则分流,不用再装第二个软件。我特别想要的一个场景是 PS5 和 Switch——游戏机平时得靠加速器,我想让它们直接用电脑的网络。从局域网共享,到发现游戏机上的 App 不认代理设置,再到网关模式,一步步做下来,功能越长越多。后来又收了一次范围:Proxi 本体回到给开发者切换系统代理、终端、git、npm 的开关,代理内核相关的功能拆成默认关闭的可选扩展。做着做着,除了加功能,也开始想清楚哪些东西应该放在一起。
名字反而是折腾最久的。中间叫过 Kaze,连改名迁移都做完了,发布流水线正在跑,我忽然觉得它还是太像一个工具,而不是一个产品,又叫停重来。最后定了 Proxi:把 proxy 的 y 换成 i,少一个 why,多一个 I,代理应该是交到自己手里的遥控器。
Pop:长按右键,一划即达
这是我挂了很久的痛点。我一直想要一个全局的一键翻译;选中一段 JSON 一键格式化,Base64 一键解码,时间戳一键转换,甚至图片相关的乱七八糟的功能,都想一键搞定。之前用 uTools,相对方便,但各种功能都有额度,也不是原生的,后来只剩翻译在用,也不太好用。
这次我想清楚了交互:长按右键,鼠标旁边弹出一个圆盘,往某个方向一划,松手就执行;选中的是外文就直接翻译,是算式就直接出结果,认不出来才弹圆盘。有两点是我坚持的:松开右键圆盘就关,不要常驻;划到哪一格就临时选中哪一格,松手即点击。熟练之后不用看,肌肉记忆就够了。功能做成插件,后来也做了插件包单独发布和更新,不必每加一个功能就发整个 App 的新版。
名字是建仓库时随手起的,释义后来才补:Pop 像泡泡,按住右键冒出来一个,往想去的方向一划,松手「啵」地破掉,事情也就办完了。
Stox:一眼看盘,一键隐身
应用市场里的股票软件实在不行,要收费,功能还做得一塌糊涂。我想要的是很多有用但不复杂的功能:菜单栏上看一眼,持仓盈亏自己算,到价提醒,不想看了右键一下只留个图标。
「一键隐身」是我插的一句话——Claude 最初把它理解成面板上加个眼睛按钮,我说右键就行,设置放到面板底部去。数据源选了免费、不用注册、不用 Key 的公开接口,装上就能用。
名字是 Claude 起的:stocks 六个字母压成四个,念起来还是 stocks;行情也一样,压缩成菜单栏里小小的一格。
Meno:菜单栏放不下了
做到这里发现一个新问题:这么多软件都占着菜单栏,MacBook 的菜单栏放多了就被刘海藏掉。GitHub 上有一个 Ice,但很久没维护了。我决定从零做一个,不去看它怎么实现的,只借鉴功能不借鉴代码,让「空白的大脑」自己发挥。
常用的留下,不常用的收起来,需要的时候点一下、悬停或者轻扫就回来;再加一个「暗格」放那些几乎用不到的图标,和按场景自动切换的规则——开会时麦克风一亮就进专注模式这种。
Meno 是意大利语「少一点」,乐谱里的 meno mosso 是「慢一点,别那么急」,而且和 Menu 只差一个字母。
三天里,很多时间其实在修问题
功能列表长得很快,但提交记录里同样显眼的是修复。有些问题看起来很小,真用起来却绕不过去。
Pop 最后集中修的是卡顿。它要监听右键和键盘,自己的工作一旦堵住,就可能连别的软件里的右键、打字都拖慢。大段文字的识别和格式化、图片解码、剪贴板搜索、插件签名检查,都一点点搬到后台;鼠标和键盘监听也放到单独的线程。测试里还专门塞进几 MB 的 JSON,让演示流程检查主线程有没有停顿。0.68.0 的改动几乎就是一轮「别让一个小工具拖住整台电脑」的清理。
Meno 的麻烦在于,界面说图标藏好了,不代表它真的离开了屏幕。菜单栏图标可能躲在刘海后面,鼠标够不到;多个显示器和全屏状态又会改变它们的位置。于是既要做按图标窗口移动,也要用端到端检查验证移动和隐藏;后来连隐藏完之后都要再看一遍,不成功就切换实现方式。这次隐藏检查的修复让我更清楚:按钮能按、状态会变,离真正完成这件事还有一段距离。
Proxi 则是在补「开关之后怎么办」。开着代理时改配置,要立即生效;关闭时要恢复开启前的设置;拔掉的网线对应的网络服务,也不能留下旧代理。重启、一键更新、手动退出、注销,又不能全当成同一件事处理。10 月 3 日连续几版都在修这些边界,还有代理密码不该进入剪贴板历史和错误信息的问题。0.14.5 的修复不是多了一个大功能,而是让已有的功能少留下一点麻烦。
Stox 也不是把报价显示出来就结束了。早期就补了主数据源不可用时的备用来源,又修了 A 股开盘前不该触发止盈检查、面板内容太多时跑出屏幕等问题。国庆期间还在准备 Mac App Store 的打包、文案和截图;有了这套流程,并不等于已经上架。
这些都是仓库里已经留下的修复,后面仍然需要继续用、继续找。Meno 的发布说明里还列着一些限制:某些情况下移动图标需要短暂接管鼠标,多屏上的图标顺序受系统限制,菜单栏着色和图标间距仍属于实验或测试功能。版本发得快,修复也多,离稳定省心还差不少。
不间断开发,记录留在哪里
为了让开发尽量不停下来,我用的是 Claude Cloud。聊天记录都在 Claude 云端,本地没有。好在我让它做的工作流是围绕 GitHub 的 issue 和 PR 来组织的。
任务放进 issue,在分支里改,改完开 PR,检查和讨论也跟着留下来。现在 Meno 的仓库约定里已经明确写着:一个 issue 一个分支、一个 PR,PR 关联对应的 issue,合并权限另行约定。这套东西让任务可以在不同的会话里接着做,也让我能回头找到某个功能为什么改成现在这样。
发布流程也逐渐搬进仓库。比如 Pop,改完先过编译、测试、启动和更新检查;合并进主分支后,如果更新日志里写了还没发布的新版本,流程再打包、签名公证、发布。Meno 则通过标签或手动触发发布。各个项目的做法并不完全一样,但都在减少每次发版需要我重复操作的步骤。
账号被封之后,这个区别就很明显了:聊天留在云端,代码、issue、PR 和工作流留在 GitHub。它们不能还原每一句对话,但至少任务、修改和合并的过程有迹可循,后续还有地方接着做。
学到的
- 说清品类和一个交互约束,把设计交出去。四个起点都是一两句话,设计文档我一份都没评审过,只验收产品。
- 给参照物,不给方案。「参考我另一个仓库」「参考某知名仓库」。自己的旧仓库是最好的规格说明。
- 自己当第一个用户。CI 通过之后,真机上仍然会碰到问题;发现了就尽量补成检查。Pop 的卡顿检测、Meno 的隐藏和移动检查,就是让后面的改动少踩一次同样的坑。
- 放权是阶梯式的。先逐次批准合并,再把持续开发、检查和发布的规则写下来。哪些可以自动做,哪些还要我决定,各个项目都需要说清楚。
- 规则要写进仓库。口头说的只在一个窗口生效——我在 Pop 的窗口说了「请你总是回复中文」,同一天另一个窗口照样飘成英文。写进 CLAUDE.md 的,续接之后和另一个窗口都遵守。
- 最花时间的反而是小事。DNS、token 的权限——这些都是只有我能动手的。
代价
额度当然是成本。我把两个完整周的额度、250 美元赠送额度和一次额外的周额度重置都用到了极致。留下的一张截图里,全模型周额度已经用了 92%,距离重置还有 3 小时 50 分钟。这只是其中一个时刻,不是整个开发过程的用量总结。

另外一份投入,是试用、验收和反复修问题的精力。功能做出来很快,但右键卡不卡、图标是不是真的藏好了、退出之后代理有没有恢复,都需要继续追。版本数量不能替这些问题作答。
封号前,我还让 Claude 翻过自己的旧聊天。它在回溯里说,能找到的最早对话是 2023 年 7 月 14 日,从 Claude 2 开始。这个日期是它当时检索聊天记录给出的结果,我没有另外核对注册时间。现在回头看,那张截图也成了这几年使用经历的一点纪念。

写在最后
四个 App 都在 GitHub 上,免费开源,README 里有下载和 Homebrew 安装方式。它们都很新,解决了一些问题,也还有很多问题,用着有什么不对的,欢迎提 issue,或者直接告诉我。
回头看,这段时间最大的变化是,「做产品」从「等我有精力学会了再说」变成了「想清楚要什么,然后开始」。开始做的门槛低了很多,但判断交互、发现问题、验收修复和维护软件,这些事情还在。
以为自己是天选之人的时候,账号突然就封了。好在代码和开发记录留下来了。先把这四个软件继续打磨好,还有不少事情可以做。
评论
评论区快到眼前时才会加载。