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