Vitals가 보는 모든 것을 터미널에서.
vitals를 입력하면 Mac을 쓰고 있는 앱, 프로젝트마다 잡고 있는 포트와 개발 서버, 코딩 에이전트, AI 플랜의 남은 양이 나옵니다. 읽기 쉬운 표, 스크립트가 파싱할 수 있는 JSON, 그리고 승인 없이는 아무것도 중단되지 않습니다.
수치는 시뮬레이션입니다. 웹 페이지는 Mac을 읽을 수 없고, 읽어서도 안 됩니다.
앱에 포함되어 있고, Homebrew로도 설치할 수 있습니다.
명령어는 Vitals 안에 들어 있습니다. 설정 → 연동에서 ‘AI 어시스턴트가 Vitals에 물어보도록 허용’을 켜면 Vitals가 vitals를 매뉴얼 페이지, 탭 자동 완성과 함께 PATH에 넣습니다. 또는 Homebrew 한 줄로 앱과 명령어를 함께 설치하세요.
/opt/homebrew/bin또는/usr/local/bin에 연결- 매뉴얼 페이지:
man vitals - zsh, bash, fish용 탭 자동 완성
- Homebrew 한 줄로 앱과 명령어 설치
윈도우에 보이는 것을 표로.
vitals status는 수치마다 막대와 함께 한 줄로 보여 줍니다. vitals top은 메모리, CPU, 전력, 디스크, 네트워크를 가장 많이 쓰는 앱을 지금 또는 최대 1년 동안을 기준으로 나열합니다. 포트, 프로젝트, 컨테이너, 에이전트, AI 한도마다 명령어가 있고, 모든 답에는 측정 시각이 표시됩니다.
- 윈도우에서처럼 도우미까지 합산한 앱
- 수치마다 앱과 같은 색
- 네트워크에 열린 포트와 이 Mac에만 열린 포트
--watch로 2초마다 답을 새로 고침
스크립트에는 JSON, 스프레드시트에는 CSV.
--json을 붙이면 어떤 답이든 스크립트가 읽을 수 있는 JSON이 되며, MCP 서버가 주는 답과 같습니다. --csv는 주요 목록을 스프레드시트용으로 출력합니다. 파이프에서는 아무것도 잘리지 않으므로 스크립트나 에이전트가 모든 내용을 읽습니다.
- 모든 명령어에서
--json - 주요 목록은
--csv - 파이프에서는 일반 텍스트, 잘림 없음
- Vitals가 응답하지 않으면 종료 코드 1
무언가를 중단하기 전에 묻습니다.
vitals can-quit는 무언가를 종료해도 안전한지, 그 이유와 함께 무엇이 같이 멈출지 알려 줍니다. vitals quit와 vitals stop은 먼저 그 판단을 보여 주고 승인을 기다립니다. 사람이 판단해야 하는 것은 터미널이 없으면 --yes를 붙여도 거부되므로, 스크립트나 에이전트가 마음대로 통과시킬 수 없습니다.
- ‘안전’, ‘먼저 확인’, ‘하지 않기’를 이유와 함께
stop --idle로 아무도 쓰지 않는 개발 서버를 모두 중단- 앱은 ⌘Q와 같은 방식으로 종료되므로 저장 여부를 물을 수 있음
- 모든 종료는 설정 → 연동에 기록됨
설치 방법과 모든 명령어
설정 → 연동 → AI 어시스턴트가 Vitals에 물어보도록 허용. 그곳의 터미널 섹션에 명령어의 위치가 표시됩니다.
$ vitals version 앱과 명령어를 함께, 매뉴얼 페이지와 zsh, bash, fish용 탭 자동 완성까지.
$ brew install --cask foredotstudio/tap/vitals | 명령 | 알려 주는 것 |
|---|---|
| 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에서 찾기
탭, 메뉴 막대 항목, 설정을 손이 가는 순서대로 정리했습니다.
- 01
설치하기
설정 → 연동에서 ‘AI 어시스턴트가 Vitals에 물어보도록 허용’을 켜면 Vitals가 명령어를 PATH에 연결합니다. 폴더에 암호가 필요하면 설치 버튼이 한 번만 묻습니다. Homebrew를 쓴다면
brew install --cask foredotstudio/tap/vitals로 앱과 명령어를 함께 설치합니다. - 02
묻기
Mac 전체는
vitals status, 오늘 CPU를 가장 많이 쓴 것은vitals top cpu day, 수신 대기 중인 포트는vitals ports, 코딩 에이전트는vitals agents, AI 플랜은vitals limits.vitals help는 모든 명령어를 나열하고,man vitals는 각각을 설명합니다. - 03
스크립트로 쓰기
어떤 명령어에든
--json을 붙여jq로 파이프하거나, 스프레드시트용으로--csv를 붙이세요.--watch는 Control-C를 누를 때까지 2초마다 답을 새로 고칩니다. - 04
필요 없는 것 중단하기
vitals can-quit --port 3000은 그 포트를 무엇이 잡고 있는지, 중단해도 안전한지 알려 줍니다.vitals stop --port 3000은 승인 후에 중단하고,vitals stop --idle은 아무도 쓰지 않는 개발 서버를 모두 중단합니다.
top과 ps, 한 행에 프로세스 하나vitals, 한 행에 앱 하나, 도우미까지 합산lsof 후 PID 찾기vitals ports, 프로젝트와 누가 접근할 수 있는지까지vitals agents와 vitals limitsvitals history와 vitals top, 최대 1년kill, 묻지 않음알아 둘 용어
수치의 의미를 활성 상태 보기 용어집에서 가져왔습니다.
문의
명령줄에 대해 구입 전에 자주 묻는 질문.
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의 비교.