指南/通过SSH使用Vitals

通过SSH使用Vitals:从任何电脑查看另一台Mac的CPU、内存和App

Atta 🐬

Vitals创始人

发布于

简要回答

在你要查看的Mac上打开“远程登录”,然后在任何电脑上用ssh [email protected]连接。macOS自带的top -o cpu会显示它的进程,memory_pressure会显示它的内存压力。如果那台Mac运行着Vitals,它的命令行会通过同一个连接回答:~/Library/Application\ Support/Vitals/vitals top cpu --watch列出占用CPU最多的App,并计入它们的帮助程序,每两秒刷新一次。Vitals是一款Mac活动监视器和进程检查器,还能通过它的MCP服务器为你PC上的AI助手回答同样的问题。

如何通过SSH查看Mac

  1. 01 在你要查看的Mac上打开“系统设置”,点按“通用”,然后点按“共享”,打开“远程登录”。它下方的一行会给出连接用的命令,例如ssh [email protected]。
  2. 02 在你自己的电脑上打开“终端”(Windows上则是PowerShell),运行这个命令。出现提示时,输入那台Mac的登录密码。
  3. 03 运行top -o cpu查看占用CPU最多的进程,按Q退出。top -o mem则按内存排序。
  4. 04 运行memory_pressure查看还有多少可用内存,运行pmset -g batt查看电池。df -h /显示磁盘用了多少。
  5. 05 如果那台Mac运行着Vitals,运行~/Library/Application\ Support/Vitals/vitals status用几行看清整台Mac,运行~/Library/Application\ Support/Vitals/vitals top cpu --watch查看占用CPU最多的App,每两秒刷新一次。

完整路径很重要:由SSH启动的shell不会读取Homebrew添加到PATH中的文件夹,所以只输入vitals会找不到命令。在你自己的电脑上把这个路径放进shell别名,就不用每次都输入。

有些Mac你要照看,却不坐在它面前:父母的Mac、工作室里的电脑、隔壁房间里跑着本地模型的Mac mini。对这样的Mac,你只能远程提问。SSH是每台Mac都已具备的入口:从任何其他电脑(包括Windows和Linux)打开那台Mac上的终端。通过它能看到什么,取决于那台Mac上运行着什么。下表列出每个问题需要用什么。

通过SSH能看到什么

问题仅用macOS那台Mac装有Vitals时
是什么在占用CPU? top -o cpu,每行一个进程 vitals top cpu,每行一个App,含帮助程序
内存快用完了吗? memory_pressure和vm_stat vitals status memory
它有多热?风扇在转吗? 只能看出是否在降速降温:pmset -g therm vitals status heat
这是什么进程? ps -p和codesign -dv vitals process:签名者、版本、启动、子进程
它昨晚在做什么? 不保留任何记录 vitals history day
端口11434上是什么? lsof -i :11434 vitals find :11434

打开“远程登录”

“远程登录”就是macOS的SSH服务器。它默认关闭,要在“系统设置”→“通用”→“共享”中打开。旁边的信息按钮可以选择允许哪些用户登录:只允许你需要的那个账户更安全。Mac必须处于唤醒状态才能回应:“系统设置”→“能耗”(笔记本电脑上是“电池”→“选项”)中的“唤醒以供网络访问”能让它在有人连接时唤醒。

在同一网络中,用Mac的名称加上.local就能连到它。在家以外的地方,你需要一个入口,最安全的是在你的设备之间建立私有网络,例如Tailscale,而不是在路由器上开放端口。在你自己电脑的~/.ssh/config中加一行,就能给那台Mac起个短名,只需输入ssh dads-mac。

macOS自带的命令能显示什么

top是终端里最接近活动监视器的工具:进程按CPU排序,每个旁边列出内存。它把每个帮助程序单独计算,所以一个浏览器就有三十行,运行本地模型的App可能只是一个你认不出名字的进程。memory_pressure给出的那一个数字,能说明Mac是否内存不足;参见内存压力。

温度和图形芯片就难多了。在Apple silicon上,没有命令能以度数显示温度:pmset -g therm只说明Mac是否在降速降温,sudo powermetrics要用管理员密码读取图形芯片,每秒输出成页的数字。macOS不保留任何历史记录,所以凌晨三点的变慢,等你去看时已经无迹可寻。

通过SSH运行Vitals的命令

Vitals的命令行查询的是同一台Mac上运行的Vitals App,所以通过SSH,它回答的是那台Mac的情况。需要满足两个条件:Vitals在你登录的账户中运行,只要那个人已登录就是如此;并且在它的“设置”→“集成”中打开了“允许AI助手向Vitals查询”,这会启用该命令。

之后,每个命令都和在那台Mac前使用时一样:status查看整台Mac,app Ollama查看一个App,process完整查看一个进程,history day查看过去一天。在任何一个命令后加上--json,你自己电脑上的脚本就能读到JSON。

  1. 检查它是否回应:ssh dads-mac "~/Library/Application\ Support/Vitals/vitals version"。
  2. 实时查看:ssh -t dads-mac "~/Library/Application\ Support/Vitals/vitals top cpu --watch"。按Control-C停止。
  3. 少打几个字:在你自己的电脑上,把alias dadsmac='ssh -t dads-mac "~/Library/Application\ Support/Vitals/vitals"'添加到shell的配置文件中,然后运行dadsmac status。

另一台电脑上的AI助手

Vitals有一个MCP服务器,这是Claude等AI助手向App提问的方式。服务器就是同一个命令,所以你PC上的助手可以直接询问另一台Mac:在助手的MCP设置中,把命令设为ssh,参数设为["dads-mac", "~/Library/Application\\ Support/Vitals/vitals", "mcp"],其中的反斜杠保留了文件夹名称中的空格。之后它就能根据那台Mac自己的读数,回答“那台Mac上是什么在用图形芯片”或“它昨晚热不热”。

为此,SSH登录必须无需输入密码,因为助手无法输入:用ssh-copy-id dads-mac设置一次密钥即可。

通过SSH做不到的事

Vitals的窗口和菜单栏留在它们运行的那台Mac上;SSH传输的是文本,不是窗口。要远程查看它们,请使用“屏幕共享”,它也在“系统设置”→“通用”→“共享”中。通过SSH退出App时,会先在终端中询问,和在那台Mac前一样;而停在登录界面、没有人登录的Mac,没有运行中的Vitals可以询问。

Vitals能多做什么

Vitals回答它所运行的那台Mac的情况,任何能通过SSH连到它的电脑都能问。

  • App已计入帮助程序,可按CPU、内存、功率、磁盘或网络查看
  • 内存压力、温度、风扇和图形芯片,无需管理员密码
  • 完整查看任何进程:代码签名、父进程、命令行、CPU时间和内存峰值
  • 最长一年的历史记录,昨晚的变慢到早上还能查到
  • 供脚本使用的JSON,以及另一台电脑上的AI助手可以使用的MCP服务器

须知

  • Vitals不会开启SSH,也不会开放自己的端口。“远程登录”是macOS的功能,默认关闭,要你自己打开。
  • 窗口和菜单栏无法远程显示。这要用“屏幕共享”。
购买Vitals $15 首发期间$15即可终身使用,首发期后$39,一次付款,14天内可退款。或一年更新$9。

常见问题

可以从Windows远程监控Mac吗?

可以。Windows 10和11自带SSH:在PowerShell中运行ssh,加上那台Mac的用户名和地址。先在Mac上打开“远程登录”。

如何在Mac上打开SSH?

“系统设置”→“通用”→“共享”→“远程登录”。它下方的一行会显示用来连接的命令。

可以通过SSH查看活动监视器吗?

看不到窗口。在终端中,top -o cpu显示同样的进程,memory_pressure显示内存压力。要看到窗口本身,请使用“屏幕共享”。

为什么通过SSH会出现“vitals: command not found”?

由SSH启动的shell不会读取Homebrew添加到PATH中的文件夹。请使用完整路径~/Library/Application\ Support/Vitals/vitals,或者把/opt/homebrew/bin添加到那台Mac的~/.zshenv中。

另一台Mac上必须运行Vitals吗?

是的,要在你登录的账户中运行,并在它的“设置”→“集成”中打开“允许AI助手向Vitals查询”。命令只是询问正在运行的App,本身不测量任何东西。

可以通过SSH查看Mac的温度吗?

在Apple silicon上,macOS没有能显示温度的命令;pmset -g therm只说明Mac是否在降速降温。那台Mac运行着Vitals时,vitals status heat会显示CPU和GPU的温度以及风扇。

有没有能远程监控另一台Mac的App?

Vitals通过SSH回答它所运行的那台Mac的情况:App、进程、温度和一年的历史记录,以文本或JSON形式提供,还能通过它的MCP服务器回答另一台电脑上的AI助手。

术语表中的相关条目

更多指南