abtop

AI Agent OrchestrationTUIRust

★ 3,537주당 +52조회 5

무엇인가

abtop은 실행 중인 AI 코딩 에이전트 세션을 한 화면에 모아 보여주는 터미널 UI다. htop·btop이 시스템 프로세스를 보여주는 자리에 에이전트 세션을 관찰 대상으로 놓는다. 데이터를 수집해 표시만 하며 에이전트를 실행하거나 제어하지 않는다.

어떻게 동작하나

세션은 로컬 프로세스와 파일 상태에서 발견한다. Claude Code 설정은 ~/.claude(Windows는 %USERPROFILE%\.claude)에서 읽고, OpenCode는 ~/.local/share/opencode/opencode.db SQLite 데이터베이스를 sqlite3 CLI로 조회한다. Windows에서는 sysinfo로 프로세스·CPU·메모리를, netstat -ano로 리스닝 포트를 수집한다. 화면에는 세션별 토큰 사용량, 컨텍스트 창 비율, 레이트 리밋, 자식 프로세스, 열린 포트가 패널로 나뉘어 표시된다.

무엇과 다른가

btop·htop은 OS 프로세스를 일반 지표로 보여주지만 abtop은 에이전트별 상태(토큰 수, 컨텍스트 창 %, 레이트 리밋)를 해석해 세션 단위로 묶는다. 제공자 대시보드와 달리 API 키나 인증 없이 로컬 상태만 읽는다. 같은 수집 계층을 라이브러리 크레이트로 노출해 App::tick_no_summaries()와 App::to_snapshot(interval_ms)로 TUI가 렌더링하는 상태를 JSON으로 직렬화할 수 있고, abtop-web-ui가 이 API의 참조 소비자다.

어떻게 쓰나

설치는 cargo install abtop 또는 GitHub Releases의 사전 빌드 바이너리다. 실행하면 TUI가 뜨고, Enter로 선택한 에이전트를 실행 중인 터미널로 이동한다(cmux, tmux, iTerm2 지원, macOS). --once로 한 번만 출력하고, --mouse로 마우스 캡처를 켜고, --theme 또는 실행 중 t 키로 12개 테마를 순환한다. 선택은 ~/.config/abtop/config.toml에 저장되며 language 미설정 시 LANG이 zh로 시작하면 중국어, 아니면 영어로 자동 선택된다.

전제와 한계

읽기 전용이며 API 키와 인증을 쓰지 않는다. 유일한 간접 네트워크 사용은 세션 요약을 만드는 claude --print 호출이다. TUI와 --once 출력은 도구 이름과 파일 경로만 보여주고 파일 내용·프롬프트 텍스트는 표시하지 않지만, JSON 스냅샷에는 요약·채팅 메시지·작업 디렉터리·도구 호출 미리보기 등 로컬 트랜스크립트에서 파생된 데이터가 담기므로 공유 로그나 네트워크에 노출하지 않아야 한다. App은 Send가 아니므로 한 스레드에 두고 직렬화한 JSON만 다른 곳으로 넘긴다. Windows에는 로드 애버리지가 없어 LOAD는 0으로 보고된다.

관련 논문 2

유사 도구