AI 터미널 세션이 실행되면 고양이가 돌아간다.
터미널에서 AI 세션(Claude, ChatGPT 등)이 실행되는 동안, 시스템 트레이(메뉴바)에 회전하는 고양이 애니메이션을 표시하는 데스크톱 앱. AI 터미널 세션의 토큰 출력 속도를 고양이 회전 속도로 표현한다.
사용자 터미널
│
▼
termcat PTY 래퍼 ──▶ AI CLI (claude / chatgpt / gemini ...)
│ │
│ ◀── 스트리밍 출력 ──┘
│
글자/초 측정
(슬라이딩 윈도우)
│
▼
회전 속도 결정 ──▶ 시스템 트레이 고양이 애니메이션
termcat claude처럼 래퍼 형태로 AI CLI를 실행node-pty로 PTY를 가로채 초당 출력 문자 수(chars/sec)를 측정- 슬라이딩 윈도우로 스무딩하여 회전 속도에 반영
- LLM이 토큰을 생성할수록 터미널 출력이 빨라지므로,
chars/sec ≈ 토큰 속도 - 어떤 AI CLI든 별도 API 연동 없이 동작
| 상태 | 고양이 |
|---|---|
| 세션 없음 | 정지 (idle) |
| 대기 중 (입력 기다리는 중) | 느리게 회전 |
| 토큰 생성 중 | 빠르게 회전 |
| 도구 실행 / 파일 쓰기 중 | 중간 속도 |
| 영역 | 기술 |
|---|---|
| 언어 | TypeScript |
| 프레임워크 | Electron |
| PTY 인터셉터 | node-pty |
| 상태 관리 | Zustand |
| 빌드 | Vite + electron-builder |
| UI | React (Electron renderer) |
| 스타일링 | vanilla-extract |
-
termcat <command>래퍼 CLI — PTY로 AI 세션 실행 및 출력 가로채기 - 슬라이딩 윈도우 기반
chars/sec측정 및 속도 단계 분류 - 세션 활성 시 트레이 아이콘 고양이 회전 애니메이션 (픽셀 아트 스프라이트)
- 토큰 속도에 따른 회전 속도 변화 (slow / mid / fast 3단계)
- 세션 종료 시 idle 상태로 복귀
- macOS 시스템 트레이(메뉴바) 통합
- 앱 자동 시작 (로그인 시)
- electron-builder로
.dmg패키지 빌드 및 배포 - 첫 실행 시 온보딩 — shell alias(
alias claude="termcat claude") 등록 안내 및 자동 적용
- 다중 세션 지원 —
termcat을 여러 번 실행하면 메뉴바에 고양이 여러 마리 표시, 각자 독립적인 속도로 회전 - 감지할 AI 프로세스 목록 직접 설정 (래퍼 없이
ps-list폴링 fallback) - 속도 단계 임계값 커스터마이즈
- 여러 고양이 색상 변경
- 트레이 클릭 시 세션 상태 요약 팝업 (현재 속도, 세션 지속 시간 등)
- 고양이 스킨 변경
- 고양이 외 다른 캐릭터 애니메이션
- 세션 히스토리 및 사용 통계
- AI CLI별 다른 애니메이션 (claude, chatgpt, gemini...)