본문으로 건너뛰기

© 2026 Molayo

GH Trending릴리즈2026. 06. 18. 21:23

graykode/abtop

요약

abtop은 Claude Code, Codex CLI, OpenCode와 같은 AI 코딩 에이전트의 상태를 실시간으로 모니터링할 수 있는 TUI 도구입니다. 토큰 사용량, 컨텍스트 윈도우 점유율, 속도 제한 및 오픈 포트 상태를 한눈에 파악할 수 있습니다.

핵심 포인트

  • Claude Code, Codex CLI, OpenCode 세션 통합 모니터링 지원
  • 토큰 사용량, 컨텍스트 윈도우 %, Rate Limits 실시간 확인 가능
  • 고아 포트(Orphan port) 탐지 및 프로세스 상태 관리 기능 제공
  • macOS, Linux, Windows를 지원하는 읽기 전용(Read-only) 도구
  • tmux와 연동하여 에이전트 실행 창으로 즉시 전환 가능

btop과 유사하지만, AI 코딩 에이전트(AI coding agents)를 위한 도구입니다.

Claude Code, Codex CLI, OpenCode의 모든 세션을 한눈에 확인하세요 — 토큰 사용량 (token usage), 컨텍스트 윈도우 (context window) %, 속도 제한 (rate limits), 자식 프로세스 (child processes), 오픈 포트 (open ports) 등을 지원합니다. Claude Code, Codex CLI, OpenCode 세션은 로컬 프로세스/파일 상태로부터 탐지되므로, macOS, Linux, Windows 전반에서 여러 활성 프로필을 지원합니다.

  • 여러 프로젝트에서 3개 이상의 에이전트를 실행 중인가요? 한 화면에서 모두 확인하세요.
  • 속도 제한 (rate limits)에 걸리고 있나요? 할당량 (quota)을 실시간으로 확인하세요.
  • 에이전트가 서버를 생성하고 종료하는 것을 잊었나요? 고아 포트 (Orphan port) 탐지 기능을 제공합니다.
  • 컨텍스트 윈도우 (context window)가 가득 차고 있나요? 세션별 % 바와 경고를 제공합니다.

모두 읽기 전용 (read-only)입니다. API 키가 필요 없습니다. 인증 (auth)도 필요 없습니다.

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/graykode/abtop/releases/latest/download/abtop-installer.sh | sh

cargo install abtop

네이티브 지원 — WSL이 필요하지 않습니다. 프로세스 정보에는 sysinfo를 사용하고, 리스닝 포트 (listening ports)에는 netstat -ano를 사용합니다.

powershell -c "irm https://github.com/graykode/abtop/releases/latest/download/abtop-installer.ps1 | iex"

또는 PATH에 Git이 설정된 모든 터미널에서 cargo install abtop을 실행하세요. Claude Code 설정은 %USERPROFILE%\.claude에서 자동으로 확인됩니다.

모든 플랫폼을 위한 사전 빌드된 바이너리 (Pre-built binaries)는 GitHub Releases 페이지에서 사용할 수 있습니다.

abtop # TUI 실행
abtop --once # 스냅샷을 출력하고 종료
abtop --json # 하나의 JSON 스냅샷을 출력하고 종료 (스크립트/도구용)
...

권장 터미널 크기: 120x40 이상. 최소 80x24 — 크기가 작아지면 패널이 자연스럽게 숨겨집니다.

abtop은 단독으로 작동하지만, tmux 내부에서 실행하면 세션 점프 (session jumping) 기능을 사용할 수 있습니다 — Enter를 눌러 해당 에이전트가 실행 중인 창 (pane)으로 직접 전환하세요.

tmux new -s work
# pane 0: abtop
# pane 1: claude (project A)
...
기능Claude CodeCodex CLIOpenCode
세션 탐지 (Session Discovery)
...

OpenCode 지원은 ~/.local/share/opencode/opencode.db에 있는 로컬 SQLite 데이터베이스를 읽으며, PATHsqlite3가 설치되어 있어야 합니다.

4가지 색약 친화적 (colorblind-friendly) 옵션(high-contrast, protanopia, deuteranopia, tritanopia)을 포함하여 12개의 내장 테마가 제공됩니다. 실행 중에는 t를 눌러 순환하거나, --theme <name> 옵션으로 실행할 수 있습니다. 선택한 설정은 ~/.config/abtop/config.toml에 저장됩니다.

btop (기본값)draculacatppuccin
tokyo-nightgruvboxnord

색약 친화적 (Colorblind-friendly) 테마:

high-contrastprotanopia
deuteranopiatritanopia

밝은 터미널을 위한 라이트 테마 (밝은 터미널용: light — Solarized cream, white — GitHub 스타일의 순수 흰색):

lightwhite

~/.config/abtop/config.toml은 다음을 지원합니다:

theme = "btop"
# TUI에서 특정 에이전트 CLI를 숨깁니다 (대소문자 구분 안 함).
# 하나의 에이전트만 사용하며 더 깔끔한 화면을 원하는 경우 유용합니다.
...
코드 (Code)언어 (Language)
en영어 (English, 기본값)
zh중국어 간체 (Simplified Chinese)

language가 설정되지 않은 경우, abtop은 LANG에서 자동으로 감지합니다. zh로 시작하는 모든 값은 중국어 간체로 전환되며, 그 외에는 영어로 설정됩니다.

키 (Key)동작 (Action)
/ 또는 k /j세션 선택 (Select session)
Enter세션 터미널로 이동 (tmux 전용)
x선택된 세션 종료 (Kill selected session)
X모든 고아 포트 종료 (Kill all orphan ports)
t테마 순환 (Cycle theme)
15패널 가시성 토글 (Toggle panel visibility)
Esc설정 페이지 열기/닫기 (Open/close config page)
q종료 (Quit)
r강제 새로고침 (Force refresh)

abtop은 라이브러리 크레이트 (library crate)이기도 하므로, 로컬 도구들이 프로세스 내부에서 데이터 수집 레이어를 재사용할 수 있습니다. 재스캔이나 서브프로세스 생성 없이 TUI가 렌더링하는 것과 동일한 상태를 직렬화할 수 있습니다.

abtop --json # 스크립트용 일회성 JSON 스냅샷

장시간 실행되는 소비자(consumer)를 위해, App을 빌드하고 App::tick_no_summaries()로 새로고침한 뒤(이 함수는 claude --print를 실행하지 않으므로 Claude 할당량(quota)을 소모하지 않습니다), App::to_snapshot(interval_ms)를 호출하여 JSON 직렬화가 가능한 [Snapshot]을 얻을 수 있습니다.

use abtop::app::App;
use abtop::{config, theme::Theme};
let cfg = config::load_config();
...

AppSend가 아니므로 (collector들을 소유함), 하나의 스레드에 유지하고 직렬화된 JSON을 다른 곳으로 전달해야 합니다. abtop-web-ui는 이 API를 기반으로 구축된 로컬 우선 (local-first) 웹 대시보드로서, 이를 참조하여 사용하는 소비자입니다.

abtop은 로컬 파일과 로컬 프로세스/열린 파일 메타데이터(metadata)만 읽습니다. API 키나 인증(auth)은 필요하지 않습니다. TUI 및 --once 출력에서는 도구 이름과 파일 경로가 표시되지만, 파일 내용과 프롬프트 텍스트는 절대 표시되지 않습니다. 세션 요약은 claude --print를 통해 생성되며, 이는 자체적으로 API 호출을 수행합니다. 이것이 유일한 간접적인 네트워크 사용입니다.

JSON 스냅샷(snapshot)에는 summary, chat_messages, 작업 디렉토리, 설정 루트(config roots), 도구 호출 미리보기(tool-call previews), 자식 프로세스 명령, 토큰 수(token counts), 포트 메타데이터를 포함한 더 풍부한 로컬 대시보드 데이터가 포함됩니다. 채팅 텍스트는 collector에 의해 제한 및 편집(redacted)되지만, 여전히 로컬 기록(transcripts)에서 파생되므로 민감한 프로젝트 컨텍스트를 포함할 수 있습니다. JSON 스냅샷을 로컬/개인 데이터로 취급하고, 자체적인 액세스 제어(access controls) 없이 공유 로그에 기록하거나 네트워크에 노출하는 것을 피하십시오.

최근 abtop의 형태를 잡는 데 큰 도움을 준 @tbouquet에게 깊은 감사를 표합니다. 테마(themes), 설정 오버레이(config overlay) 및 패널 토글, 세션 필터링, 서브에이전트 트리 뷰(subagent tree view), 압축 감지 기능이 포함된 컨텍스트 윈도우 게이지(context window gauge)를 비롯하여, 지속적인 수정 및 보안 강화(security hardening)를 수행해 주었습니다.

MIT

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Trending Rust (weekly)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0