2026년, AI 코딩 에이전트(Claude Code, Codex, OpenCode)가 개발자의 일상이 되었습니다. 하지만 여러 에이전트를 동시에 관리하고, 그들의 작업 상태를 모니터링하며, 효율적으로 협업하는 것은 여전히 큰 도전 과제입니다. cmux는 바로 이 문제를 해결하기 위해 탄생한, AI 코딩 에이전트 전용으로 설계된 네이티브 macOS 터미널입니다. Ghostty 기반의 GPU 가속 렌더링, 혁신적인 세로 탭 시스템, 스마트 알림 기능, 그리고 내장 브라우저까지 - 이 글에서 cmux의 모든 것을 심층 분석합니다.
1. cmux란 무엇인가? AI 코딩 시대의 새로운 표준 🤖
cmux는 2026년 2월, Lawrence Chen과 Austin Wang이 공개한 오픈소스 macOS 터미널입니다. 단순한 터미널 에뮬레이터가 아닌, AI 코딩 에이전트와의 협업을 최우선으로 설계된 차세대 개발 환경입니다.
기존의 터미널 멀티플렉서(tmux, screen)나 최근의 현대적 터미널(Ghostty, Warp, iTerm2)과 무엇이 다를까요? 가장 큰 차이점은 "에이전트 중심 설계"입니다. 기존 터미널들은 인간 사용자의 키보드 입력을 가정하고 설계되었다면, cmux는 AI 에이전트가 자율적으로 환경을 탐색하고, 조작하고, 사용자와 상호작용할 수 있는 인프라를 제공합니다.
기술적 기반
- Swift + AppKit: Electron/Tauri가 아닌 순수 네이티브 macOS 앱으로, 빠른 시작 시간과 낮은 메모리 사용량을 자랑합니다.
- libghostty: Ghostty의 GPU 가속 렌더링 엔진을 사용하여 부드러운 스크롤과 터미널 경험을 제공합니다.
- WebKit: 내장 브라우저는 macOS의 네이티브 WebKit 엔진을 사용합니다.
- Unix Domain Socket: 에이전트와의 통신은 초저지연 Unix 소켓을 통해 JSON 메시지로 이루어집니다.
"Give a million developers composable primitives and they'll collectively find the most efficient workflows faster than any product team could design top-down." – The Zen of cmux
2. 설치부터 실행까지: 5분 완성 가이드 ⚡
cmux는 현재 macOS 전용으로 제공되며, 두 가지 방법으로 설치할 수 있습니다.
방법 1: Homebrew (권장)
# Tap 추가 및 설치
brew tap manaflow-ai/cmux
brew install --cask cmux
# 업데이트
brew upgrade --cask cmux
방법 2: DMG 다운로드
공식 웹사이트(cmux.dev)에서 DMG 파일을 다운로드하여 Applications 폴더로 드래그하면 됩니다. Sparkle 자동 업데이트가 내장되어 있어 한 번만 설치하면 됩니다.
CLI 설정
cmux는 터미널 내에서 자동으로 사용 가능하지만, 외부 터미널에서도 사용하려면 심볼릭 링크를 생성해야 합니다:
sudo ln -sf "/Applications/cmux.app/Contents/Resources/bin/cmux" /usr/local/bin/cmux
# 테스트
cmux list-workspaces
cmux notify --title "테스트" --body "cmux가 준비되었습니다!"
처음 실행하면 보이는 것
- 왼쪽에 세로 탭 사이드바가 있는 터미널 창
- 초기 워크스페이스가 자동으로 생성됨
- Ghostty 기반의 GPU 가속 터미널
- 기존 Ghostty 설정(~/.config/ghostty/config)을 자동으로 읽어옴
3. 세로 탭의 혁신: Git 브랜치부터 알림까지 한눈에 📊
기존 터미널의 가장 큰 문제점 중 하나는 컨텍스트 손실입니다. 수십 개의 탭을 열어놓으면 어떤 탭이 어떤 프로젝트인지, 현재 Git 브랜치는 무엇인지, PR 상태는 어떤지 파악하기 어렵습니다.
cmux의 세로 탭 사이드바는 이 문제를 완전히 해결합니다. 각 탭은 다음 정보를 실시간으로 표시합니다:
Git 브랜치
현재 작업 중인 Git 브랜치 이름을 실시간으로 표시합니다. 브랜치 전환 시 자동으로 업데이트됩니다.
PR 상태
연결된 Pull Request의 번호와 상태(열림/닫힘/머지됨)를 아이콘으로 표시합니다.
작업 디렉토리
현재 작업 중인 디렉토리 경로를 표시하여 어떤 프로젝트인지 즉시 파악 가능합니다.
수신 포트
해당 세션에서 열린 네트워크 포트를 표시하여 개발 서버 상태를 확인할 수 있습니다.
최신 알림
가장 최근에 수신된 알림 텍스트를 미리보기로 표시합니다.
알림 링
읽지 않은 알림이 있을 때 탭에 파란색 링이 나타나 시각적으로 강조됩니다.
워크스페이스와 서피스
cmux는 Workspace(워크스페이스)와 Surface(서피스) 개념을 사용합니다:
- Workspace: 독립적인 작업 공간 (Cmd+N으로 생성)
- Surface: 워크스페이스 내의 탭 (Cmd+T로 생성)
- Pane: 서피스 내의 분할된 화면 (Cmd+D로 수평 분할, Cmd+Shift+D로 수직 분할)
이러한 계층 구조를 통해 복잡한 멀티 태스킹 환경도 체계적으로 관리할 수 있습니다.
핵심 포인트
cmux의 세로 탭은 단순한 탭 목록이 아닙니다. Git 상태, PR 정보, 포트, 알림까지 통합된 컨텍스트 대시보드입니다. 이를 통해 수십 개의 에이전트 세션도 한눈에 파악할 수 있습니다.
4. 스마트 알림 시스템: 에이전트가 나를 부를 때 🔔
Claude Code나 Codex를 사용하다 보면 이런 경험을 하셨을 것입니다: 에이전트가 입력을 기다리고 있는데, 우리는 다른 작업에 집중하다가 몇 분 뒤에야 그 사실을 알아차립니다. 기존 macOS 알림은 "Claude is waiting for your input"이라는 제목만 표시할 뿐, 어떤 컨텍스트에서 무엇을 기다리는지 알려주지 않습니다.
cmux의 알림 시스템은 이 문제를 근본적으로 해결합니다.
OSC 터미널 시퀀스 지원
cmux는 표준 OSC(Operating System Command) 터미널 이스케이프 시퀀스를 지원합니다:
- OSC 9: iTerm2 스타일 알림
- OSC 99: Kitty 터미널 알림
- OSC 777: 하이퍼링크 알림
시각적 알림: 파란색 링
알림이 도착하면 해당 패널 주위에 파란색 링이 나타나고, 사이드바의 탭이 강조 표시됩니다. 이는 해당 에이전트가 주의가 필요하다는 것을 즉시 시각적으로 전달합니다.
# CLI를 통한 알림 발송
cmux notify --title "테스트 완료" --body "모든 유닛 테스트가 통과했습니다"
# Claude Code hooks와 연동
# ~/.claude/hooks/notify.sh
cmux notify --title "Claude Code" --body "$1"
알림 패널
Cmd+I를 누르면 모든 대기 중인 알림을 한 곳에서 확인할 수 있는 알림 패널이 열립니다. Cmd+Shift+U를 누르면 가장 최근의 읽지 않은 알림으로 즉시 점프합니다.
5. 내장 브라우저: 터미널 안에서 완성되는 워크플로우 🌐
웹 개발을 할 때, 터미널에서 코드를 수정하고, 브라우저로 전환하여 결과를 확인하고, 다시 터미널로 돌아오는 과정은 반복적이고 비효율적입니다. cmux는 내장 브라우저를 제공하여 이 워크플로우를 완전히 통합합니다.
Agent Browser 기반 스크립팅 API
cmux의 브라우저는 Vercel Labs의 agent-browser에서 포트된 스크립팅 API를 제공합니다. 이를 통해 AI 에이전트는 다음 작업을 수행할 수 있습니다:
- 접근성 트리 스냅샷: 페이지의 DOM 구조를 텍스트 기반으로 추출
- 요소 참조 획득: 상호작용 가능한 요소에 고유 참조 ID 할당
- 요소 클릭: 특정 요소를 프로그래밍 방식으로 클릭
- 폼 채우기: 입력 필드에 텍스트 입력
- JavaScript 실행: 페이지 내 임의의 JS 코드 실행
- 콘솔 로그 읽기: 브라우저 콘솔 출력 획득
# 브라우저 CLI 명령어 예시
# 새 브라우저 패널 열기
cmux new-pane --type browser --url "http://localhost:3000"
# 페이지 스냅샷 (접근성 트리)
cmux browser snapshot
# 요소 클릭
cmux browser click --ref e14
# 텍스트 입력
cmux browser type --ref e10 --text "Hello World"
# JavaScript 실행
cmux browser evaluate --script "document.title"
# 페이지 로딩 대기
cmux browser wait-for-load
실전 예시: Claude Code가 직접 테스트하기
개발 서버를 띄운 후, Claude Code에게 다음과 같은 작업을 요청할 수 있습니다:
Claude Code는 cmux CLI를 통해 브라우저를 제어하고, 스냅샷을 통해 페이지 구조를 파악하고, 요소를 클릭하고, 폼을 채우고, 결과를 검증할 수 있습니다. 이 모든 것이 터미널 창 하나 안에서 이루어집니다.
6. CLI 자동화: Unix 소켓의 마법 🧙
cmux의 진정한 강력함은 CLI와 Unix 소켓 API에서 나옵니다. 이를 통해 AI 에이전트는 단순히 텍스트를 출력하는 것이 아니라, 터미널 환경 자체를 제어할 수 있습니다.
Unix Domain Socket 통신
cmux CLI는 JSON 형식의 메시지를 Unix 도메인 소켓(/tmp/cmux.sock)을 통해 앱에 전송합니다. 이는 프로세스 간 통신(IPC)의 가장 빠른 형태로, 에이전트와 GUI 간의 실시간 상호작용을 가능하게 합니다.
# 사용 가능한 모든 명령어 확인
cmux --help
# 주요 명령어 카테고리:
# 1. 워크스페이스 관리
cmux list-workspaces
cmux new-workspace --name "프로젝트 A"
cmux rename-workspace --workspace workspace:1 --name "새 이름"
# 2. 서피스/패널 관리
cmux new-surface
cmux new-split --direction right
cmux close-surface --surface surface:3
cmux trigger-flash --surface surface:2
# 3. 상호작용 명령어
cmux send --surface surface:1 --text "echo 'Hello'"
cmux send-key --surface surface:1 --key Return
# 4. 브라우저 제어
cmux browser navigate --url "https://example.com"
cmux browser snapshot
cmux browser click --ref e10
cmux browser evaluate --script "alert('test')"
# 5. 피드백 및 메타데이터
cmux notify --title "완료" --body "작업이 완료되었습니다"
cmux set-status --surface surface:1 --text "실행 중..."
cmux set-progress --surface surface:1 --percent 75
실전 예시: 병렬 테스트 실행
다음은 cmux CLI를 사용하여 여러 테스트를 병렬로 실행하고, 완료 후 자동으로 정리하는 예시입니다:
#!/bin/bash
# parallel-test.sh
# 3개의 새 패널 생성 (오른쪽으로 분할)
cmux new-split --direction right # surface:2
cmux new-split --direction right # surface:3
# 각 패널에서 다른 테스트 실행
cmux send --surface surface:1 --text "npm run test:unit"
cmux send-key --surface surface:1 --key Return
cmux send --surface surface:2 --text "npm run test:integration"
cmux send-key --surface surface:2 --key Return
cmux send --surface surface:3 --text "npm run test:e2e"
cmux send-key --surface surface:3 --key Return
# 완료 대기 (실제로는 더 정교한 방법 사용)
sleep 60
# 결과 확인
cmux read-screen --surface surface:1 > unit-results.txt
cmux read-screen --surface surface:2 > integration-results.txt
cmux read-screen --surface surface:3 > e2e-results.txt
# 패널 정리
cmux close-surface --surface surface:3
cmux close-surface --surface surface:2
# 알림
cmux notify --title "테스트 완료" --body "모든 테스트가 종료되었습니다"
7. 멀티 에이전트 오케스트레이션: 병렬 처리의 예술 🎭
cmux의 가장 강력한 사용 사례 중 하나는 여러 AI 에이전트 인스턴스를 동시에 실행하고 조율하는 것입니다. 이를 통해 복잡한 작업을 하위 작업으로 분할하여 병렬로 처리할 수 있습니다.
실전 시나리오: 코드 분석과 문서화
예를 들어, 대규모 코드베이스를 분석하고 문서화해야 한다고 가정해 봅시다:
- 메인 에이전트가 작업을 분석하고 하위 작업으로 분할합니다
- 서브 에이전트 1은 프로젝트 구조를 읽고 이해하는 작업을 담당합니다
- 서브 에이전트 2는 핵심 알고리즘을 분석하는 작업을 담당합니다
- 두 서브 에이전트가 병렬로 작업을 수행합니다
- 메인 에이전트가 결과를 수집하고 통합된 문서를 생성합니다
- 모든 패널이 자동으로 정리됩니다
# Claude Code에게 다음과 같이 요청할 수 있습니다:
"2개의 Claude 인스턴스를 각각 새 패널에 생성하세요.
하나는 프로젝트 구조를 읽고 이해하는 작업을,
다른 하나는 핵심 코드를 분석하는 작업을 맡게 하세요.
둘 다 완료되면 결과를 읽고 패널을 닫으세요."
Claude Code는 cmux CLI를 사용하여:
- 새 패널 생성 (surface:7, surface:8)
- 각 패널에서
claude명령어 실행 - 특정 작업 지시 전송
- 완료 후
cmux read-screen으로 결과 캡처 cmux close-surface으로 정리
8. cmux vs 경쟁 도구: 객관적 비교 분석 ⚖️
cmux는 기존 터미널 도구들과 어떻게 비교될까요? 객관적인 기능 비교표를 통해 살펴봅시다.
| 기능 | cmux | Ghostty | tmux | iTerm2 | Warp |
|---|---|---|---|---|---|
| 네이티브 macOS 앱 | ✅ Swift/AppKit | ✅ Zig | ❌ 터미널 내 실행 | ✅ Objective-C | ❌ Electron |
| 세로 탭 | ✅ (Git/PR/포트 표시) | ❌ | ❌ | ❌ | ❌ |
| AI 에이전트 알림 | ✅ (파란 링 + 사이드바) | ❌ | ❌ | ⚠️ 기본 알림만 | ⚠️ 제한적 |
| 내장 브라우저 | ✅ (스크립팅 API) | ❌ | ❌ | ❌ | ❌ |
| Unix 소켓 API | ✅ | ❌ | ⚠️ 제한적 | ❌ | ❌ |
| GPU 가속 | ✅ (libghostty) | ✅ | ❌ | ⚠️ 부분적 | ❌ |
| 설정 호환성 | ✅ Ghostty 설정 읽기 | ✅ | N/A | ✅ | ❌ |
| 오픈소스 | ✅ AGPL | ✅ MIT | ✅ BSD | ❌ | ❌ |
| 플랫폼 | macOS 전용 | 크로스플랫폼 | 유닉스 계열 | macOS 전용 | 크로스플랫폼 |
장단점 분석
✅ 장점
- AI 에이전트를 위한 최적화된 설계
- 네이티브 앱의 빠른 성능
- 혁신적인 세로 탭 시스템
- 강력한 CLI/socket API
- Ghostty와의 완벽한 호환성
- 완전한 오픈소스 (AGPL)
⚠️ 단점
- macOS 전용 (Linux/Windows 미지원)
- 상대적으로 새로운 도구 (생태계 부족)
- 세션 복원이 제한적 (프로세스 상태 복원 불가)
- 일부 사용자가 보고한 분할 패널 렌더링 문제
- AGPL 라이선스 (상업적 사용 시 주의 필요)
9. 커뮤니티 반응: 실제 사용자들의 생생한 후기 💬
cmux는 2026년 2월 출시 이후 Hacker News, Reddit, Product Hunt 등에서 개발자들의 큰 관심을 받았습니다. 실제 사용자들의 반응을 살펴봅시다.
긍정적 반응
비판적 반응
개발자의 응답
cmux 팀은 커뮤니티 피드백을 적극적으로 수용하고 있습니다. Discord 서버와 GitHub Issues를 통해 버그 리포트와 기능 요청을 받고 있으며, Nightly 빌드를 통해 빠른 업데이트를 제공하고 있습니다. Founder's Edition을 통해 후원자들에게는 우선적인 버그 수정과 새로운 기능(예: iOS 앱, 클라우드 VM, 음성 모드)의 조기 접근 권한을 제공합니다.
10. 고급 팁과 워크플로우: 전문가처럼 사용하기 🎯
키보드 단축키 마스터리
# 워크스페이스 관리
Cmd + N # 새 워크스페이스
Cmd + 1~8 # 워크스페이스 1~8로 이동
Cmd + 9 # 마지막 워크스페이스로 이동
Ctrl + Cmd + ] # 다음 워크스페이스
Ctrl + Cmd + [ # 이전 워크스페이스
Cmd + Shift + W # 워크스페이스 닫기
Cmd + Shift + R # 워크스페이스 이름 변경
Cmd + B # 사이드바 토글
# 서피스(탭) 관리
Cmd + T # 새 서피스
Cmd + Shift + ] # 다음 서피스
Cmd + Shift + [ # 이전 서피스
Ctrl + Tab # 다음 서피스
Ctrl + Shift + Tab # 이전 서피스
Ctrl + 1~8 # 서피스 1~8로 이동
Cmd + W # 서피스 닫기
# 패널 분할
Cmd + D # 오른쪽으로 분할
Cmd + Shift + D # 아래로 분할
Opt + Cmd + 방향키 # 방향으로 포커스 이동
Cmd + Shift + H # 포커스된 패널 플래시
# 브라우저
Cmd + Shift + L # 분할 화면에 브라우저 열기
Cmd + L # 주소 표시줄 포커스
Cmd + [ # 뒤로 가기
Cmd + ] # 앞으로 가기
Cmd + R # 새로고침
# 알림
Cmd + I # 알림 패널 표시
Cmd + Shift + U # 최신 읽지 않은 알림으로 이동
Claude Code Hooks 설정
Claude Code와의 완벽한 통합을 위해 hooks를 설정하세요:
# ~/.claude/hooks/notify.sh 생성
#!/bin/bash
# Claude Code 이벤트가 발생할 때마다 알림 전송
cmux notify --title "Claude Code" --body "$1"
# 필요에 따라 다른 cmux 명령어도 실행 가능
# cmux set-status --surface $(cmux current-surface) --text "$1"
cmux current-surface 명령어를 사용하면 현재 활성화된 서피스 ID를 얻을 수 있습니다. 이를 통해 동적으로 상태를 업데이트할 수 있습니다.
자동화 스크립트 예시
프로젝트 시작 시 자동으로 환경을 설정하는 스크립트:
#!/bin/bash
# setup-project.sh
PROJECT_NAME=$1
# 새 워크스페이스 생성
WORKSPACE_ID=$(cmux new-workspace --name "$PROJECT_NAME" | jq -r '.id')
# 개발 서버용 패널 (왼쪽)
cmux send --workspace $WORKSPACE_ID --text "cd ~/projects/$PROJECT_NAME && npm run dev"
cmux send-key --workspace $WORKSPACE_ID --key Return
# 테스트용 패널 (오른쪽 상단)
cmux new-split --workspace $WORKSPACE_ID --direction right
cmux send --workspace $WORKSPACE_ID --surface surface:2 --text "cd ~/projects/$PROJECT_NAME && npm test -- --watch"
cmux send-key --workspace $WORKSPACE_ID --surface surface:2 --key Return
# Claude Code 패널 (오른쪽 하단)
cmux new-split --workspace $WORKSPACE_ID --surface surface:2 --direction down
cmux send --workspace $WORKSPACE_ID --surface surface:3 --text "cd ~/projects/$PROJECT_NAME && claude"
cmux send-key --workspace $WORKSPACE_ID --surface surface:3 --key Return
# 브라우저 패널 (선택적)
cmux new-split --workspace $WORKSPACE_ID --direction right
cmux new-pane --workspace $WORKSPACE_ID --surface surface:4 --type browser --url "http://localhost:3000"
cmux notify --title "프로젝트 설정 완료" --body "$PROJECT_NAME 환경이 준비되었습니다"
11. The Zen of cmux: 철학과 미래 🔮
cmux는 단순한 도구를 넘어서는 철학을 가지고 있습니다. 공식 문서에 소개된 "The Zen of cmux"는 이 도구의 핵심 철학을 잘 표현합니다.
"cmux is not prescriptive about how developers hold their tools. It's a terminal and browser with a CLI, and the rest is up to you."
"cmux is a primitive, not a solution. It gives you a terminal, a browser, notifications, workspaces, splits, tabs, and a CLI to control all of it. cmux doesn't force you into an opinionated way to use coding agents. What you build with the primitives is yours."
"The best developers have always built their own tools. Nobody has figured out the best way to work with agents yet, and the teams building closed products definitely haven't either. The developers closest to their own codebases will figure it out first."
"Give a million developers composable primitives and they'll collectively find the most efficient workflows faster than any product team could design top-down."
미래 로드맵
cmux 팀은 Founder's Edition 후원자들에게 다음 기능들의 조기 접근을 제공하고 있습니다:
- cmux AI: 모든 워크스페이스, 탭, 패널에 대한 컨텍스트를 제공하는 AI 어시스턴트
- iOS 앱: 데스크톱과 동기화되는 모바일 터미널
- Cloud VMs: 클라우드에서 실행되는 cmux 인스턴스
- Voice Mode: 음성 명령을 통한 터미널 제어
결론
cmux는 AI 코딩 에이전트 시대의 새로운 표준을 제시합니다. 단순한 터미널이 아닌, 에이전트와 인간이 효율적으로 협업할 수 있는 오케스트레이션 플랫폼입니다.
세로 탭을 통한 컨텍스트 유지, 스마트 알림을 통한 효율적인 상호작용, 내장 브라우저를 통한 통합 워크플로우, 그리고 강력한 CLI API를 통한 무한한 확장성 - 이 모든 것이 cmux를 2026년 개발자에게 필수적인 도구로 만들고 있습니다.
macOS 사용자이고 Claude Code, Codex, 또는 다른 AI 코딩 에이전트를 사용하고 있다면, cmux를 시도해 보는 것을 강력히 권장합니다. 한 번 사용하면 다시는 예전의 터미널로 돌아갈 수 없을 것입니다.
brew tap manaflow-ai/cmux && brew install --cask cmux공식 문서: cmux.dev/docs
GitHub: github.com/manaflow-ai/cmux
Discord: discord.gg/cmux