개요
cmux는 AI 코딩 에이전트를 위한 Ghostty 기반 macOS 네이티브 터미널. Swift + AppKit으로 Electron 대비 빠르고 가벼움. libghostty 엔진 사용 (GPU 가속 렌더링). 세로 탭에 Git 브랜치·PR 상태·포트·알림 한눈에 표시. 알림 링 시스템으로 AI 에이전트의 사용자 입력 대기를 즉시 파악. 내장 브라우저로 개발 서버 미리보기 + 자동화 API.
- GitHub: https://github.com/manaflow-ai/cmux
- 라이선스: AGPL-3.0
- 플랫폼: macOS 전용 (Swift + AppKit)
- 엔진: libghostty (Ghostty의 코어)
- 설치: Homebrew 또는 DMG
핵심 특징
1. Ghostty 엔진 (libghostty)
cmux = libghostty + AI 코딩 에이전트 UX
장점:
✓ GPU 가속 렌더링 (Metal/OpenGL)
✓ 기존 Ghostty 설정(테마·폰트·색상) 그대로 사용
✓ 부드러운 터미널 출력
✓ Ghostty 품질의 VT 에뮬레이션
→ 관련: Ghostling & libghostty (같은 libghostty 활용)
2. 세로 탭 + Git 통합 ⭐
사이드바 세로 탭에 표시:
┌─────────────────┐
│ 🔵 feature/auth │ ← Git 브랜치
│ PR #42 ✅ │ ← PR 상태·번호
│ ~/project/api │ ← 작업 디렉토리
│ :3000 :5432 │ ← 수신 포트
│ "Waiting..." │ ← 최신 알림
├─────────────────┤
│ main │
│ ~/project/web │
│ :8080 │
└─────────────────┘
→ 여러 AI 에이전트를 워크스페이스별로 시각적 관리
3. 알림 링 시스템 ⭐
AI 에이전트가 사용자 입력을 기다릴 때:
→ 해당 패널 테두리에 파란색 링 표시
→ 탭도 강조 표시
→ 알림 패널에서 미확인 알림 통합 조회
→ 단축키로 최신 미확인 항목 즉시 이동
효과:
여러 AI 에이전트 병렬 실행 중
"어디서 내 입력을 기다리는지" 즉시 파악
→ Oh My Codex & 에이전트 스웜, oh-my-claudecode & Claude 멀티에이전트와 함께 사용 시 시너지
4. 내장 브라우저
터미널 옆에 웹뷰 분할 표시:
┌──────────┬──────────┐
│ Terminal │ Browser │
│ $ npm │ localhost│
│ start │ :3000 │
└──────────┴──────────┘
agent-browser API:
✓ 요소 클릭
✓ 폼 입력
✓ JS 실행
✓ 접근성 트리 스냅샷
→ Claude Code/OpenCode가 직접 개발 서버와 상호작용
→ [[Claude 스크린샷 루프 (3D 작업)]] 패턴 지원
5. CLI & 소켓 API
# 워크스페이스 생성
cmux workspace create "auth-feature"
# 탭 분할
cmux split --direction vertical
# 키 입력 전송
cmux send-keys "npm test"
# URL 열기 (내장 브라우저)
cmux open "http://localhost:3000"
→ 완전한 스크립트 자동화
→ AI 에이전트가 cmux를 프로그래밍 가능6. 세션 복원
앱 재시작 시 자동 복원:
✓ 창·워크스페이스 레이아웃
✓ 탭 구성
✓ 스크롤백 히스토리
✓ 브라우저 히스토리
vs 다른 터미널 (AI 에이전트 관점)
| 항목 | cmux ⭐ | Warp | iTerm2 | Ghostty |
|---|---|---|---|---|
| AI 에이전트 설계 | ✅ 처음부터 | △ AI 자동완성 | ❌ | ❌ |
| 알림 링 | ✅ | ❌ | ❌ | ❌ |
| 내장 브라우저 | ✅ | ❌ | ❌ | ❌ |
| Git 통합 탭 | ✅ | △ | ❌ | ❌ |
| CLI API | ✅ | ❌ | ✅ (AppleScript) | ❌ |
| libghostty | ✅ | ❌ | ❌ | ✅ (본체) |
| 렌더링 | GPU (Metal) | GPU | Metal | GPU |
| 기반 | Swift+AppKit | Rust | Obj-C | Zig |
| 무게 | 가벼움 | 무거움 | 중간 | 가벼움 |
→ cmux의 niche: “AI 에이전트 병렬 작업 + 시각적 관리 + 브라우저 통합"
"The Zen of cmux” 철학
1. 워크플로우 강요 ❌
→ 조합 가능한 기본 도구(primitive) 제공
2. 모듈형 구성요소:
- 터미널
- 브라우저
- 알림
- 탭·분할
- CLI
→ 자유롭게 조합
3. "개발자가 스스로 AI 협업 환경을 설계"
→ 플랫폼이지 제품이 아님
설치
# Homebrew
brew install cmux
# 또는 DMG 다운로드
# GitHub Releases에서
# 자동 업데이트: Sparkle 기반활용 시나리오
| 시나리오 | 활용 |
|---|---|
| Claude Code 멀티 에이전트 | 워크스페이스별 에이전트 + 알림 링 |
| 프론트엔드 개발 | 터미널 + 내장 브라우저 분할 |
| PR 리뷰 | Git 브랜치·PR 상태 세로 탭 |
| oh-my-claudecode 연동 | tmux 대신 cmux로 스웜 관리 |
| E2E 테스트 | agent-browser API로 자동화 |
| 페어 프로그래밍 | AI + 인간 워크스페이스 분리 |
단축키
| 단축키 | 기능 |
|---|---|
⌘+T | 새 탭 |
⌘+D | 수직 분할 |
⌘+Shift+D | 수평 분할 |
⌘+1~9 | 워크스페이스 전환 |
⌘+Shift+B | 내장 브라우저 토글 |
⌃+Tab | 탭 전환 |
⌘+Shift+N | 최신 미확인 알림으로 이동 |
의의
1. "AI 에이전트를 위해 설계된 터미널"
- [[Vibium (브라우저 자동화)]]: 브라우저를 에이전트에게
- cmux: 터미널+브라우저를 에이전트에게
2. libghostty의 두 번째 활용 사례
- [[Ghostling & libghostty]]: 최소 데모
- cmux: 프로덕션 제품 ⭐
3. 알림 링 = 멀티 에이전트의 필수
- 여러 AI가 병렬로 일할 때
- "누가 나를 기다리는가" 즉시 파악
4. tmux 대안
- tmux: 텍스트 기반 세션 관리
- cmux: GUI + Git + 브라우저 + 알림 통합
5. "The Zen of cmux" = UNIX 철학의 현대판
- 조합 가능한 기본 도구
- 개발자가 설계하는 환경