Terminal.app, iTerm2, Ghostty, Warp, cmux, Kaku 등 macOS 터미널 에뮬레이터 완전 비교. AI 코딩 에이전트 시대의 최적 선택 가이드.
| 항목 | Terminal | iTerm2 | Ghostty | Warp | cmux ⭐ | Kaku ⭐ |
|---|---|---|---|---|---|---|
| 플랫폼 | macOS | macOS | macOS+Linux | macOS+Linux | macOS | macOS 중심 |
| 렌더링 | CPU | 부분 GPU | Metal GPU | Rust GPU | Ghostty GPU | WezTerm GPU |
| 성능 | 보통 | 좋음 | ★★★★★ | 매우 좋음 | ★★★★★ | ★★★★☆ |
| 리소스 | 낮음 | 높음 | 매우 낮음 | 중간 | 매우 낮음 | 낮음 |
| AI 지원 | 없음 | 없음 | 없음 | 강력 (블록+AI) | 최강 (에이전트) | 좋음 (Assistant) |
| 멀티태스킹 | 기본 탭 | tmux 통합 | 기본 탭 | 블록 기반 | V-Tabs + 알림 | CLI mux |
| 설정 난이도 | 가장 쉬움 | 복잡 (GUI) | 간단 (K=V) | GUI + YAML | Ghostty 상속 | Zero-config |
| 특화 기능 | - | Triggers | Kitty Graphics | 협업 + AI | 브라우저+Socket | Starship/Yazi |
| 가격 | 무료 | 무료 | 무료 | 무료(팀유료) | 무료 | 무료 |
Ghostty 렌더링 엔진(libghostty)을 라이브러리로 사용한 macOS 전용 AI 에이전트 오케스트레이션 터미널. manaflow-ai 개발, AGPL-3.0, GitHub Stars ~10.9k.
WezTerm을 깊게 커스터마이징한 "Zero-config" 터미널. 설치 즉시 완성된 개발자 워크플로우 제공. tw93 개발, MIT 라이선스. 바이너리 40% 작고, 셸 부팅 ~100ms.
| 항목 | cmux | Kaku |
|---|---|---|
| 기반 엔진 | Ghostty (Zig + Metal) | WezTerm (Rust) |
| 렌더링 성능 | ★★★★★ 최상위 | ★★★★☆ 매우 빠름 |
| AI 에이전트 관리 | 최강 (알림링, Socket, 브라우저) | 기본 탭/스플릿만 |
| 설정 난이도 | Ghostty config 상속 | Zero-config (0분) |
| 기본 번들 | 없음 (직접 설치) | 전부 포함 |
| 파일매니저 | 없음 | Yazi 통합 |
| AI Assistant | 알림 기반 (상태 관리) | 실패 명령 자동 분석 |
| 커스터마이징 | 제한적 (Ghostty 수준) | 무한 (Lua) |
| 세션 시각화 | 사이드바 탭 (git/port/알림) | 일반 탭 |
| 내장 브라우저 | 있음 | 없음 |
| 라이선스 | AGPL-3.0 | MIT |
cmux는 macOS GUI 앱이라 SSH 안에서 직접 띄울 수 없음. 로컬 cmux + 원격 tmux 하이브리드가 최적. SSH 접속 후에도 cmux의 vertical tabs, notification ring, splits, 내장 브라우저 모두 그대로 사용 가능.
# cmux 설치 brew tap manaflow-ai/cmux && brew install --cask cmux # Tailscale 설치 (이미 있으면 건너뛰기) brew install --cask tailscale
# Tailscale + tmux 설치 brew install --cask tailscale brew install tmux # ~/.zshrc 맨 아래에 자동 attach 스크립트 추가 cat >> ~/.zshrc << 'EOF' # tmux auto-attach on SSH login if [[ -n "$SSH_CONNECTION" && -z "$TMUX" ]]; then tmux attach -t main 2>/dev/null || tmux new-session -d -s main && tmux attach -t main fi EOF
# CLI로 한 번에 생성 + 접속 cmux new-workspace --name "Mac Studio" --command "tailscale ssh studio" # 또는 GUI: Cmd+N → "Mac Studio" → tailscale ssh studio 입력
# 빠른 Studio 접속 studio() { cmux new-workspace --name "Studio" --command "tailscale ssh studio" } # 여러 서버 cmux new-workspace --name "DB" --command "tailscale ssh db-server"
| 상황 | 결과 | 대응 |
|---|---|---|
| cmux 앱 종료 | SSH 끊김 | 원격 tmux 살아있음 → 다시 attach |
| 네트워크 끊김 | SSH 끊김 | 동일 (tmux 유지) |
| Mac Studio 재시작 | tmux 세션 소멸 | tmux-resurrect 플러그인으로 복구 |
현재 수동 ssh/tailscale ssh 방식만 지원. "first-class SSH workspaces" (자동 재연결, mosh 지원, live session restore) GitHub 이슈 진행 중. SSH remote daemon + loopback proxy 개선 중이나, 사용자 수준에서는 아직 수동. 기존 Tailscale + tmux + Termius 조합 쓰던 유저들이 "cmux 하나로 대체했다"고 극찬.
| 기능 | 단축키 | 비고 |
|---|---|---|
| 새 Workspace | Cmd+N | tmux new-session 대체 |
| Workspace 전환 | Cmd+1~9 | tmux select-window 대체 |
| 사이드바 토글 | Cmd+B | 세션/git/포트 한눈에 |
| 세로 분할 | Cmd+D | 드래그로 크기 조절 |
| 가로 분할 | Cmd+Shift+D | 드래그로 크기 조절 |
| 패널 이동 | Option+Cmd+←→↑↓ | 마우스 클릭도 가능 |
| 탭 닫기 | Cmd+W |
| tmux 기능 | cmux 대체 | cmux 명령어 | tmux보다 나은 점 |
|---|---|---|---|
| new-session / attach | Workspace | Cmd+N / Cmd+1~9 | git/포트/알림 자동 |
| split-window | Pane Split | Cmd+D / Cmd+Shift+D | 드래그 리사이즈 |
| 여러 서버 세션 | 서버별 Workspace | cmux rename-workspace | 한눈에 관리 |
| detach / 재접속 | 종료 + 재시작 | 자동 layout 복구 | 원격 tmux가 담당 |
| send-keys / 자동화 | Socket API | cmux send-key | SSH 안에서도 작동 |
| list-sessions | Sidebar | 항상 표시 | 시각적 풍부 |
# ⭐ cmux (메인 추천) brew tap manaflow-ai/cmux && brew install --cask cmux # ⭐ Kaku (보조 추천) brew install tw93/tap/kaku # Ghostty (일반 추천 — 공식 사이트에서 다운로드) # https://ghostty.org/download # Warp brew install --cask warp # iTerm2 brew install --cask iterm2 # Alacritty brew install --cask alacritty # Kitty brew install --cask kitty # WezTerm brew install --cask wezterm
font-family = JetBrains Mono font-size = 14 theme = catppuccin-mocha window-padding-x = 8 window-padding-y = 8 cursor-style = block shell-integration-features = cursor,sudo,title
local config = {}
config.font_size = 14.0
config.color_scheme = "Catppuccin Mocha"
config.window_background_opacity = 0.95
return config