Vitals看到的一切,都在你的终端里。

输入vitals,就能看到正在占用Mac的App、每个项目占用的端口和开发服务器、你的编程代理,以及AI套餐还剩多少。表格你能看懂,JSON脚本能解析,没有你的同意,什么都不会被停止。

Terminal — zsh
~ vitals status
● CPU 27% · Apple M4 Pro, 14 cores
● Memory 52.6 GB of 64 GB · pressure normal
● GPU 18%
● Disk 412 GB free of 1 TB
● Network down 1.2 MB/s · up 84 KB/s
● Battery 82% · 4h 10m left
● Heat CPU 52° · fans 1,800 rpm
~ vitals top memory 4
APP MEMORY CPU PROCS
Google Chrome 21.2 GB 48% 96
VS Code 8.2 GB 14% 31
Terminal 3.9 GB 3% 12
Figma 2.8 GB 6% 8
62 apps running · by memory
~ vitals ports
PORT PROCESS PROJECT OPEN TO
3000 node storefront-web network
4322 node docs-site this Mac
5432 postgres – this Mac
8080 python api this Mac
4 ports listening · 1 open to the network
~ vitals stop --idle
✓ Safe to quit node (48211) of docs-site · port 4322
Idle for 3 days. Stopping it frees 458 MB.
Continue? [y/N] y
Stopped node (48211). Port 4322 is free.
~ vitals agents
AGENT PROJECT STATUS MEMORY
Claude Code storefront-web working 412 MB
Codex api waiting for you 4m 287 MB
Gemini CLI docs-site working 198 MB
3 sessions · 6 processes started
~ vitals limits
TOOL LIMIT LEFT RESETS PACE
Claude 5-hour session 59% in 2h 10m on pace
Claude This week 72% Mon 9:00 on pace
Codex This week 38% Thu 14:00 runs out Wed
Cursor This month 81% Nov 3 on pace

这些数字是模拟的:网页读取不了你的Mac,也不应该读取。

01安装

随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和命令
~ brew install --cask foredotstudio/tap/vitals
==> Installing Cask vitals
==> Linking Binary 'vitals'
==> Linking Manpage 'vitals.1'
==> Linking Zsh Completion '_vitals'
🍺 vitals was successfully installed!
~ vitals version
vitals 1.8.0
Vitals is running and answering.
App和命令一起装好 或者在“设置”→“集成”中
02读取速度

窗口里显示的内容,以表格呈现。

vitals status每项读数一行,附一个进度条。vitals top列出占用内存、CPU、功率、磁盘或网络最多的App,可以看此刻,也可以看最长一年。端口、项目、容器、编程代理和AI限额各有一个命令,每个回答都会说明测量时间。

  • App已计入帮助程序,和窗口里一样
  • 每项读数用App自己的颜色
  • 哪些端口对网络开放,哪些仅限此Mac
  • --watch每两秒刷新一次回答
~ vitals status
● CPU 27%
● Memory 52.6 GB of 64 GB
● GPU 18%
● Disk 412 GB free
● Battery 82%
Measured just now
每项读数一行 用App自己的颜色
03脚本

JSON给脚本,CSV给电子表格。

加上--json,任何回答都会变成脚本能读取的JSON,和MCP服务器给出的回答相同。--csv会把主列表输出给电子表格。在管道中不会截断任何内容,脚本或代理能读到每一个字。

  • 每个命令都支持--json
  • --csv输出主列表
  • 管道中输出纯文本,不截断
  • Vitals没有回答时,退出码为1
~ vitals top --json | jq '.apps[0]'
{
"name": "Google Chrome",
"memory_mb": 21709,
"cpu_percent": 48.2,
"processes_count": 96
}
~ vitals ports --csv > ports.csv
脚本能读取的JSON 供电子表格使用的CSV
04停止

停止任何东西之前,它都会先问你。

vitals can-quit会告诉你某样东西能否安全退出、为什么,以及哪些会随它一起停止。vitals quit和vitals stop会先给出这个判断,再等你同意。需要人来决定的操作,在没有终端时会被拒绝,即使加上--yes也一样,所以脚本或代理无法擅自放行。

  • 安全、先问一下或不要退出,附上理由
  • stop --idle会停止所有没人在用的开发服务器
  • App会像按⌘Q那样退出,所以有机会提示你存储
  • 每次退出都会记录在“设置”→“集成”中
~ vitals stop --port 4322
✓ Safe to quit node (48211) of docs-site
Idle for 3 days. Stopping it frees 458 MB.
Continue? [y/N] y
Stopped node (48211).
~ vitals stop WindowServer
✗ Leave it alone WindowServer (615) of macOS
停止之前先给出判断 没有你的同意,什么都不会停止
参考

安装方法,以及全部命令

从App中

“设置”→“集成”→“允许AI助手向Vitals查询”。那里的“终端”部分会显示命令所在的位置。

$ vitals version
用Homebrew

同时安装App和命令,附带手册页以及zsh、bash和fish的Tab补全。

$ brew install --cask foredotstudio/tap/vitals
vitals help
命令
命令回答什么
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中的位置

标签页、菜单栏项和设置,按你会用到的顺序排列。

  1. 01

    安装

    在“设置”→“集成”中打开“允许AI助手向Vitals查询”,Vitals会把命令链接到你的PATH。如果该文件夹需要你的密码,“安装”按钮会请你输入一次。用Homebrew的话,brew install --cask foredotstudio/tap/vitals会同时安装App和命令。

  2. 02

    提问

    vitals status查看整台Mac,vitals top cpu day查看今天用CPU最多的是什么,vitals ports查看什么在监听,vitals agents查看你的编程代理,vitals limits查看你的AI套餐。vitals help列出所有命令,man vitals逐一解释。

  3. 03

    写成脚本

    给任意命令加上--json并通过管道传给jq,或者用--csv输出给电子表格。--watch每两秒刷新一次回答,直到你按下Control-C。

  4. 04

    停掉不需要的

    vitals can-quit --port 3000会告诉你是什么占用了这个端口,以及停止它是否安全。vitals stop --port 3000会在你同意后停止它,vitals stop --idle会停止所有没人在用的开发服务器。

对比

命令行:活动监视器与Vitals

完整对比会逐项列出。以下是与命令行有关的几项。

活动监视器 Vitals
在“终端”中
活动监视器top和ps,每行一个进程
Vitalsvitals,每行一个App,已计入帮助程序
端口
活动监视器先用lsof,再查PID
Vitalsvitals ports,附带项目以及谁能访问
编码智能体和AI套餐
活动监视器无
Vitalsvitals agents和vitals limits
过去
活动监视器无
Vitalsvitals history和vitals top,最长一年
供脚本使用
活动监视器需要解析的文本
Vitals每个命令都能输出JSON和CSV
停止某样东西
活动监视器kill,什么都不问
Vitals先给判断,再等你同意

背后的术语

这些数字是什么意思,摘自活动监视器术语表。

问题

购买前,大家关于命令行最常问的问题。

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相比如何。

Vitals的更多功能

全部功能

首发价期间,终身版仅需$15

此价位剩余50份。 之后为$39;或$9享一年更新。一次付款,14天内可退款。

购买Vitals $15