wmux(Windows Terminal Multiplexer)는 인공지능 코딩 에이전트 실행에 최적화된 Windows 전용 네이티브 터미널 멀티플렉서이다. WSL(Windows Subsystem for Linux)이나 Cygwin 없이도 tmux 스타일의 분할 창, 세션 지속성, 내장 브라우저 자동화, MCP(Model Context Protocol) 서버 기능을 제공한다. ConPTY와 Electron을 기반으로 구축되었으며, Claude Code, Codex CLI, Gemini CLI 등의 AI 코딩 에이전트와 함께 사용하도록 설계되었다.[1][2]
| 개발자 | openwong2kim |
|---|---|
| 언어 | 영어, 한국어, 일본어, 중국어 |
| 종류 | 터미널 멀티플렉서 |
| 라이선스 | MIT |
| 웹사이트 | wmux |
배경
Unix 계열 운영 체제에서는 tmux나 GNU Screen 같은 터미널 멀티플렉서가 오래전부터 존재하여 개발자들이 하나의 터미널 창에서 여러 세션을 관리할 수 있었다. 그러나 Windows에는 이에 해당하는 네이티브 도구가 없었다. WSL(Windows Subsystem for Linux)을 통해 tmux를 실행하는 방법이 존재하지만, WSL 환경은 네이티브 Windows 프로세스와 완전히 통합되지 않으며 추가적인 설정 부담이 따른다.
2020년대 들어 대형 언어 모델(LLM) 기반 AI 코딩 에이전트(Claude Code, Codex CLI, Gemini CLI 등)가 급속히 보급되면서, Windows 환경에서 여러 AI 에이전트를 동시에 실행하고 서로 협력시키려는 수요가 생겨났다. wmux는 이 필요를 충족하기 위해 만들어진 도구로, 터미널 멀티플렉싱·브라우저 자동화·에이전트 간 통신을 단일 앱에서 제공한다.
개요
wmux는 흔히 "터미널을 위한 LSP"로 비유된다. 언어 서버 프로토콜이 편집기와 언어 분석 도구 사이의 표준 인터페이스를 제공하듯, wmux는 외부 AI 도구가 터미널 세션 위에서 워크플로 인텔리전스를 구축할 수 있는 중립 기반 플랫폼(neutral substrate)으로 기능한다.
핵심 설계 원칙은 다음과 같다.
- WSL 불필요: ConPTY 기반으로 Windows 커널과 직접 통신하므로 WSL, Cygwin, MSYS2 없이 동작한다.
- AI 퍼스트: MCP(Model Context Protocol) 서버가 내장되어 AI 에이전트가 터미널과 브라우저를 직접 제어한다.
- 멀티 에이전트: 동일한 wmux 인스턴스 안에서 여러 AI 에이전트가 독립적으로 동작하고 A2A(Agent-to-Agent) 프로토콜로 서로 메시지를 주고받는다.
- 세션 불변성: 앱 재시작·시스템 재부팅 후에도 터미널 세션과 스크롤백이 복원된다.
설치
wmux는 여러 방법으로 설치할 수 있으며, 설치 후 30초 안에 사용을 시작할 수 있다고 명시되어 있다.
| 방법 | 명령어 / 방법 |
|---|---|
| winget (권장) | winget install openwong2kim.wmux |
| Chocolatey | choco install wmux |
| 설치 파일 | wmux Setup.exe 다운로드 |
| PowerShell 원라이너 | iex |
PowerShell 원라이너 방식은 Python과 Visual Studio Build Tools가 없는 환경에서도 이를 자동으로 설치한다.
주요 기능
터미널 멀티플렉싱
wmux는 ConPTY 기반 네이티브 Windows 가상 터미널과 xterm.js + WebGL 하드웨어 가속 렌더링을 사용한다. Unicode 11 너비 테이블을 적용하여 CJK 문자 및 이모지의 커서 위치를 올바르게 처리하며, Claude Code나 Vim 같은 TUI 앱에서도 화면이 깨지지 않는다.
주요 터미널 기능으로는 수평·수직 창 분할(Ctrl+D / Ctrl+Shift+D), 워크스페이스별 여러 탭, Quake 스타일 플로팅 창(Ctrl+`), 999K 줄 스크롤백과 디스크 지속성, tmux 스타일 프리픽스 모드(Ctrl+B 후 단일 키 13종), 스마트 우클릭(선택 → 즉시 복사, 빈 영역 → 즉시 붙여넣기, 링크 → Open/Copy 메뉴), 스크롤 북마크(Ctrl+M 마크, Ctrl+Up/Down 이동), Vi 복사 모드(Ctrl+Shift+X), 정규식 검색(Ctrl+F), OSC 133 셸 통합(pwsh/bash 자동 주입)이 있다.
내장 브라우저 및 CDP 자동화
wmux는 Chrome DevTools Protocol(CDP)을 통해 제어되는 내장 브라우저 패널을 제공한다(Ctrl+Shift+L). 탐색 바, DevTools, 앞/뒤로 이동을 지원하며, Element Inspector를 통해 마우스 오버 시 요소를 하이라이트하고 클릭 시 LLM 친화적 컨텍스트를 복사할 수 있다.
CDP 자동화로 제공되는 작업은 클릭, 폼 입력, 텍스트 타이핑, 스크린샷 촬영, JavaScript 실행, 키 입력이다. React 제어 입력(controlled inputs)과 CJK(한국어·일본어·중국어) 텍스트도 올바르게 처리한다.
MCP 서버 자동 연동
wmux를 실행하면 MCP(Model Context Protocol) 서버가 ~/.claude.json에 자동으로 등록된다. Claude Code는 별도 설정 없이 wmux의 브라우저 및 터미널 기능을 사용할 수 있다.
| 카테고리 | MCP 도구 | 설명 |
|---|---|---|
| 브라우저 제어 | browser_open |
브라우저 패널 열기 |
browser_navigate |
URL 이동 | |
browser_screenshot |
스크린샷 촬영 | |
browser_snapshot |
페이지 구조 읽기 | |
browser_click |
요소 클릭 | |
browser_fill / browser_type |
폼 입력 | |
browser_evaluate |
JavaScript 실행 | |
browser_press_key |
키 입력 | |
| 터미널 제어 | terminal_read |
터미널 내용 읽기 |
terminal_read_events |
OSC 133 기반 의미적 명령 읽기 | |
terminal_send |
명령 전송 | |
| 워크스페이스 관리 | workspace_list |
워크스페이스 목록 |
surface_list |
서피스 목록 | |
pane_list |
창 목록 | |
| A2A 통신 | a2a_send / a2a_broadcast |
에이전트 간 메시지 송수신 |
a2a_whoami |
자신의 에이전트 ID 확인 | |
a2a_task_send / a2a_task_query / a2a_task_cancel |
태스크 위임 및 추적 | |
| 컴퍼니 모드 | company_a2a_send |
에이전트 메시지 전송 |
company_a2a_inbox |
수신함 조회 | |
company_a2a_status |
상태 조회 |
각 브라우저 도구는 surfaceId 파라미터를 받아, 여러 Claude Code 세션이 각자 독립된 브라우저를 제어할 수 있다.
멀티 에이전트 워크플로
wmux의 A2A(Agent-to-Agent) 프로토콜은 동일한 wmux 인스턴스 안에서 실행 중인 AI 에이전트들이 서로 메시지를 주고받고 태스크를 위임할 수 있도록 한다. 예를 들어 다음과 같은 분업이 가능하다.
- 왼쪽 창: Claude Code가 백엔드 API를 작성
- 오른쪽 창: Codex CLI가 프론트엔드 UI를 구축
- 아래 창: Gemini CLI가 테스트를 실행하고 결과를 위쪽 에이전트에 A2A로 보고
컴퍼니 모드(Company Mode)는 이보다 구조화된 멀티 에이전트 조율 방식으로, 중앙 조율 에이전트가 작업을 하위 에이전트에게 분배하고 상태를 추적한다.
세션 지속성
wmux는 앱 재시작 및 시스템 재부팅 후에도 터미널 세션을 복원한다. 이를 위해 데몬(daemon) 프로세스가 백그라운드에서 PTY 프로세스를 유지한다.
- 앱 재시작: 데몬이 PTY 프로세스를 살아 있게 유지하므로 wmux를 닫았다가 다시 열어도 세션이 즉시 재연결된다.
- 재부팅: 스크롤백 버퍼와 작업 디렉터리가 저장되어 재부팅 후 복구된다. wmux는 Windows 로그인 시 자동 시작된다.
- 자동 업데이트: GitHub Releases를 통해 업데이트를 자동으로 확인하며, 설정에서 켜고 끌 수 있다.
알림 및 에이전트 감지
wmux는 출력 처리량(throughput) 기반 활동 감지 방식으로 AI 에이전트의 작업 완료 여부를 판단한다. 패턴 매칭 방식이 아니므로 어떤 에이전트와도 호환된다. 자동으로 감지하는 에이전트는 Claude Code, Cursor, Aider, Codex CLI, Gemini CLI, OpenCode, GitHub Copilot CLI이다.
이벤트 발생 시 동작은 다음과 같다.
- 작업 완료 → 데스크톱 알림(Windows 토스트) + 작업 표시줄 플래시
- 비정상 종료 → 즉각 경고
- 위험 명령(
git push --force,rm -rf,DROP TABLE등) → 위험 동작 경고
보안
wmux는 AI 에이전트가 시스템 자원에 접근하는 만큼 여러 보안 계층을 제공한다.
| 보안 항목 | 내용 |
|---|---|
| IPC 인증 | 모든 Named Pipe에 토큰 인증 적용 |
| SSRF 방지 | 사설 IP 대역, file://, javascript: 스킴 차단 |
| 명령 인젝션 방지 | PTY 입력 살균(sanitization) |
| CDP 포트 보안 | 랜덤화된 포트 사용 (고정 디버그 포트 없음) |
| 메모리 감시 | 750MB에서 죽은 세션 정리, 1GB에서 신규 세션 차단 |
| Electron Fuses | RunAsNode 비활성화, 쿠키 암호화 활성화 |
사용자 인터페이스
wmux의 UI는 다음 요소로 구성된다.
- 워크스페이스 사이드바: 드래그 앤 드롭 재정렬, Ctrl+1~9 빠른 전환
- 멀티뷰(Multiview): Ctrl+클릭으로 여러 워크스페이스를 동시에 표시
- 레이아웃 템플릿: 현재 창 배치를 저장하고 커맨드 팔레트에서 복원
- 커맨드 팔레트: Ctrl+K로 모든 기능에 빠르게 접근
- 알림 패널: Ctrl+I로 에이전트 활동 이력 확인
- 설정 패널: Ctrl+, 로 자동 업데이트, 워크스페이스 초기화 등 설정
다국어 지원 및 테마
영어, 한국어, 일본어, 중국어를 지원한다. 기본 제공 테마는 Catppuccin Mocha, Monochrome, Sandstone 세 가지이다.
키보드 단축키
| 단축키 | 동작 |
|---|---|
| Ctrl+D | 오른쪽으로 창 분할 |
| Ctrl+Shift+D | 아래로 창 분할 |
| Ctrl+T | 새 탭 |
| Ctrl+W | 탭 닫기 |
| Ctrl+N | 새 워크스페이스 |
| Ctrl+1~9 | 워크스페이스 전환 |
| Ctrl+클릭 | 멀티뷰에 추가 |
| Ctrl+Shift+G | 멀티뷰 종료 |
| Ctrl+Shift+L | 브라우저 패널 열기 |
| Ctrl+B 후 키 | tmux 스타일 프리픽스 모드 (13개 동작) |
| Ctrl+Shift+B | 사이드바 토글 |
| Ctrl+` | 플로팅 창 토글 (Quake 스타일) |
| Ctrl+K | 커맨드 팔레트 |
| Ctrl+I | 알림 패널 |
| Ctrl+, | 설정 |
| Ctrl+F | 터미널 검색 (정규식 토글 포함) |
| Ctrl+M | 스크롤 북마크 추가 |
| Ctrl+↑ / ↓ | 이전/다음 북마크로 이동 |
| Ctrl+Shift+X | Vi 복사 모드 |
| 우클릭 (선택 시) | 즉시 복사 |
| 우클릭 (빈 영역) | 즉시 붙여넣기 |
| 우클릭 (링크) | Open / Copy Link 메뉴 |
| F12 | 브라우저 DevTools |
아키텍처
wmux는 네 개의 주요 프로세스로 구성된다.
Electron 메인 프로세스
애플리케이션의 핵심 로직을 담당한다. PTYManager(ConPTY 기반 가상 터미널 관리), PTYBridge(데이터 전달 및 ActivityMonitor), AgentDetector(게이트 기반 에이전트 상태 추적), SessionManager(원자적 저장 및 .bak 복구), ScrollbackPersistence(터미널 버퍼 덤프/로드), PipeServer(Named Pipe JSON-RPC + 토큰 인증), McpRegistrar(~/.claude.json 자동 등록), WebviewCdpManager(CDP 프록시), DaemonClient(데몬 연결), AutoUpdater(GitHub Releases), ToastManager(OS 알림 + 작업 표시줄 플래시)로 구성된다.
렌더러 프로세스
React 19 + Zustand 기반 UI 레이어다. PaneContainer(재귀적 분할 레이아웃), Terminal(xterm.js + WebGL + 스크롤백 복원), BrowserPanel(webview + Inspector + CDP), NotificationPanel, SettingsPanel, Multiview 그리드로 구성된다.
데몬 프로세스
백그라운드에서 독립적으로 실행되어 앱 재시작 후에도 PTY 세션을 유지한다. DaemonSessionManager(ConPTY 라이프사이클), RingBuffer(순환 스크롤백 버퍼), StateWriter(세션 서스펜드/리줌), ProcessMonitor(외부 프로세스 감시), Watchdog(메모리 압력 에스컬레이션), DaemonPipeServer(Named Pipe RPC + 토큰 인증)로 구성된다.
MCP 서버
stdio 기반으로 실행되며 Claude Code와 wmux를 연결하는 브릿지 역할을 한다. PlaywrightEngine(CDP 연결, fast-fail), CDP RPC 폴백(스크린샷, evaluate, type, click), Claude Code ↔ wmux Named Pipe RPC 브릿지로 구성된다.
유사 소프트웨어 비교
| 소프트웨어 | 플랫폼 | WSL 필요 | AI 에이전트 지원 | 브라우저 자동화 | MCP 서버 | 세션 지속성 |
|---|---|---|---|---|---|---|
| wmux | Windows 네이티브 | 불필요 | 전용 지원 | 내장 CDP | 내장 자동 등록 | 앱 재시작 + 재부팅 |
| tmux | Unix/Linux/macOS | - | 없음 | 없음 | 없음 | 세션 유지 |
| GNU Screen | Unix/Linux/macOS | - | 없음 | 없음 | 없음 | 세션 유지 |
| Windows 터미널 | Windows 네이티브 | 불필요 | 없음 | 없음 | 없음 | 없음 |
| tmux (WSL 경유) | Windows + WSL | 필요 | 없음 | 없음 | 없음 | 제한적 |
기술 스택
wmux는 다음 오픈 소스 프로젝트를 핵심 기반으로 사용한다.
| 구성 요소 | 기술 | 역할 |
|---|---|---|
| 터미널 렌더링 | xterm.js + WebGL | GPU 가속 터미널 출력 |
| 가상 터미널 | node-pty / ConPTY | Windows 네이티브 PTY |
| 데스크톱 프레임워크 | Electron | 크로스-프로세스 앱 컨테이너 |
| 브라우저 자동화 | Playwright | CDP 엔진 |
| UI 프레임워크 | React 19 + Zustand | 렌더러 UI 상태 관리 |
| IPC | Named Pipe JSON-RPC | 프로세스 간 통신 |
| 업데이트 | GitHub Releases | 자동 업데이트 피드 |
개발
wmux는 MIT 라이선스로 공개된 오픈 소스 소프트웨어로, GitHub에서 소스 코드를 관리한다. 개발 환경은 Node.js 18 이상, Python 3.x(node-gyp 빌드용), C++ 워크로드가 포함된 Visual Studio Build Tools가 필요하다. install.ps1 스크립트는 Python과 VS Build Tools가 없을 경우 자동으로 설치한다.
개발 빌드는 다음 순서로 진행된다.
git clone https://github.com/openwong2kim/wmux.git
cd wmux
npm install
npm start # 개발 모드
npm run make # 설치 파일 빌드
wmux는 AI 코딩 에이전트의 상태 표시 목적으로만 에이전트를 감지하며, 어떠한 AI API도 호출하지 않고 에이전트 출력을 캡처하거나 에이전트 상호작용을 자동화하지 않는다. 사용자는 각 AI 제공자의 서비스 약관을 준수할 책임이 있다.
같이 보기
- tmux
- GNU Screen
- Windows 터미널
- Model Context Protocol
- Chrome DevTools Protocol
- Electron (소프트웨어 프레임워크)
- ConPTY
- xterm.js
- Claude
각주
- ↑ “wmux - Windows Terminal Multiplexer for AI Agents” (영어). 《GitHub》.
- ↑ “wmux — Windows AI 에이전트용 터미널 멀티플렉서”. 《wmux.app》.