
AI 코딩 에이전트를 여러 개 띄워놓고 작업하는 개발자들이 늘어나고 있다. Claude Code, Codex, OpenCode 등을 병렬로 실행하면 생산성이 급격히 올라간다. 하지만 문제가 있다. 어느 에이전트가 입력을 기다리고 있는지, 어떤 탭에서 작업 중인지 추적하기 어렵다.
Manaflow AI가 만든 cmux는 이 문제를 해결하기 위해 설계된 macOS 전용 터미널이다. Ghostty 엔진 기반으로 빠르고, 수직 탭 사이드바와 알림 시스템을 갖췄다.
왜 cmux인가
기존 터미널의 문제점
AI 코딩 에이전트를 병렬로 실행할 때 발생하는 문제들:
- 알림 부족 - macOS 기본 알림은 “Claude is waiting for your input”만 표시, 컨텍스트 없음
- 탭 관리 - 탭이 많아지면 제목조차 읽을 수 없음
- 성능 - Electron/Tauri 기반 오케스트레이터는 무겁고 느림
- 워크플로우 강제 - GUI 오케스트레이터는 자신만의 방식을 강제
cmux의 접근
cmux는 “프리미티브(primitive)“를 제공한다. 해결책이 아니라 구성 요소다:
- 터미널
- 브라우저
- 알림
- 워크스페이스
- 분할
- 탭
- CLI
이것들을 어떻게 조합할지는 개발자에게 달렸다.
핵심 기능
알림 시스템
AI 에이전트가 입력을 기다리면:
- 파란 링 - 해당 pane에 파란색 테두리 표시
- 탭 하이라이트 - 사이드바에서 해당 탭이 빛남
- 알림 배지 - 모든 대기 중인 알림을 한 곳에서 확인
- Cmd+Shift+U - 가장 최근 읽지 않은 알림으로 이동
터미널 시퀀스(OSC 9/99/777)를 감지하고, cmux notify CLI를 통해 에이전트 훅과 연동할 수 있다.
수직 탭 사이드바
각 워크스페이스에서 다음 정보를 표시:
- Git 브랜치
- 연결된 PR 상태/번호
- 작업 디렉토리
- 리스닝 포트
- 최신 알림 텍스트
내장 브라우저
agent-browser에서 포팅한 스크립트 가능한 API:
- 접근성 트리 스냅샷
- 요소 참조 가져오기
- 클릭, 폼 채우기
- JS 실행
터미널 옆에 브라우저 pane을 분할하고, Claude Code가 개발 서버와 직접 상호작용하게 할 수 있다.
Ghostty 호환
기존 ~/.config/ghostty/config를 읽어 테마, 폰트, 색상을 그대로 사용한다. GPU 가속으로 부드러운 렌더링을 제공한다.
아키텍처
기술 스택
- Swift/AppKit - 네이티브 macOS 앱, Electron 아님
- libghostty - 터미널 렌더링 엔진
- Sparkle - 자동 업데이트
성능 특성
- 빠른 시작
- 낮은 메모리 사용
- GPU 가속 렌더링
스크립트 가능한 API
모든 것이 CLI와 소켓 API로 제어 가능:
# 워크스페이스 생성
cmux workspace create
# 탭 분할
cmux split right
cmux split down
# 키스트로크 전송
cmux send-keys "claude"
# 브라우저 열기
cmux browser open https://localhost:3000
# 알림 보내기
cmux notify "Agent needs input"
설치
DMG 다운로드
# 최신 릴리스 다운로드
curl -L -o cmux-macos.dmg https://github.com/manaflow-ai/cmux/releases/latest/download/cmux-macos.dmg
DMG를 열고 Applications 폴더로 드래그. Sparkle로 자동 업데이트됨.
Homebrew
brew tap manaflow-ai/cmux
brew install --cask cmux
# 나중에 업데이트
brew upgrade --cask cmux
Nightly 빌드
최신 main 커밋에서 자동 빌드. 안정 버전과 함께 실행 가능:
curl -L -o cmux-nightly.dmg https://github.com/manaflow-ai/cmux/releases/download/nightly/cmux-nightly-macos.dmg
단축키
워크스페이스
| 단축키 | 동작 |
|---|---|
| ⌘ N | 새 워크스페이스 |
| ⌘ 1–8 | 워크스페이스 1–8로 이동 |
| ⌘ 9 | 마지막 워크스페이스로 이동 |
| ⌃ ⌘ ] | 다음 워크스페이스 |
| ⌃ ⌘ [ | 이전 워크스페이스 |
| ⌘ ⇧ W | 워크스페이스 닫기 |
| ⌘ ⇧ R | 워크스페이스 이름 변경 |
| ⌘ B | 사이드바 토글 |
서피스 (탭)
| 단축키 | 동작 |
|---|---|
| ⌘ T | 새 서피스 |
| ⌘ ⇧ ] | 다음 서피스 |
| ⌘ ⇧ [ | 이전 서피스 |
| ⌃ Tab | 다음 서피스 |
| ⌃ ⇧ Tab | 이전 서피스 |
| ⌘ W | 서피스 닫기 |
Pane 분할
| 단축키 | 동작 |
|---|---|
| ⌘ D | 오른쪽으로 분할 |
| ⌘ ⇧ D | 아래로 분할 |
| ⌥ ⌘ ← → ↑ ↓ | 방향별 pane 포커스 |
| ⌘ ⇧ H | 포커스된 panel 깜빡임 |
알림
| 단축키 | 동작 |
|---|---|
| ⌘ I | 알림 패널 표시 |
| ⌘ ⇧ U | 최신 읽지 않음으로 이동 |
브라우저
| 단축키 | 동작 |
|---|---|
| ⌘ ⇧ L | 브라우저 분할로 열기 |
| ⌘ L | 주소창 포커스 |
| ⌘ [ | 뒤로 |
| ⌘ ] | 앞으로 |
| ⌘ R | 새로고침 |
| ⌥ ⌘ I | 개발자 도구 토글 |
The Zen of cmux
“cmux는 해결책이 아니라 프리미티브다. 당신이 그것으로 무엇을 만드는지는 당신의 것이다.”
cmux는 개발자에게 도구를 사용하는 방식을 강제하지 않는. 터미널과 브라우저, 알림, 워크스페이스, 분할, 탭, 그리고 이 모든 것을 제어하는 CLI를 제공할 뿐이다.
“백만 명의 개발자에게 조합 가능한 프리미티브를 주면, 어떤 제품 팀이 top-down으로 설계하는 것보다 더 빠르게 가장 효율적인 워크플로우를 찾을 것이다.”
마치며: AI 코딩을 위한 터미널의 진화
cmux는 AI 코딩 에이전트 시대에 맞춰 설계된 터미널이다.Ghostty의 성능을 기반으로, 알림 시스템과 수직 탭, 내장 브라우저를 더했다. 특히 흥미로운 점은 “프리미티브” 철학이다. 정해진 워크플로우를 강제하는 대신, 개발자가 자신만의 방식을 구축할 수 있는 구성 요소를 제공한다.
macOS 사용자라면, AI 코딩 에이전트를 병렬로 실행할 때 cmux를 시도해볼 만하다. 특히 Ghostty를 이미 사용 중이라면 설정을 그대로 가져오니 마이그레이션도 간단하다.
🔗 관련 정보
- GitHub: https://github.com/manaflow-ai/cmux
- 문서: https://cmux.dev/docs
- 블로그: https://cmux.dev/blog/zen-of-cmux
- Discord: https://discord.gg/xsgFEVrWCZ
- X/Twitter: https://x.com/manaflowai