맥에서 터미널을 두 번 바꿨다. 오래 쓴 iTerm2에서 Ghostty로 넘어갔고, 지금은 cmux를 쓴다. 바꿀 때마다 이유가 달랐다. 처음엔 터미널 자체가 가볍고 단순하길 바랐고, 그다음엔 Claude Code 세션 여러 개를 한 화면에서 놓치지 않고 굴리고 싶었다.
이 글은 왜 바꿨는지, 지금 어떻게 쓰고 있는지 정리한 것이다.

한눈에 보기
| 항목 | iTerm2 | Ghostty | cmux |
| 정체 | 맥 터미널의 오래된 표준 | 빠른 네이티브 터미널 | Ghostty 기반 AI 에이전트용 터미널 |
| 설정 | GUI 환경설정 | 텍스트 파일 한 장 | Ghostty 설정 그대로 + cmux.json |
| 강점 | 기능이 가장 많다 | 빠르고 단순하다 | 세션이 많아도 안 헷갈린다 |
| 지원 OS | macOS | macOS, Linux | macOS |
| 가격 | 무료, 오픈소스 | 무료, 오픈소스 | 무료, 오픈소스 |
| 링크 | iterm2.com | ghostty.org | cmux.com · GitHub |
1. iTerm2: 불만이 크진 않았다
오랫동안 iTerm2를 썼다. 분할 창, 프로필, 핫키 창, tmux 통합까지 터미널에 바랄 만한 기능은 거의 다 있다. 지금도 좋은 터미널이다.
바꾼 이유는 큰 결함이 아니라 쌓인 작은 불편이었다.
- 설정이 GUI에 흩어져 있다. 환경설정 창을 몇 단계씩 들어가야 하고, 저장도 plist라 다른 맥에 옮기거나 dotfiles로 관리하기 번거롭다.
- 쓰는 기능에 비해 크다. 실제로 쓰는 건 분할과 탭 정도였다.
- Claude Code를 하루 종일 띄워 두게 됐다. 출력이 길게 쏟아지는 일이 잦아지면서 더 가벼운 터미널이 끌렸다.
2. Ghostty: 빠르고, 설정이 파일 한 장
Ghostty는 HashiCorp 공동창업자 Mitchell Hashimoto가 시작한 오픈소스 터미널이다. 공식 소개가 "빠르고, 기능이 많고, 네이티브"인데, 써 보면 셋 다 맞다.
- 빠르다. GPU로 렌더링해서 스크롤이나 대량 출력에도 버벅임이 없다.
- 네이티브다. 맥에선 Swift/AppKit으로 만든 진짜 맥 앱이라 탭·분할·창이 맥 앱처럼 움직인다. Electron이 아니다.
- 설정이 텍스트 파일 한 장이다.
~/.config/ghostty/config하나만 dotfiles에 넣어 두면 어느 맥에서든 같은 환경이 된다.

설정은 이 정도만 했다. 핵심은 한글 폰트를 두 번째 font-family로 지정하는 것이다. 첫 번째 글꼴에 없는 글자는 다음 글꼴이 받는다. 테마는 목록에서 고르고, 설정을 고친 뒤엔 ⌘⇧,로 바로 다시 읽는다.
# 테마 목록 미리보기
ghostty +list-themes
그런데 세션이 늘어나자 길을 잃었다
Ghostty 자체엔 불만이 없었다. 바뀐 건 내 작업 방식이다. 프로젝트마다 Claude Code를 하나씩 띄우다 보니 분할 창과 탭이 계속 늘었다.
- 어느 세션이 내 입력을 기다리는지 창을 하나씩 열어 봐야 안다.
- 맥 알림이 와도 본문이 "Claude is waiting for your input" 정도라 어느 창인지 모른다.
- 탭이 많아지면 제목이 잘려 구분이 안 된다.
cmux 개발자가 README에 적은 개발 동기도 정확히 이거였다.
3. cmux: 에이전트 여러 개를 굴리는 터미널
cmux는 Ghostty 엔진(libghostty)으로 만든 맥 전용 터미널이다. 공식 소개 한 줄은 "AI 코딩 에이전트를 위한 세로 탭과 알림이 있는 Ghostty 기반 macOS 터미널"이다. Swift/AppKit 네이티브 앱이고 무료 오픈소스다.
갈아탈 때 가장 좋았던 건 기존 Ghostty 설정을 그대로 읽는다는 점이다. 테마·폰트·색이 그대로 넘어와서 첫날부터 손에 익은 화면이었다.

1. 세로 탭에 필요한 정보가 다 있다
워크스페이스마다 사이드바에 git 브랜치, 연결된 PR 번호와 상태, 작업 폴더, 열려 있는 포트, 마지막 알림 문구가 뜬다. 프로젝트별로 워크스페이스를 하나씩 두면 탭을 열어 보지 않아도 어디서 뭐가 돌고 있는지 보인다.
2. 나를 기다리는 창이 파랗게 빛난다
에이전트가 입력을 기다리면 그 창에 파란 테두리(알림 링)가 생기고 사이드바 탭에 불이 들어온다. ⌘⇧U를 누르면 가장 최근에 안 읽은 알림으로 바로 간다. Claude Code 연동은 설정에 기본으로 켜져 있어서 훅을 따로 짜지 않아도 됐다.

3. 터미널 옆에 브라우저를 띄운다
터미널 옆 분할 창에 브라우저를 연다. 로컬 서버를 띄우면 사이드바의 포트를 눌러 바로 열 수 있다.
내가 가장 많이 쓰는 건 Claude Code가 만든 결과 보고서(HTML)를 옆에 띄우는 것이다. 작업이 끝나면 Claude가 이 명령으로 보고서를 직접 열고, 나는 터미널에서 눈을 떼지 않고 결과를 읽는다.
cmux browser open-split "file:///Users/me/reports/result.html"
로그인한 사이트를 돌아다니는 브라우저 자동화는 따로 ego lite를 쓴다(이전 글). cmux 브라우저는 결과를 보여주는 용도로 쓴다.

4. CLI로 전부 조작된다
cmux는 CLI와 소켓 API를 제공한다. 사람이 마우스로 하던 일을 Claude Code가 명령으로 한다. 창을 나누고, 브라우저를 열고, 바뀐 코드를 diff 패널로 띄운다.
cmux new-split right # 오른쪽에 새 터미널
cmux browser open-split <url> # 옆에 브라우저
cmux diff --last-turn # 에이전트가 마지막 턴에 바꾼 코드 diff
cmux notify --title "빌드 끝" # 알림 직접 보내기
cmux reload-config # Ghostty·cmux 설정 다시 읽기, 재시작 필요 없음
그 밖에 쓸 만한 것
| 기능 | 내용 |
| 워크스페이스 포트 대역 | 워크스페이스마다 CMUX_PORT 범위가 배정된다. 로컬 서버를 이 대역에 띄우면 사이드바가 알아서 잡는다. |
| 마크다운 뷰어 | .md 파일을 cmux 안에서 렌더링해서 연다. |
| SSH 워크스페이스 | cmux ssh user@host로 원격 머신용 워크스페이스를 만든다. |
| Claude Code 팀 모드 | cmux claude-teams로 팀원 에이전트가 각자 분할 창으로 뜬다. tmux가 필요 없다. |
| 브라우저 가져오기 | 크롬 등에서 쿠키·기록을 가져와 브라우저 창이 로그인된 상태로 시작한다. |
설치
둘 다 Homebrew로 설치된다.
# Ghostty
brew install --cask ghostty
# cmux
brew tap manaflow-ai/cmux
brew install --cask cmux
cmux는 ~/.config/ghostty/config를 그대로 읽어서 Ghostty를 쓰던 사람은 따로 옮길 게 없다. cmux 고유 설정은 ~/.config/cmux/cmux.json에 있고, 처음 실행하면 모든 항목이 주석으로 들어간 템플릿이 만들어진다. 나는 거의 손대지 않았다.
써 보고 느낀 점
좋았던 점
- Claude Code를 여러 개 띄워도 어느 창이 나를 부르는지 바로 보인다.
- Ghostty 설정이 그대로라 갈아타는 비용이 거의 없었다.
- 에이전트가 화면(분할·브라우저·diff)을 직접 다뤄서 결과 확인이 빨라졌다.
주의할 점
- macOS 전용이다.
- 아직 0.x 버전이라 업데이트가 잦고 동작이 자주 바뀐다. 작성 시점 0.65.1이다.
- 앱을 종료하면 안에서 돌던 에이전트 세션이 전부 같이 꺼진다. 터미널이니 당연하지만 세션을 여러 개 굴릴수록 타격이 크다. Claude Code는
claude --resume으로 이어 갈 수 있다. - 파일을 터미널로 끌어다 놓으면 설정에 따라 미리보기가 열린다. 그럴 땐 Shift를 누른 채 놓으면 경로가 입력된다.
- 익명 사용 통계 전송이 기본으로 켜져 있다. 원하지 않으면 설정에서 끈다.
정리
- iTerm2 → Ghostty: 터미널을 가볍고 단순하게 만들려고 바꿨다.
- Ghostty → cmux: Claude Code 세션 여러 개를 놓치지 않으려고 바꿨다. 엔진이 같아서 손에 익은 건 그대로다.
- 에이전트를 하나만 쓴다면 Ghostty로 충분하다. 여러 개를 동시에 굴리기 시작하면 cmux가 맞다.
이미지 출처: 첫 번째·두 번째는 직접 제작, 나머지는 cmux GitHub README
'AI 엔지니어준비' 카테고리의 다른 글
| ego lite 사용법 — Claude Code가 내 브라우저로 알림톡 업체 28곳을 비교했다 (0) | 2026.09.18 |
|---|---|
| Spring WebFlux, R2DBC, 그리고 Java 자료구조 — 다시 정리했다 (0) | 2026.04.14 |
| 한때 썼던 Spring, 다시 처음부터 정리했다 (0) | 2026.04.14 |
| Claude Code 컨텍스트 구조를 갈아엎은 이유 (0) | 2026.04.13 |
| CNN과 RNN, 네트워크 보안에 어떻게 쓰이나 (0) | 2026.04.13 |