在浏览器里打开 exe 的 Mac OS 9 桌面,左下角那一排小格子就是 Control Strip(控制条)。一个窗口都不用开,它就能告诉你:Cloudflare 隧道通不通,Tailscale 连上没有,SOL 现在什么价,Claude Code 或 Codex 的套餐额度用了多少,以及这台机器有多忙。

从 Mac OS 9 搬来的托盘
Mac OS 9 当年也在同一个角落放着一条 Control Strip。exe 的这一条是对着一台运行中的 Mac OS 9 逐像素取样做出来的:高 24 像素,和原版一样浮在所有窗口之上。点一下格子,或者右键点它,就会弹出它的菜单。菜单不光能看状态,还能直接操作。
Control Strip 上有什么,取决于它所在的机器。装了 Tailscale 才有 Tailscale 模块,装了 Claude Code 或 Codex 才有 agent 用量模块,活动模块只在 Linux 上出现。右端的把手能把整条收起来,只留下把手本身;格子多到屏幕放不下时,可以用两端的箭头滚动这一排。Control Strip 是否收起、每个格子上选了什么,浏览器都会记住。
Cloudflare:你的站点往外发了多少
云朵上的指示灯在隧道正常时是绿色,需要处理或还没设置时是黄色,exe 还在检查时是灰色。在电脑上,灯旁边的数字是这台机器的连接器每秒往外发送的字节数,也就是它返回的响应和访客下载的内容。
打开菜单,隧道的情况就一目了然:先是副本和边缘连接,然后是这台机器自己的连接数、活跃请求、每秒请求数、收发字节数、请求总数和源站错误。菜单打开期间,本机的数字每 5 秒刷新一次,整条隧道的计数每 30 秒刷新一次。想看 Cloudflare 在边缘统计到的数据,就选 Analytics…,它会打开 Analytics 应用。

Tailscale:不只是指示灯,还是开关
Tailscale 模块是一块面板,上面有九盏指示灯,其中四盏是 Tailscale 标志里亮着的那四个点。只要这台机器在你的 tailnet 上,这四盏灯就亮着;tailnet 就是 Tailscale 把你的各台设备连成的私有网络。如果这台机器的流量经由出口节点出去,灯就变成蓝色;出口节点是你的另一台设备,由它把流量送到互联网上。有事需要处理时,比如需要登录,灯会变成黄色。Tailscale 关掉后,所有灯都会变暗。
要改设置,就用菜单。Tailscale Active 和 Tailscale Inactive 用来打开和关闭 Tailscale,两行里标着圆点的那一行就是当前状态,和 OS 9 的 AppleTalk Switch 模块一样。Exit Node 里列出能充当出口节点的设备,选一台即可;Allow LAN Access(允许局域网访问)也在这个子菜单里。Devices 列出在线的设备,Serve 列出你的 Tailscale Serve 规则;选中一行,它的地址就复制好了。Accept Routes、Use Tailscale DNS、Shields Up 和 Tailscale SSH 都是开关,把指针停在上面,就会显示它的作用。

守护进程用 tailscale 命令完成这些改动,不用 sudo,别的设置一概不碰。为此,运行 exe 的账户必须设为 Tailscale 的 operator。守护进程还知道你是怎么连到桌面的。如果桌面本身就是经由 Tailscale 连过来的,你要关掉 Tailscale 或打开 Shields Up 时,它会先问一句,因为桌面也会跟着断开。同样,如果你是通过局域网连到桌面的,Allow LAN Access 又关着,选出口节点时它也会先问。
行情,以及所有推送的总开关
行情格子上是一枚币的图标和它的美元价格:SOL、PUMP、MET 或 SKR,在菜单里选哪个就显示哪个。菜单列出全部四种代币和它们的当日涨跌,另外三种还附上以 SOL 计的价格,小数点后连续的零会缩成一个小号数字,标明零的个数:0.00003717 SOL 显示为 0.0₄3717 SOL。价格用的是 Coinbase 的现货价,守护进程每分钟取一次,这台机器上的所有桌面共用;Coinbase 没有报价时,就用 Jupiter 的价格补上。
就算一个桌面都没开,守护进程也一直盯着行情。选 Notify Me of Big Moves(大幅波动时通知我)之后,一旦某个代币出现它平时少见的波动,通知就会送到你的手机或电脑上。SOL 的阈值是一小时内涨跌 2.5% 或一天内涨跌 6%;PUMP 是 5% 或 12%,MET 是 6% 或 15%,SKR 是 8% 或 25%。代币要在连续两次成功的检查中都越过阈值,才会发出提醒。
每个代币在 24 小时内最多提醒四次。行情剧烈的日子里,后面的提醒要求更大的波动:第二次要达到阈值的 1.5 倍,第三、第四次要达到 2 倍。因为这个上限而没发出的波动,只要还不到一天,就会计入下一次提醒。同一个代币的新提醒会替换掉旧的那条通知,不会一条条叠起来;Recent Moves(最近的波动)列出最近八次。

这个菜单项就是 exe 所有推送的总开关,没有哪种推送另有自己的设置。打开它以后,守护进程还会盯着 Weather 应用里第一个城市的天气:未来一小时会不会下雨,有没有危险的高温、大风或火险天气。桌面上的会话结束一轮时,如果你已经有一分多钟没在里面输入,就会推送 Claude Code finished 或 Codex finished。机器上的脚本也可以发送自己的内容:
$ curl -s 127.0.0.1:7777/v1/push \
-d '{"title":"Backup",
"body":"Done."}'
agent 用量:用掉了多少 token
agent 用量表显示 Claude Code 或 Codex 今天在这台机器上用了多少 token。选 Show Plan Limit(显示套餐限额),格子上就改为显示这个 agent 各个用量窗口里最满的那一个,比如“46% wk”,这样限额一整天都在眼前。
菜单里列出两个 agent 今天的 token 数,还有它们的 5 小时窗口和每周窗口,按列对齐。每个 agent 的子菜单里有详细数据:今天和最近七天的用量,分成输入、缓存和输出 token;一周的用量画成柱状图,一天一根柱子,最忙的那天和今天标着数字;还有每个窗口用了多少、什么时候重置。

守护进程读的是两个 CLI 自己的日志,也就是 Claude Code 的 transcript 和 Codex 的 rollout,所以不光是从桌面打开的会话,你在自己终端里跑的会话也算在内。Claude Code 的用量窗口,是它在桌面上的 Claude Code 窗口里最近一次回复时的数据。Codex 的用量窗口是用它登录的 ChatGPT 账户查到的,通常最多一分钟查一次;查不了时,就从 Codex 自己的日志里读。
活动:这台机器本身
最后一个模块把这台机器的状况画成图表:CPU、内存、GPU、网络和磁盘,每两秒采样一次。格子上显示其中一项最近一分钟的走势和当前读数。菜单里是全部五项最近四分钟的图表,手机上是两分钟,在你眼前实时滚动。选中哪一行,格子上就显示哪一项。

CPU 一行显示全部核心的总使用率,以及最热的那个传感器的温度。GPU 一行显示使用率、温度和功耗,数据来自 nvidia-smi;宿主机上没有 nvidia-smi,就没有 GPU 这一行。Network 和 Disk 只统计物理网卡和物理磁盘。在跑着大量虚拟机的机器上,这一点很重要:虚拟机的流量要先后经过它的 tap 设备、网桥和网卡,只数网卡,每个字节就只算一次。
守护进程只在有桌面读取数据时才采样。Control Strip 一展开,采样就开始;最后一个桌面收起 Control Strip 或切到后台十分钟后,采样就停止。
试一试
在你自己的 exe 桌面上:
- 点一下行情格子,选 Notify Me of Big Moves。浏览器询问时,允许通知。
- 在同一个菜单里选 Send a Test Notification(发送测试通知),看着它送达。
- 点一下 agent 用量表,选 Show Plan Limit。
- 在 Linux 上,点一下活动格子,挑一项你想放在角落里的指标。
在手机上,先把桌面添加到主屏幕:手机要通过这样装好的应用来接收通知。每个模块的完整说明见手册(英文),其余内容见 Notifications: turn them on(打开通知)。