Vitals가 보는 모든 것을 터미널에서.

vitals를 입력하면 Mac을 쓰고 있는 앱, 프로젝트마다 잡고 있는 포트와 개발 서버, 코딩 에이전트, 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설치

앱에 포함되어 있고, Homebrew로도 설치할 수 있습니다.

명령어는 Vitals 안에 들어 있습니다. 설정 → 연동에서 ‘AI 어시스턴트가 Vitals에 물어보도록 허용’을 켜면 Vitals가 vitals를 매뉴얼 페이지, 탭 자동 완성과 함께 PATH에 넣습니다. 또는 Homebrew 한 줄로 앱과 명령어를 함께 설치하세요.

  • /opt/homebrew/bin 또는 /usr/local/bin에 연결
  • 매뉴얼 페이지: man vitals
  • zsh, bash, fish용 탭 자동 완성
  • Homebrew 한 줄로 앱과 명령어 설치
~ 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.
앱과 명령어를 함께 또는 설정 → 연동에서
02읽는 중

윈도우에 보이는 것을 표로.

vitals status는 수치마다 막대와 함께 한 줄로 보여 줍니다. vitals top은 메모리, CPU, 전력, 디스크, 네트워크를 가장 많이 쓰는 앱을 지금 또는 최대 1년 동안을 기준으로 나열합니다. 포트, 프로젝트, 컨테이너, 에이전트, AI 한도마다 명령어가 있고, 모든 답에는 측정 시각이 표시됩니다.

  • 윈도우에서처럼 도우미까지 합산한 앱
  • 수치마다 앱과 같은 색
  • 네트워크에 열린 포트와 이 Mac에만 열린 포트
  • --watch로 2초마다 답을 새로 고침
~ vitals status
● CPU 27%
● Memory 52.6 GB of 64 GB
● GPU 18%
● Disk 412 GB free
● Battery 82%
Measured just now
수치마다 한 줄 앱과 같은 색으로
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로 아무도 쓰지 않는 개발 서버를 모두 중단
  • 앱은 ⌘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
중단하기 전에 판단부터 승인 없이는 아무것도 중단되지 않음
참고 자료

설치 방법과 모든 명령어

앱에서

설정 → 연동 → AI 어시스턴트가 Vitals에 물어보도록 허용. 그곳의 터미널 섹션에 명령어의 위치가 표시됩니다.

$ vitals version
Homebrew로

앱과 명령어를 함께, 매뉴얼 페이지와 zsh, bash, fish용 탭 자동 완성까지.

$ brew install --cask foredotstudio/tap/vitals
vitals help
명령어
명령알려 주는 것
vitals status [<part>…] CPU, 메모리, GPU, Neural Engine, 디스크, 네트워크, 배터리, 전력, 발열을 한 줄씩. 또는 지정한 항목만
vitals top [<by>] [<period>] [N] 메모리, CPU, 전력, 디스크, 네트워크를 가장 많이 쓰는 앱. 지금 또는 1시간, 하루, 일주일, 한 달, 분기, 반년, 1년 동안
vitals app <name> 앱 하나: 그 앱의 프로세스, 포트, 프로젝트, 컨테이너, 그리고 기간 동안 사용한 양
vitals find <name|pid|:port> 이름, PID, 포트로 프로세스 찾기
vitals ports [<port>…] 어느 포트에서 무엇이 수신 대기 중인지, 그 프로세스, 앱, 프로젝트와 함께, 이 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 배터리와 전력을 가장 많이 쓰는 앱
vitals history [<reading>…] [<period>] 기간 동안 Mac에 부하가 얼마나 걸렸는지, 그리고 언제였는지
vitals whats-wrong Vitals가 알아챈 것: CPU를 계속 쓰거나 메모리가 계속 늘어나는 앱, 메모리 압력, 발열, 남겨진 개발 서버
vitals can-quit [<app>] 무언가를 종료해도 안전한지, 이유와 함께 무엇이 같이 멈출지. 이름, --pid, --port, --project로 지정
vitals quit <app> 판단을 보여 주고 승인을 받은 뒤 앱을 종료. --force는 즉시 끝냄
vitals stop [<name>] 사용자의 프로세스를 같은 방식으로 중단. 이름, --pid, --port로 지정하며, --idle은 유휴 개발 서버를 모두 중단
vitals completions <shell> zsh, bash 또는 fish용 탭 자동 완성
vitals mcp AI 어시스턴트를 위해 표준 입력과 출력으로 MCP 통신
vitals help 모든 명령어와 옵션
옵션
옵션하는 일
--json 답을 JSON으로, 스크립트용
--csv 주요 목록을 CSV로, 스프레드시트용
--watch Control-C를 누를 때까지 2초마다 새로 고침. 다른 간격은 --every N
--no-color 일반 텍스트. 환경 변수 NO_COLOR도 같은 효과
왜 중요한가

명령줄, 전과 후

macOS가 터미널에 주는 것은 top과 ps입니다. 둘 다 프로세스를 1,000개 가까이 나열하지만, 각각이 어떤 앱이나 프로젝트의 것인지는 모르고, 어제에 대해서는 아무것도 알려 주지 않습니다. 포트 3000을 무엇이 잡고 있는지 찾으려면 lsof로 PID를 얻고, 그 PID가 무엇인지 알아내는 명령어를 또 실행해야 합니다.

코딩 에이전트도 터미널에서 일합니다. 무엇이 Mac을 느리게 하는지, 포트에 무엇이 있는지 알고 싶을 때, 에이전트는 같은 명령어를 실행하고 그 목록으로 추측합니다.

vitals는 대신 실행 중인 Vitals 앱에 묻습니다. 도우미까지 합산한 앱, 프로젝트와 그 포트, 에이전트와 그 에이전트가 시작한 것, AI 플랜과 남은 양, 최대 1년간의 기록을 읽기 쉬운 표나 스크립트가 파싱할 수 있는 JSON으로 받습니다. 명령어 자체는 아무것도 측정하지 않으므로 물어도 Mac에는 부담이 거의 없습니다.

사용 방법

Vitals에서 찾기

탭, 메뉴 막대 항목, 설정을 손이 가는 순서대로 정리했습니다.

  1. 01

    설치하기

    설정 → 연동에서 ‘AI 어시스턴트가 Vitals에 물어보도록 허용’을 켜면 Vitals가 명령어를 PATH에 연결합니다. 폴더에 암호가 필요하면 설치 버튼이 한 번만 묻습니다. Homebrew를 쓴다면 brew install --cask foredotstudio/tap/vitals로 앱과 명령어를 함께 설치합니다.

  2. 02

    묻기

    Mac 전체는 vitals status, 오늘 CPU를 가장 많이 쓴 것은 vitals top cpu day, 수신 대기 중인 포트는 vitals ports, 코딩 에이전트는 vitals agents, AI 플랜은 vitals limits. vitals help는 모든 명령어를 나열하고, man vitals는 각각을 설명합니다.

  3. 03

    스크립트로 쓰기

    어떤 명령어에든 --json을 붙여 jq로 파이프하거나, 스프레드시트용으로 --csv를 붙이세요. --watch는 Control-C를 누를 때까지 2초마다 답을 새로 고칩니다.

  4. 04

    필요 없는 것 중단하기

    vitals can-quit --port 3000은 그 포트를 무엇이 잡고 있는지, 중단해도 안전한지 알려 줍니다. vitals stop --port 3000은 승인 후에 중단하고, vitals stop --idle은 아무도 쓰지 않는 개발 서버를 모두 중단합니다.

비교

명령줄: 활성 상태 보기와 Vitals

전체 비교는 항목별로 나와 있습니다. 여기에는 명령줄에 관한 항목만 모았습니다.

활성 상태 보기 Vitals
터미널에서
활성 상태 보기top과 ps, 한 행에 프로세스 하나
Vitalsvitals, 한 행에 앱 하나, 도우미까지 합산
포트
활성 상태 보기lsof 후 PID 찾기
Vitalsvitals ports, 프로젝트와 누가 접근할 수 있는지까지
코딩 에이전트와 AI 플랜
활성 상태 보기없음
Vitalsvitals agents와 vitals limits
과거
활성 상태 보기없음
Vitalsvitals history와 vitals top, 최대 1년
스크립트용
활성 상태 보기파싱해야 하는 텍스트
Vitals모든 명령어에서 JSON과 CSV
무언가 중단하기
활성 상태 보기kill, 묻지 않음
Vitals먼저 판단, 그다음 승인

알아 둘 용어

수치의 의미를 활성 상태 보기 용어집에서 가져왔습니다.

문의

명령줄에 대해 구입 전에 자주 묻는 질문.

Vitals가 실행 중이어야 하나요?

네. 명령어는 실행 중인 앱에 묻고, 앱은 이미 수치와 기록을 보관하고 있으므로 물어도 Mac에는 부담이 거의 없습니다. Vitals가 실행 중이 아니거나 ‘AI 어시스턴트가 Vitals에 물어보도록 허용’이 꺼져 있으면, 명령어가 그 사실과 해야 할 일을 알려 줍니다.

Homebrew로 어떻게 설치하나요?

brew install --cask foredotstudio/tap/vitals를 실행하세요. 앱이 설치되고 vitals 명령어, 매뉴얼 페이지, zsh, bash, fish용 탭 자동 완성이 연결됩니다. Vitals는 스스로 업데이트하므로 brew upgrade는 Vitals를 건드리지 않습니다.

이미 Vitals가 있습니다. 명령어는 어떻게 받나요?

설정 → 연동에서 ‘AI 어시스턴트가 Vitals에 물어보도록 허용’을 켜세요. Vitals가 vitals를 PATH에 있는 /opt/homebrew/bin 또는 /usr/local/bin에 연결하고, 그곳의 터미널 섹션에 위치가 표시됩니다. 폴더에 암호가 필요하면 설치 버튼이 한 번만 암호를 묻습니다.

AI 에이전트도 쓸 수 있나요?

네. 셸을 쓸 수 있는 에이전트는 vitals를 실행해 답을 읽을 수 있고, 파이프에서는 아무것도 잘리지 않습니다. 다만 사람이 판단해야 하는 것은 중단할 수 없습니다. 물어볼 터미널이 없으면 --yes를 붙여도 거부됩니다.

MCP 서버와 무엇이 다른가요?

앱과의 연결도, 답도 같습니다. 명령어에는 quit와 stop이 더해지며, 터미널에서 사용자에게 묻습니다. MCP를 지원하는 어시스턴트는 대신 Vitals 자체 윈도우를 통해 묻고, vitals mcp가 바로 그 서버입니다.

무료 체험 기간에도 쓸 수 있나요?

네. 체험 기간에는 명령어를 포함해 Vitals의 모든 기능을 쓸 수 있습니다.

어떤 셸에서 탭 자동 완성을 쓸 수 있나요?

zsh, bash, fish이며, 앱 이름은 실행 중인 앱에서 자동 완성됩니다. zsh와 fish용은 Vitals가 명령어와 함께 설치합니다. bash는 .bashrc에 eval "$(vitals completions bash)"를 추가하세요. Homebrew는 세 가지를 모두 설치합니다.

더 읽어 보기

이 기능을 쓰는 가이드, 그리고 같은 용도로 많이 사는 앱과 Vitals의 비교.

Vitals의 다른 기능

모든 기능

출시 가격 기간 동안 Lifetime $15

이 가격으로 50개 남음. 이후 $39, 또는 1년 업데이트 $9. 1회 결제, 14일 환불.

Vitals 구입 $15