
cmux 입문: AI 코딩 에이전트를 병렬로 실행하는 macOS 터미널
요약
AI 코딩 에이전트를 병렬로 실행할 때 발생하는 상태 확인의 어려움을 해결하기 위한 macOS 네이티브 터미널 'cmux'를 소개합니다. Ghostty 기반의 이 도구는 알림 시스템과 사이드바를 통해 에이전트의 입력 대기 상태를 즉각적으로 알려줍니다.
핵심 포인트
- AI 코딩 에이전트 병렬 운용 시 발생하는 감시 비용 문제 해결
- 에이전트 입력 대기 시 파란색 링 및 사이드바 알림 기능 제공
- Ghostty 기반의 macOS 네이티브 GUI 터미널 애플리케이션
- tmux와 달리 AI 에이전트 워크플로우에 특화된 기능 내장
서론
Claude Code나 Codex와 같은 AI 코딩 에이전트(AI Coding Agent)를 사용하다 보면, 다음과 같은 상황이 늘어납니다.
에이전트가 코드를 작성하는 동안, 우리는 그저 화면을 바라보고만 있습니다. **"기다리는 시간이 아깝다"**라고 느끼게 됩니다.
그래서 자연스럽게 떠오르는 생각이 바로 **"여러 에이전트를 동시에 실행하고 싶다"**라는 병렬 운용의 발상입니다.
하지만 막상 여러 개를 실행하면 새로운 고민이 생깁니다.
"어떤 에이전트가 지금 내 입력을 기다리고 있는지 모르겠다"
바로 이것입니다. 터미널을 3개나 4개씩 열어두면, 상태를 확인하기 위해 페인(Pane)을 왔다 갔다 하는 것만으로도 지쳐버립니다.
이 기사에서 소개하는 cmux는 바로 이러한 "병렬 운용에서의 간과"를 해결하기 위해 만들어진 도구입니다. AI 코딩 에이전트를 위한 **macOS 네이티브 터미널(macOS Native Terminal)**로, 여러 에이전트를 쾌적하게 병행하여 실행할 수 있습니다.
본 기사에서는 다음과 같은 흐름으로 cmux를 해설하겠습니다.
- cmux의 개요와 설계 사상
- 알림(Notification)・사이드바(Sidebar)・worktree 등의 주요 기능
cmux.json을 통한 커스터마이징- 많은 사람이 사용하고 있는 tmux와의 비교
cmux란 무엇인가
cmux는 **Manaflow (manaflow-ai)**가 개발하고 있는 오픈 소스 macOS 터미널 애플리케이션입니다.
Manaflow는 Austin Wang 씨와 Lawrence Chen 씨가 설립한 Y Combinator 출신 스타트업으로, "코딩 에이전트를 위한 오픈 소스 터미널을 만든다"는 목표를 내걸고 있습니다.
GitHub 리포지토리(https://github.com/manaflow-ai/cmux)에서 cmux는 다음과 같이 소개되어 있습니다.
Ghostty 기반의 macOS 터미널. AI 코딩 에이전트를 위한 세로 탭과 알림 기능 탑재
공개 이후, AI 에이전트를 병렬로 운용하는 개발자들 사이에서 주목을 받고 있습니다.
참고로, 이름 때문에 tmux를 연상하는 분들도 많겠지만, cmux는 터미널 다중화 도구(Multiplexer)가 아니라 독립적인 네이티브 GUI 터미널 앱입니다. tmux와 같은 "화면 분할 및 복수 세션 관리"의 사용 편의성을 바탕으로 하면서도, AI 에이전트 시대에 특화된 기능을 처음부터 내장하고 있다는 점이 특징입니다.
개발 계기는 저자 자신이 Claude Code와 Codex를 병렬로 구동했을 때의 실체험이라고 설명되어 있습니다. 여러 개의 스플릿 페인(Split Pane)에 걸쳐 에이전트를 구동하다 보니, 어떤 에이전트가 자신의 손길을 필요로 하는지 추적할 수 없게 되었다——그 과제를 해소하기 위해 cmux가 탄생했습니다.
왜 지금 cmux인가
병렬로 에이전트를 구동할 때 가장 큰 적은 기술적인 어려움 그 자체가 아니라 **"감시(Oversight) 비용"**입니다.
에이전트는 작업 도중에 빈번하게 인간에게 확인을 요청합니다.
- "이 파일을 변경해도 될까요?"
- "테스트가 실패했는데 어떻게 할까요?"
에이전트가 1개라면 대기 상태에 들어갔다는 것을 즉시 알 수 있습니다. 하지만 4개를 구동하고 있으면, 어딘가에서 누군가 멈춰 있어도 알아차리지 못합니다. 알아차렸을 때는 이미 다른 에이전트들이 몇 분 동안이나 할 일 없이 기다리고 있는 상황이 발생합니다.
cmux는 이 문제를 후술할 알림 시스템과 사이드바를 통해 정면으로 해결합니다.
에이전트가 입력 대기 상태가 되면 해당 페인에 **파란색 링(Blue Ring)**이 표시되고, 사이드바의 탭이 빛납니다. 또한 단축키 하나로 "가장 최신의 읽지 않은 알림"으로 점프할 수 있기 때문에, 여러 워크스페이스를 넘나들고 있더라도 손길을 필요로 하는 에이전트를 즉시 찾아낼 수 있습니다.
아키텍처: 굳이 네이티브로 만드는 이유
cmux의 가장 큰 설계 결정은 Electron이나 Tauri가 아니라, Swift와 AppKit을 이용한 네이티브 앱으로 만들어졌다는 점입니다.
| 항목 | 내용 |
|---|---|
| 언어·프레임워크 | Swift + AppKit (macOS 네이티브) |
| 터미널 렌더링 | libghostty (Ghostty의 렌더링 엔진) |
| 자동화 | socket API 및 CLI 내장 |
| 렌더링 | GPU 가속 지원 |
저자는 기존의 코딩 오케스트레이터 (Coding Orchestrator)를 몇 가지 시도해 보았으나, 그중 상당수가 Electron / Tauri 기반이라 성능이 우려되어 네이티브로 다시 만들었다고 밝혔습니다.
네이티브 앱 특유의 빠른 실행 속도와 낮은 메모리 소비는 다수의 에이전트 (Agent)를 동시에 실행하는 용도에서 큰 효과를 발휘합니다.
또한, cmux는 Ghostty 자체의 포크 (Fork)가 아니라, Ghostty의 렌더링 엔진인 libghostty를 사용하여 만들어졌습니다.
따라서 기존의 ~/.config/ghostty/config를 읽어와서 테마, 폰트, 컬러를 그대로 계승할 수 있습니다. 이미 Ghostty를 사용 중인 사용자라면 외관 설정을 다시 할 필요가 없습니다.
설치
설치 방법은 크게 2가지가 있습니다. 취향에 맞춰 선택하세요.
- A. 명령어로 설치… Homebrew로 한 줄이면 끝. 터미널 사용파라면 이것이 가장 빠릅니다.
- B. 화면 조작으로 설치 (DMG)… GUI로 다운로드 및 드래그. 명령어가 익숙하지 않아도 괜찮습니다.
A. 명령어로 설치 (Homebrew)
터미널에서 다음 두 줄을 실행하기만 하면 됩니다.
brew tap manaflow-ai/cmux
brew install --cask cmux
최신 커밋을 가장 먼저 테스트해보고 싶은 사람을 위해, 별도의 번들인 Nightly 빌드도 제공됩니다.
B. 화면 조작으로 설치 (DMG)
GitHub의 릴리스 (Release) 페이지에서 DMG를 다운로드하여 애플리케이션 (Applications) 폴더로 드래그하기만 하면 됩니다. 다음 4단계로 완료됩니다.
단계 1: 릴리스 페이지 열기
GitHub의 릴리스 페이지 (https://github.com/manaflow-ai/cmux/releases )를 열고, 가장 상단의 Latest가 붙은 최신 릴리스 (예: v0.64.13 )를 선택합니다.

단계 2: DMG 다운로드하기
릴리스 내의 Assets를 열고, cmux-macos.dmg를 다운로드합니다.

다운로드할 파일은 cmux-macos.dmg 단 하나뿐입니다. cmuxd-remote-*나 Source code 등은 필요하지 않습니다.

단계 3: Applications 폴더에 넣기
다운로드한 DMG를 더블 클릭하여 열고, cmux.app을 Applications 폴더로 드래그합니다.

단계 4: 업데이트는 자동
이후의 업데이트는 Sparkle을 통한 자동 업데이트로 받을 수 있습니다. 수동으로 DMG를 다시 넣을 필요가 없습니다.
실행하기
설치가 끝났다면 cmux를 실행합니다. 방법은 일반적인 macOS 앱과 동일합니다.
- 애플리케이션 (Applications) 폴더의 cmux를 더블 클릭
- 또는 Spotlight (
⌘Space)에서 "cmux"를 입력하여 실행
처음 실행할 때는 macOS가 개발자 확인 대화 상자를 띄울 수 있습니다. 이 경우 **"열기"**를 선택하면 실행할 수 있습니다.
실행하면 단축키 목록과 문서 링크를 정리한 웰컴 (Welcome) 화면이 나타납니다.

터미널에서 열고 싶다면 cmux에 부속된 CLI도 사용할 수 있습니다. 경로를 전달하기만 하면 해당 디렉토리를 워크스페이스 (Workspace)로 열 수 있습니다 (cmux가 실행 중이지 않으면 자동으로 실행됩니다).
cmux . # 현재 디렉토리를 워크스페이스로 cmux에서 열기
URL을 브라우저 창에서 열고 싶다면 cmux browser open <url>을 사용합니다.
퀵 스타트: 에이전트를 병렬로 실행하기
설치와 실행이 끝났다면, 바로 사용해 봅시다. 여기서는 **"에이전트를 병렬로 실행하기"**라는 cmux의 진면목을 최소한의 단계로 체험하는 흐름을 소개합니다.
단계 1. 워크스페이스(Workspace) 만들기
⌘N으로 새로운 워크스페이스를 엽니다. 이것이 "하나의 태스크(또는 한 대의 에이전트)"의 작업 공간이 됩니다.
단계 2. 에이전트 실행하기
열린 터미널에서 평소처럼 에이전트를 실행합니다. 예를 들어 Claude Code라면 다음과 같습니다.
claude
cmux는 일반적인 터미널이므로, 평소 사용하는 명령어와 CLI 도구가 그대로 작동합니다.
단계 3. 화면을 분할하여 작업 배치하기
페인(Pane)을 분할하면 에이전트 옆에 로그나 테스트용 셸(Shell)을 둘 수 있습니다.
⌘D… 오른쪽으로 분할⌘⇧D… 아래로 분할
여기에 더해 ⌘⇧L로 내장 브라우저를 분할 표시하면, 에이전트가 실행 중인 dev 서버를 바로 옆에서 확인할 수 있습니다.
단계 4. 에이전트 한 대 더 추가하기
⌘N으로 워크스페이스를 하나 더 만들고, 거기서도 다른 에이전트를 실행합니다. 이것만으로 2대 병렬 상태가 됩니다.
앞서 언급한 git worktree와 조합하면, 워크스페이스마다 별도의 브랜치(Branch)를 할당하여 충돌 없이 병행 작업을 진행할 수 있습니다.
단계 5. "대기 중인 에이전트" 찾기
병렬 운용에서 가장 중요한 것이 바로 이 단계입니다.
에이전트가 입력 대기 상태가 되면, **사이드바의 탭이 빛나고 페인에 파란색 링(Ring)**이 표시됩니다. ⌘⇧U를 누르면 최신 미독 알림이 있는 워크스페이스로 즉시 점프할 수 있습니다.
"어느 것이 내 손길을 기다리고 있는지" 찾아 헤맬 필요가 없어집니다.
보너스: Claude Code의 팀 운용
Claude Code의 teammate 모드를 사용한다면, 다음 명령어 하나로 실행할 수 있습니다.
cmux claude-teams
각 팀메이트가 사이드바의 메타 정보와 알림이 포함된 네이티브 스플릿(Native Split) 형태로 전개됩니다.
핵심이 되는 3가지 개념
cmux의 화면 구조는 3개의 계층으로 정리되어 있습니다. 이 용어들을 파악해 두면 설정이나 단축키를 이해하기 훨씬 쉬워집니다.
| 개념 | 역할 |
|---|---|
| Workspace (워크스페이스) | 최상위 단위. 레이아웃과 상태를 통합 관리함 |
| Surface (서피스) | 워크스페이스 내의 탭. 터미널도 브라우저도 될 수 있음 |
| Pane (페인) | 서피스를 분할한 개별 영역 |
이미지로 생각하면 다음과 같이 파악하는 것이 쉽습니다.
- 워크스페이스 = 프로젝트나 태스크의 묶음
- 서피스 = 그 안의 탭
- 페인 = 탭 내의 분할 화면
병렬 운용 시에는 에이전트 1대당 1 워크스페이스를 할당하는 방식이 사용하기 편리합니다.
알림 시스템: 놓침이 없게 만드는 메커니즘
cmux의 심장부라고 할 수 있는 것이 바로 알림 시스템입니다.
구조는 단순합니다. 터미널이 출력하는 이스케이프 시퀀스 (Escape Sequence, OSC 9 / 99 / 777)를 cmux가 감지하여 시각적인 피드백으로 변환합니다.
에이전트가 입력 대기 상태가 되면—
- 해당 페인 주변에 파란색 링이 표시됨
- 사이드바의 탭이 빛남
- 알림 패널 (
⌘I)에 목록으로 쌓임
그리고 ⌘⇧U (Cmd+Shift+U)를 누르면, 최신 미독 알림이 있는 워크스페이스로 즉시 점프할 수 있습니다. 여러 개의 스플릿이나 탭을 넘나들고 있더라도, "다음에 처리해야 할 에이전트"로 최단 거리 이동이 가능한 것입니다.
에이전트 측과의 연동에는 cmux가 제공하는 cmux notify라는 CLI를 사용합니다. 이를 Claude Code나 OpenCode 등의 **훅(Hook)**에 심어두면, 에이전트가 특정 상태가 된 타이밍에 알림을 보낼 수 있습니다.
사이드바: 상태를 한눈에 파악하기
세로로 나열된 사이드바 탭에는 각 워크스페이스의 메타 정보가 표시됩니다. 구체적으로는 다음과 같은 정보입니다.
- 현재의 git 브랜치 (git branch) - 연결된 **Pull Request (PR)**의 상태 및 번호
- 작업 디렉토리 (working directory)
- 리스닝 중인 포트 (port)
- 최신 알림 텍스트
에이전트별로 브랜치를 나누어 병렬 작업을 수행하는 경우, 이 사이드바를 보는 것만으로 "어떤 워크스페이스가 어떤 브랜치에 해당하며, 어떤 PR과 연결되어 있고, 현재 어떤 상태인지"를 한꺼번에 파악할 수 있습니다.
터미널을 하나씩 들여다보며 확인할 필요가 없다는 점이 큰 장점입니다.
git worktree와의 조합
병렬 운용에서 진가를 발휘하는 것이 바로 git의 worktree와의 조합입니다.
worktree는 동일한 리포지토리(repository)에서 여러 개의 작업 디렉토리를 분리하여, 브랜치마다 독립된 작업 공간을 가질 수 있는 git의 기능입니다.
cmux의 워크스페이스와 worktree를 1 대 1로 대응시키면 다음과 같은 구성을 만들 수 있습니다.
| 워크스페이스 | 브랜치 (worktree) |
|---|---|
| 워크스페이스 A | feature/login |
| ... | ... |
이와 같이, 브랜치별로 격리된 환경에서 서로 다른 에이전트를 동시에 실행할 수 있습니다.
각 worktree는 git의 히스토리를 공유하면서도 작업 디렉토리는 독립되어 있기 때문에, 에이전트끼리 파일을 점유하려고 충돌할 걱정이 없습니다.
Claude Code의 경우, --worktree 플래그와 조합하면 태스크마다 독립된 환경을 자동으로 준비하고, 여러 인스턴스를 각각 다른 피처 브랜치(feature branch)에서 병렬로 실행하는 등의 운용이 용이해집니다.
내장 브라우저: 에이전트에게 웹(Web) 조작 권한 부여
cmux에는 스크립트 작성이 가능한 API를 갖춘 내장 브라우저가 탑재되어 있습니다.
이는 agent-browser에서 이식된 기능으로, 에이전트가 웹 페이지에 대해 다음과 같은 조작을 수행할 수 있습니다.
- 어시스턴시 트리(accessibility tree)의 스냅샷(snapshot) 취득
- 요소 참조 (element ref) 취득
- 클릭 및 폼(form) 입력
- JavaScript 평가 (execution)
예를 들어, 터미널 옆에 브라우저 페인(pane)을 나란히 배치하고, 개발 서버를 띄운 상태에서 Claude Code가 직접 UI를 조작하고 확인하게 하는 방식으로 사용할 수 있습니다.
"코드를 작성한다 → 브라우저에서 동작을 확인한다"라는 루프를 에이전트 스스로 수행하게 할 수 있다는 점은 매우 강력합니다.
또한, Chrome, Firefox, Arc 등 20종 이상의 브라우저로부터 쿠키(Cookie), 히스토리, 세션을 가져오는 기능도 마련되어 있습니다.
SSH 워크스페이스와 원격 개발
원격 머신(remote machine)에서의 개발도 지원합니다.
cmux ssh user@remote
이 명령어로 원격용 워크스페이스를 생성하면 브라우저 페인이 원격 네트워크를 통해 라우팅되므로, 원격 서버의 localhost에 접속하여 동작을 확인할 수 있습니다.
이미지를 드래그 앤 드롭하면 자동으로 scp를 통해 전송되는 등의 세심한 배려도 포함되어 있습니다.
Claude Code Teams와의 연동
cmux는 Claude Code의 "teammate (팀메이트)" 모드를 네이티브로 지원합니다.
cmux claude-teams
이 명령어를 사용하면 tmux에 의존하지 않고 Claude Code의 팀메이트 모드를 실행할 수 있습니다. 각 팀메이트는 사이드바의 메타 정보와 알림을 동반한 네이티브 스플릿 (native split) 형태로 펼쳐집니다.
여러 에이전트가 협력하여 움직이는 워크플로우를 cmux의 화면 구조 위에서 그대로 다룰 수 있는 것입니다.
세션 복원
cmux를 종료하면 그 시점의 세션이 저장되며, 재시작 시 복원됩니다. 복원 대상은 다음과 같습니다.
- 윈도우, 워크스페이스, 페인의 레이아웃 (layout)
- 작업 디렉토리 (working directory)
- 터미널의 스크롤백 (scrollback) (최선 노력 기반)
- 브라우저의 URL 및 히스토리
지원되는 에이전트의 경우, 네이티브 세션 ID를 저장해 두면 훅 (hook)을 통해 에이전트의 세션 자체를 재개할 수 있습니다 (Claude Code, Codex, OpenCode 등 대상).
또한, 저장 시에는 기밀성이 높은 환경 변수는 제거되도록 배려되어 있습니다.
CLI · socket API · cmux.json
cmux는 단순한 GUI 앱에 머물지 않고, CLI와 socket API를 통한 자동화를 전제로 설계되었습니다. 워크스페이스 조작을 스크립트로 제어할 수 있으므로, 자신의 개발 흐름에 맞춘 메커니즘을 구축할 수 있습니다.
cmux.json으로 커스텀 명령 정의하기
프로젝트 고유의 명령은 cmux.json의 actions에 정의할 수 있습니다. 설정 파일은 두 곳에 둘 수 있습니다.
~/.config/cmux/cmux.json… 개인용 글로벌 설정.cmux/cmux.json(리포지토리 직하) … 프로젝트 공유용. 리포지토리에 커밋하면 팀원 모두가 동일한 액션을 사용할 수 있습니다.
예를 들어, AI 에이전트를 이용한 병렬 개발을 상정하여 "Dev 서버 기동", "테스트 watch 실행", "Claude Code 실행"을 등록하면 다음과 같습니다 (.cmux/cmux.json 예시).
{
// 액션 ID를 키로 하여, 명령이나 에이전트 실행을 정의한다
"actions": {
...
포인트를 정리하면 다음과 같습니다.
actions는 액션 ID를 키로 하는 맵입니다. 각 액션에type(command= 셸 명령,agent= 에이전트 실행 등), 표시 이름인title/subtitle,shortcut(키 바인딩),icon(emoji·image·symbol)을 설정합니다.command타입은command에 셸 문자열을,target에 열릴 위치 (예:newTabInCurrentPane)를 지정합니다.agent타입은agent에 실행할 에이전트 (claude,codex등)를 지정합니다.palette: true를 설정하면 커맨드 팔레트에서도 호출할 수 있습니다.ui.surfaceTabBar.buttons는 액션 ID를 나열하면 그대로 탭 바의 버튼이 됩니다.
설정 파일은 **JSONC 형식 (주석 가능)**으로 작성할 수 있으며, 변경 후에는 명령어로 다시 불러올 수 있습니다.
cmux reload-config # 실행 중인 앱으로 설정을 다시 불러온다
이를 통해 자주 사용하는 조작을 단축키, 탭 바, 커맨드 팔레트 중 어느 것을 통해서도 원액션(one-action)으로 실행할 수 있게 됩니다.
주요 키보드 단축키
| 조작 | 단축키 |
|---|---|
| 새로운 워크스페이스 | ⌘N |
| ... |
설계 사상: "솔루션"이 아닌 "프리미티브"
cmux의 문서에는 **"The Zen of cmux" (cmux의 선)**라는 설계 사상이 기록되어 있습니다. 그 핵심은 다음과 같은 생각입니다.
cmux는 "솔루션"이 아닌 "프리미티브 (primitive)"를 제공한다
즉 cmux는 "이렇게 사용하세요"라는 정해진 워크플로우를 강요하지 않습니다. 대신 다음과 같은 **조합 가능한 부품 (composable primitives)**을 제공합니다.
- 터미널
- 브라우저
- 알림
- 워크스페이스 · 분할 · 탭
- 제어 CLI
이 배경에는 다음과 같은 확신이 있습니다.
100만 명의 개발자에게 조합 가능한 프리미티브를 전달한다면, 어떤 프로덕트 팀이 탑다운(top-down) 방식으로 설계하는 것보다 더 빠르고 효율적인 워크플로우를 집단으로서 찾아낼 것이다.
AI 에이전트의 사용법을 아직 아무도 모르는 발전 단계의 영역이기 때문에, 최적의 워크플로우는 현장의 시행착오로부터 일어난다 —— 그 사상이 cmux의 기능 설계에 일관되게 나타나 있습니다.
라이선스와 Founder's Edition
cmux는 GPL-3.0-or-later 오픈 소스로 공개되어 있으며, 상용 라이선스도 별도로 마련되어 있습니다.
게다가, **「Founder's Edition」**라는 구독 서비스가 있습니다. 여기에서는 다음과 같은 혜택이 제공됩니다.
- 기능 요청 우선 대응
- cmux AI · iOS 앱 · 클라우드 VM · 보이스 모드와 같은 선행 기능에 대한 조기 액세스
오픈 소스로 자유롭게 사용하면서도 개발을 지원하고 싶은 사람들을 위한 선택지가 마련되어 있는 형태입니다.
tmux와의 비교
현재 Claude Code를 tmux (터미널 멀티플렉서 (Terminal Multiplexer)) 위에서 구동하고 있는 엔지니어는 많을 것이라 생각합니다. tmux로 세션을 분할하고, 페인 (Pane)마다 에이전트를 실행하는 것—이는 병렬 운용의 정석적인 스타일입니다.
그렇다면, cmux는 tmux와 무엇이 다를까요? 양측은 "화면 분할로 여러 에이전트를 다룬다"는 점에서는 비슷하지만, 사상과 특기 분야가 상당히 다릅니다.
| 관점 | tmux | cmux |
|---|---|---|
| 종류 | 터미널 멀티플렉서 (CLI) | 네이티브 GUI 터미널 앱 |
| ... |
tmux가 여전히 강력한 상황
tmux의 가장 큰 무기는 **detach / reattach를 통한 세션 영속화 (Session Persistence)**입니다.
tmux는 서버 프로세스가 세션을 유지하기 때문에, SSH를 접속 해제하거나 노트북을 닫더라도 서버 위의 세션과 에이전트는 계속 작동합니다. 나중에 다른 머신에서 다시 어태치 (Reattach)하여 작업을 재개할 수도 있습니다.
따라서 다음과 같은 케이스에서는 지금도 tmux가 유력합니다.
- 원격 서버에 SSH로 접속하여 에이전트를 장시간 계속 실행하고 싶을 때
- Linux 서버 상에서 완결 짓고 싶을 때 (cmux는 macOS 전용이기 때문)
cmux가 적합한 상황
반면 cmux는 다음 용도에 최적화되어 있습니다.
내 손안의 Mac에서 여러 에이전트를 병렬로 돌리면서, "어느 에이전트가 지금 나의 조작을 필요로 하는가"를 놓치지 않고 파악하고 싶을 때
알림 링, git/PR 메타 정보 사이드바, 내장 브라우저와 같은 "감시 (Oversight) 비용을 낮추는 장치"가 처음부터 갖춰져 있다는 점이, tmux를 직접 커스텀하는 것과의 큰 차이점입니다.
또한, cmux는 네이티브 스플릿 (Native Split)으로 Claude Code의 teammate 모드를 실행할 수 있으므로 (cmux claude-teams), Claude Code의 병렬 운용에 한해서는 tmux를 거치지 않고 완결할 수 있습니다.
그렇다고는 해도, cmux 역시 내부적으로는 세션 영속화를 과제로 인식하고 있습니다. 원격에서의 영속화가 필요하다면, cmux의 터미널 내에서 tmux를 병용하는 조합도 현실적입니다.
구분 결론
- 로컬 Mac에서 병렬 에이전트를 쾌적하게 감시하고 싶다면 $\rightarrow$ cmux
- 원격 · 크로스 플랫폼 · 세션 영속화가 필요하다면 $\rightarrow$ tmux
양측은 배타적이지 않으며, cmux 안에서 tmux를 사용할 수도 있습니다. 우선 평소의 tmux 운용을 cmux 위에 올려보는 것부터 시작해 보는 것도 좋을 것입니다.
요약
cmux는 다음 과제에 정면으로 대응하는 도구입니다.
여러 AI 코딩 에이전트를 병렬로 실행하고 싶지만, 어떤 에이전트가 조작을 필요로 하는지 알 수 없다
요점을 정리하면 다음과 같습니다.
- 네이티브 구현… Swift + AppKit 및 libghostty를 통한 고속 · 저메모리 macOS 터미널
- 알림 시스템… OSC 시퀀스를 감지하여 파란색 링과 사이드바로 입력 대기 상태를 시각화
- 3계층 구조… Workspace > Surface > Pane으로 병렬 세션을 정리
- git worktree와의 궁합… 브랜치별로 격리된 환경에서 에이전트를 병렬 실행
- 내장 브라우저 · SSH · Claude Code Teams… 에이전트의 작업을 다각도로 지원
- 프리미티브 지향 (Primitive-oriented)… 정해진 사용법을 강요하지 않고, 조합해서 사용할 수 있는 부품을 제공
AI 에이전트를 한 대씩 정성스럽게 다루는 단계에서, 여러 대를 동시에 돌려 개발 속도를 높이는 단계로—그 스텝업을 뒷받침하는 기반으로서 cmux는 유력한 선택지가 될 것입니다.
macOS에서 여러 에이전트를 병렬 운용하고 계신 분이라면, 한 번 시도해 볼 가치가 있다고 생각합니다.
참고 기사 및 데이터
AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기