# Vitals over SSH: watch another Mac’s CPU, memory and apps from any computer

Canonical page: https://vitalsmac.com/monitor-mac-remotely-ssh

By Atta Ur Rehman Shah, maker of Vitals. Published October 29, 2026.

**Short answer:** Turn on Remote Login on the Mac you want to watch, then connect from any computer with `ssh name@that-mac.local`. macOS’s own `top -o cpu` shows its processes, and `memory_pressure` its memory pressure. If that Mac runs Vitals, its command line answers over the same connection: `~/Library/Application\ Support/Vitals/vitals top cpu --watch` lists the apps using the most CPU, with their helpers counted in, and refreshes every two seconds. Vitals, an activity monitor and process inspector for the Mac, answers the same questions for an AI assistant on your PC through its MCP server.

## How to watch a Mac over SSH

1. On the Mac you want to watch, open System Settings, click General, then Sharing, and turn on Remote Login. The line under it gives the command to connect, such as `ssh dad@Dads-Mac.local`.
2. On your own computer, open Terminal, or PowerShell on Windows, and run that command. Enter the Mac’s login password when asked.
3. Run `top -o cpu` for the processes using the most CPU, and press Q to leave. `top -o mem` sorts by memory instead.
4. Run `memory_pressure` for how much memory is free, and `pmset -g batt` for the battery. `df -h /` shows how full the disk is.
5. If the Mac runs Vitals, run `~/Library/Application\ Support/Vitals/vitals status` for the whole Mac in a few lines, and `~/Library/Application\ Support/Vitals/vitals top cpu --watch` for the apps using the most CPU, refreshed every two seconds.

The full path matters: a shell started by SSH does not read the folders Homebrew adds to your PATH, so a bare `vitals` is not found there. Put the path in a shell alias on your own computer to save typing it.

A Mac you look after but don’t sit at, a parent’s, a studio machine, a Mac mini running local models in the next room, is one you can only check on from afar. SSH is the way in that every Mac already has: a terminal on that Mac, from any other computer, Windows and Linux included. What you can see through it depends on what the Mac runs. The table shows what each question takes.

## What you can see over SSH

| The question | With macOS alone | With Vitals on that Mac |
|---|---|---|
| What is using the CPU? | `top -o cpu`, one process per row | `vitals top cpu`, one app per row with its helpers |
| Is memory running out? | `memory_pressure` and `vm_stat` | `vitals status memory` |
| How hot is it? Are the fans on? | Only whether it is slowed to cool: `pmset -g therm` | `vitals status heat` |
| What is this process? | `ps -p` and `codesign -dv` | `vitals process`: signer, version, start, children |
| What was it doing last night? | Nothing kept | `vitals history day` |
| What is on port 11434? | `lsof -i :11434` | `vitals find :11434` |

## Turning on Remote Login

Remote Login is macOS’s SSH server. It is off until you turn it on in System Settings → General → Sharing. Next to it, the info button lets you choose which users may log in: only the account you need is the safer choice. The Mac has to be awake to answer: Wake for network access, in System Settings → Energy (Battery → Options on a laptop), lets it wake when someone connects.

From the same network, the Mac’s name followed by `.local` reaches it. From outside the house you need a way in, and the safest is a private network between your devices such as Tailscale, rather than opening a port on the router. A line in `~/.ssh/config` on your own computer gives the Mac a short name, so `ssh dads-mac` is all you type.

## What macOS’s own commands show

`top` is the closest thing to Activity Monitor in a terminal: processes sorted by CPU, with memory beside each. It counts every helper on its own, so a browser is thirty rows and an app that runs a local model may be a process with a name you don’t recognise. `memory_pressure` gives the one figure that says whether the Mac is short of memory; see [memory pressure](https://vitalsmac.com/glossary/memory-pressure).

Temperatures and the graphics chip are harder. On Apple silicon no command prints the temperature in degrees: `pmset -g therm` says only whether the Mac is being slowed to cool, and `sudo powermetrics` reads the graphics chip with the administrator password, in pages of figures a second. Nothing in macOS keeps a history, so a slowdown at three in the morning is gone by the time you look.

## Running Vitals’ command over SSH

Vitals’ command line asks the Vitals app running on the same Mac, so over SSH it answers for that Mac. Two things have to be true: Vitals is running in the account you log in as, which it is whenever that person is logged in, and Let AI Assistants Ask Vitals is on in its Settings → Integrations, which turns the command on.

Then every command works as it does at the Mac itself: `status` for the whole Mac, `app Ollama` for one app, `process` for one process in full, `history day` for the last day. Add `--json` to any of them and a script on your own computer gets JSON to read.

1. Check that it answers: `ssh dads-mac "~/Library/Application\ Support/Vitals/vitals version"`.
2. Watch it live: `ssh -t dads-mac "~/Library/Application\ Support/Vitals/vitals top cpu --watch"`. Control-C stops it.
3. Save typing: on your own computer, add `alias dadsmac='ssh -t dads-mac "~/Library/Application\ Support/Vitals/vitals"'` to your shell’s profile, then run `dadsmac status`.

## An AI assistant on another computer

Vitals has an [MCP server](https://vitalsmac.com/features/mcp-server), the way AI assistants such as Claude ask apps questions. The server is the same command, so an assistant on your PC can ask the other Mac directly: in the assistant’s MCP settings, set the command to `ssh` and its arguments to `["dads-mac", "~/Library/Application\\ Support/Vitals/vitals", "mcp"]`, the backslash keeping the space in the folder’s name. It then answers “what is using the graphics chip on that Mac” or “was it hot last night” from that Mac’s own readings.

The SSH login has to work without a password prompt for this, since the assistant cannot type one: set up a key with `ssh-copy-id dads-mac` once.

## What does not work over SSH

The Vitals window and its menu bar stay on the Mac they run on; SSH carries text, not windows. To see them from afar, use Screen Sharing, which is also in System Settings → General → Sharing. Quitting an app over SSH asks on the terminal first, the same as at the Mac, and a Mac at its login screen, with nobody logged in, has no Vitals running to ask.

## What Vitals adds

Vitals answers for the Mac it runs on, from any computer that can reach it over SSH.

- Apps with their helpers counted in, by CPU, memory, power, disk or network
- Memory pressure, temperatures, fans and the graphics chip, without the administrator password
- Any process in full: code signature, parent process, command line, CPU time and memory peak
- Up to a year of history, so last night’s slowdown is still there in the morning
- JSON for scripts, and an MCP server an AI assistant on another computer can use

Good to know:

- Vitals does not open SSH or a port of its own. Remote Login is macOS’s, and it is off until you turn it on.
- The window and the menu bar are not shown remotely. Screen Sharing does that.

Vitals: $15 for life during the launch, $39 after, paid once, with a 14-day refund. Or $9 for a year of updates. [vitalsmac.com](https://vitalsmac.com/).

## Questions people ask

### Can I monitor a Mac remotely from Windows?

Yes. Windows 10 and 11 come with SSH: in PowerShell, run `ssh` with the Mac’s user name and address. Turn on Remote Login on the Mac first.

### How do I turn on SSH on a Mac?

System Settings → General → Sharing → Remote Login. The line under it shows the command to connect with.

### Can I see Activity Monitor over SSH?

Not the window. In a terminal, `top -o cpu` shows the same processes, and `memory_pressure` the memory pressure. To see the window itself, use Screen Sharing.

### Why does “vitals: command not found” appear over SSH?

A shell started by SSH does not read the folders Homebrew adds to the PATH. Use the full path, `~/Library/Application\ Support/Vitals/vitals`, or add `/opt/homebrew/bin` to that Mac’s `~/.zshenv`.

### Does Vitals have to be running on the other Mac?

Yes, in the account you log in as, with Let AI Assistants Ask Vitals on in its Settings → Integrations. The command asks the running app; it measures nothing itself.

### Can I check a Mac’s temperature over SSH?

macOS has no command that prints it on Apple silicon; `pmset -g therm` says only whether the Mac is being slowed to cool. With Vitals running there, `vitals status heat` shows the CPU and GPU temperatures and the fans.

### Is there an app to monitor another Mac remotely?

Vitals answers over SSH for the Mac it runs on: apps, processes, temperatures and a year of history, as text or JSON, and to an AI assistant on another computer through its MCP server.

In the glossary: [Memory pressure](https://vitalsmac.com/glossary/memory-pressure), [% CPU](https://vitalsmac.com/glossary/cpu-percent), [Helper processes](https://vitalsmac.com/glossary/helper-processes), [Listening port](https://vitalsmac.com/glossary/listening-port), [PID](https://vitalsmac.com/glossary/pid).

More guides: [Why is my Mac so slow](https://vitalsmac.com/why-is-my-mac-so-slow), [What’s draining my Mac’s battery](https://vitalsmac.com/mac-battery-draining-fast), [Which app is using my CPU or memory](https://vitalsmac.com/check-cpu-memory-usage-mac), [Why won’t my Mac sleep](https://vitalsmac.com/mac-wont-sleep), [Chrome using too much memory](https://vitalsmac.com/chrome-using-too-much-memory-mac), [Why are my Mac’s fans so loud](https://vitalsmac.com/mac-fan-loud), [How to control fan speed on a Mac](https://vitalsmac.com/mac-fan-control), [How to free up RAM on a Mac](https://vitalsmac.com/free-up-ram-mac), [Docker using too much memory](https://vitalsmac.com/docker-using-too-much-memory-mac), [How to stop Docker containers](https://vitalsmac.com/stop-docker-containers-mac), [Volume mixer for Mac](https://vitalsmac.com/mac-volume-mixer), [Cursor using high CPU](https://vitalsmac.com/cursor-high-cpu-mac), [Claude Code using too much memory](https://vitalsmac.com/claude-code-memory-usage-mac), [Claude Code and Codex usage limits](https://vitalsmac.com/claude-code-codex-usage-limits-mac), [Claude app using high CPU](https://vitalsmac.com/claude-desktop-high-cpu-mac), [Codex using high CPU](https://vitalsmac.com/codex-high-cpu-mac), [Ollama using too much memory](https://vitalsmac.com/ollama-memory-usage-mac), [Activity Monitor alternatives](https://vitalsmac.com/best-activity-monitor-alternatives), [iStat Menus alternatives](https://vitalsmac.com/best-istat-menus-alternatives), [Stats alternatives](https://vitalsmac.com/best-stats-alternatives), [Task Manager for Mac](https://vitalsmac.com/task-manager-for-mac), [Best system monitors for Mac](https://vitalsmac.com/best-system-monitor-for-mac), [Best menu bar monitors for Mac](https://vitalsmac.com/best-menu-bar-system-monitor-for-mac), [Best volume mixers for Mac](https://vitalsmac.com/best-volume-mixer-for-mac), [htop for Mac](https://vitalsmac.com/htop-for-mac), [Process Explorer for Mac](https://vitalsmac.com/process-explorer-for-mac), [Best temperature monitors for Mac](https://vitalsmac.com/best-mac-temperature-monitor).
