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