Vitals看到的一切,都在你的终端里。
输入vitals,就能看到正在占用Mac的App、每个项目占用的端口和开发服务器、你的编程代理,以及AI套餐还剩多少。表格你能看懂,JSON脚本能解析,没有你的同意,什么都不会被停止。
这些数字是模拟的:网页读取不了你的Mac,也不应该读取。
随App附带,也可以通过Homebrew安装。
这个命令就在Vitals里。在“设置”→“集成”中打开“允许AI助手向Vitals查询”,Vitals就会把vitals放进你的PATH,并附上手册页和Tab补全。也可以用一行Homebrew命令同时安装App和命令。
- 链接到
/opt/homebrew/bin或/usr/local/bin - 手册页:
man vitals - zsh、bash和fish的Tab补全
- 一行Homebrew命令就能安装App和命令
窗口里显示的内容,以表格呈现。
vitals status每项读数一行,附一个进度条。vitals top列出占用内存、CPU、功率、磁盘或网络最多的App,可以看此刻,也可以看最长一年。端口、项目、容器、编程代理和AI限额各有一个命令,每个回答都会说明测量时间。
- App已计入帮助程序,和窗口里一样
- 每项读数用App自己的颜色
- 哪些端口对网络开放,哪些仅限此Mac
--watch每两秒刷新一次回答
JSON给脚本,CSV给电子表格。
加上--json,任何回答都会变成脚本能读取的JSON,和MCP服务器给出的回答相同。--csv会把主列表输出给电子表格。在管道中不会截断任何内容,脚本或代理能读到每一个字。
- 每个命令都支持
--json --csv输出主列表- 管道中输出纯文本,不截断
- Vitals没有回答时,退出码为1
停止任何东西之前,它都会先问你。
vitals can-quit会告诉你某样东西能否安全退出、为什么,以及哪些会随它一起停止。vitals quit和vitals stop会先给出这个判断,再等你同意。需要人来决定的操作,在没有终端时会被拒绝,即使加上--yes也一样,所以脚本或代理无法擅自放行。
- 安全、先问一下或不要退出,附上理由
stop --idle会停止所有没人在用的开发服务器- App会像按⌘Q那样退出,所以有机会提示你存储
- 每次退出都会记录在“设置”→“集成”中
安装方法,以及全部命令
“设置”→“集成”→“允许AI助手向Vitals查询”。那里的“终端”部分会显示命令所在的位置。
$ vitals version 同时安装App和命令,附带手册页以及zsh、bash和fish的Tab补全。
$ brew install --cask foredotstudio/tap/vitals | 命令 | 回答什么 |
|---|---|
| vitals status [<part>…] | CPU、内存、GPU、神经网络引擎、磁盘、网络、电池、功率和发热,每项一行;或者只显示你指定的部分 |
| vitals top [<by>] [<period>] [N] | 占用内存、CPU、功率、磁盘或网络最多的App,可以看此刻,也可以看过去一小时、一天、一周、一个月、一个季度、半年或一年 |
| vitals app <name> | 单个App:它的进程、端口、项目和容器,以及它在一段时间内用了多少 |
| vitals find <name|pid|:port> | 按名称、PID或端口查找进程 |
| vitals ports [<port>…] | 哪个端口上有什么在监听,附带它的进程、App和项目,以及是只对此Mac开放还是对网络开放 |
| vitals projects [<name>] | 有内容在运行的项目文件夹,它们的端口、内存和CPU,以及没人在用的开发服务器 |
| vitals containers [<name>] | Docker、OrbStack、Podman或Colima中正在运行的容器,附带内存、CPU、网络和端口 |
| vitals agents [<name>] | 此刻正在运行的编程代理:每个会话的项目、它是在工作还是在等你,以及它启动了什么 |
| vitals limits [<tool>] | 每个AI套餐还剩多少、每项限额何时重置,以及按目前的速度够不够用 |
| vitals awake | 是什么让Mac保持唤醒 |
| vitals battery | 电池,以及耗电最多的App |
| vitals history [<reading>…] [<period>] | Mac在一段时间内承受了多大的负载,以及在什么时候 |
| vitals whats-wrong | Vitals注意到的问题:持续占用CPU或内存不断增长的App、内存压力、发热,以及被遗留下来的开发服务器 |
| vitals can-quit [<app>] | 某样东西能否安全退出,附上理由以及哪些会随它一起停止。可按名称、--pid、--port或--project指定 |
| vitals quit <app> | 在给出判断并得到你的同意后退出App。--force会立即结束它 |
| vitals stop [<name>] | 以同样的方式停止你的某个进程,可按名称、--pid或--port指定;--idle会停止所有闲置的开发服务器 |
| vitals completions <shell> | zsh、bash或fish的Tab补全 |
| vitals mcp | 通过标准输入和输出使用MCP,供AI助手使用 |
| vitals help | 所有命令和选项 |
| 选项 | 作用 |
|---|---|
| --json | 以JSON输出回答,供脚本使用 |
| --csv | 以CSV输出主列表,供电子表格使用 |
| --watch | 每两秒刷新一次,直到按下Control-C;用--every N设定其他间隔 |
| --no-color | 纯文本;在环境中设置NO_COLOR效果相同 |
命令行:之前与之后
macOS给终端提供了top和ps。两者都列出进程,约有一千个,却不知道每个属于哪个App或项目,也不知道昨天发生了什么。想找出是什么占用了端口3000,就得用lsof查到PID,再用另一个命令弄清这个PID是什么。
编程代理也在终端里工作。当它想知道是什么拖慢了Mac、某个端口上是什么时,它会运行同样的命令,再从列表里猜。
vitals则是向正在运行的Vitals App查询。你得到的是已计入帮助程序的App、附带端口的项目、附带所启动内容的编程代理、附带剩余额度的AI套餐,以及最长一年的历史记录,以你能看懂的表格或脚本能解析的JSON呈现。命令本身不做任何测量,所以查询几乎不占用Mac的资源。
在Vitals中的位置
标签页、菜单栏项和设置,按你会用到的顺序排列。
- 01
安装
在“设置”→“集成”中打开“允许AI助手向Vitals查询”,Vitals会把命令链接到你的PATH。如果该文件夹需要你的密码,“安装”按钮会请你输入一次。用Homebrew的话,
brew install --cask foredotstudio/tap/vitals会同时安装App和命令。 - 02
提问
vitals status查看整台Mac,vitals top cpu day查看今天用CPU最多的是什么,vitals ports查看什么在监听,vitals agents查看你的编程代理,vitals limits查看你的AI套餐。vitals help列出所有命令,man vitals逐一解释。 - 03
写成脚本
给任意命令加上
--json并通过管道传给jq,或者用--csv输出给电子表格。--watch每两秒刷新一次回答,直到你按下Control-C。 - 04
停掉不需要的
vitals can-quit --port 3000会告诉你是什么占用了这个端口,以及停止它是否安全。vitals stop --port 3000会在你同意后停止它,vitals stop --idle会停止所有没人在用的开发服务器。
top和ps,每行一个进程vitals,每行一个App,已计入帮助程序lsof,再查PIDvitals ports,附带项目以及谁能访问vitals agents和vitals limitsvitals history和vitals top,最长一年kill,什么都不问背后的术语
这些数字是什么意思,摘自活动监视器术语表。
问题
购买前,大家关于命令行最常问的问题。
Vitals必须在运行吗?
是的。命令向正在运行的App查询,App本来就保存着读数和历史记录,所以查询几乎不占用Mac的资源。如果Vitals没有运行,或者“允许AI助手向Vitals查询”已关闭,命令会告诉你,并说明该怎么做。
如何用Homebrew安装?
运行brew install --cask foredotstudio/tap/vitals。它会安装App,并链接vitals命令、它的手册页,以及zsh、bash和fish的Tab补全。Vitals会自行更新,所以brew upgrade不会动它。
我已经有Vitals了。怎么获得这个命令?
在“设置”→“集成”中打开“允许AI助手向Vitals查询”。Vitals会把vitals链接到你的PATH中,位于/opt/homebrew/bin或/usr/local/bin,那里的“终端”部分会显示具体位置。如果该文件夹需要你的密码,“安装”按钮会请你输入一次。
AI代理能用它吗?
能。能用shell的代理可以运行vitals并读取回答,在管道中也不会有任何内容被截断。凡是需要人来决定的,它都停不了:没有可以询问的终端时,这些都会被拒绝,即使加上--yes也一样。
它和MCP服务器有什么不同?
它和App的连接是同一个,回答也一样。命令多了quit和stop,会在终端里问你。使用MCP的助手则通过Vitals自己的窗口来问你,而vitals mcp就是那个服务器。
免费试用期间能用吗?
能。试用期间Vitals的所有功能都能用,包括这个命令。
哪些shell支持Tab补全?
zsh、bash和fish,会根据正在运行的内容补全App名称。Vitals会随命令一起安装zsh和fish的补全。对于bash,把eval "$(vitals completions bash)"添加到你的.bashrc中;Homebrew会把三个都装好。
继续阅读
用到它的指南,以及Vitals与大家为此购买的App相比如何。