Ghostty 터미널 실전 가이드: 설치부터 커스터마이징까지

터미널은 백엔드 개발자가 하루 중 가장 오래 들여다보는 도구다. 그런데 정작 그 터미널이 로그 출력에 프레임 드랍을 일으키거나, 아무것도 안 하는데 메모리를 200MB 넘게 먹고 있다면? 도구가 일을 도와주는 게 아니라 발목을 잡고 있는 거다. Ghostty 터미널은 HashiCorp 창시자 Mitchell Hashimoto가 Zig 언어로 밑바닥부터 새로 짠 터미널 에뮬레이터다. GitHub star가 53,000개를 넘겼고, iTerm2 대비 4배 빠른 렌더링에 유휴 메모리 28MB라는 숫자가 사람들을 끌어들이고 있다. 이번 포스팅에서는 Ghostty 터미널의 설치부터 config 커스터마이징, 키바인딩, iTerm2/Warp와의 비교까지 정리하고자 한다.

Ghostty 터미널이 뭐길래 — HashiCorp 창시자의 사이드 프로젝트

Ghostty 터미널은 Vagrant, Terraform, Consul을 만든 Mitchell Hashimoto의 사이드 프로젝트다. Zig 언어로 작성되었고, 내부 구조가 좀 독특하다. libghostty라는 크로스 플랫폼 C-ABI 라이브러리가 터미널 에뮬레이션 로직을 담당하고, GUI는 플랫폼별로 따로 구현한다. macOS에서는 Swift와 AppKit/SwiftUI, Linux에서는 Zig와 GTK4를 쓴다. Electron 같은 래퍼가 아니라 각 OS의 네이티브 API를 직접 호출하는 구조다.

2026년 3월 13일 출시된 v1.3.1이 현재 최신 버전이고, 직전 메이저인 1.3.0에는 180명이 기여하며 6개월간 2,858건의 커밋이 쌓였다(릴리스 노트). Hashimoto가 밝힌 설계 철학은 하나다. 터미널 에뮬레이터는 투명해야 한다는 것. 사용자가 터미널 자체를 의식하지 않고 작업에 집중하게 만드는 게 목표라고 한다. 실제로 써보면 이 말이 과장이 아니라는 걸 느낀다. 네이티브 API를 직접 쓰기 때문에 macOS의 접근성 기능이나 시스템 다크 모드 전환 같은 것도 별도 설정 없이 그냥 동작한다.

왜 iTerm2를 버리고 Ghostty로 갈아타야 할까?

짧게 답하면, 렌더링이 빠르고 메모리를 적게 먹기 때문이다. 지속 출력 벤치마크 기준으로 iTerm2 대비 약 4배 빠르다. 유휴 메모리는 약 28MB인데, Warp가 210MB를 잡아먹는 것과 비교하면 격차가 크다. 10만 줄 스크롤백 테스트에서는 Ghostty 터미널이 0.7초, Warp가 1.8초다.

Warp 관련 내용은 Warp 터미널 리뷰 — AI 에이전트 시대의 개발 환경은 어떻게 달라지는가 포스팅 참고

이 차이가 어디서 오는지 궁금할 수 있다. Ghostty 터미널은 macOS에서 Metal, Linux에서 OpenGL로 렌더링을 GPU에 넘긴다. 거기에 damage-tracking이라는 기법을 쓰는데, 화면에서 실제로 바뀐 부분만 다시 그리는 방식이다. AI 코딩 에이전트가 토큰을 스트리밍할 때처럼 텍스트가 한 줄씩 밀려오는 상황에서, iTerm2나 Warp는 배치 업데이트로 잠깐 버벅이는 반면 Ghostty 터미널은 줄 단위로 즉시 렌더링한다. M3 MacBook Pro에서 10만 줄 스크롤 시 120fps가 유지되는 걸 직접 확인했다.

5분 안에 끝내는 Ghostty 설치

Ghostty 터미널 설치는 macOS 기준 Homebrew 한 줄이면 끝나고, 별도 설정 없이 바로 사용할 수 있다. macOS 13(Ventura) 이상이 필요하며, 설치 직후 기본 셸을 자동 감지해서 별다른 설정 없이 동작한다.

# macOS (Homebrew) — 안정 버전
brew install --cask ghostty

# 최신 기능을 먼저 써보고 싶다면 개발 빌드
brew install --cask ghostty@tip
ShellScript

위 명령 중 첫 번째는 안정 릴리스를 설치하고, 두 번째 @tip 버전은 main 브랜치의 최신 빌드를 설치한다. 새 기능을 먼저 체험하고 싶다면 tip을 쓰되, 간혹 불안정할 수 있다는 점을 감안해야 한다.

Homebrew를 쓰지 않는다면 ghostty.org에서 .dmg 파일을 직접 내려받을 수도 있다. Linux는 배포판별 패키지 매니저를 통해 설치하거나 소스에서 직접 빌드하는 방식을 지원한다. Shell integration이 필요한 경우 Ghostty 터미널이 제공하는 셸 통합 스크립트를 .zshrc에 추가하면 된다.

# Ghostty 셸 통합 (필요시 .zshrc에 추가)
if [ -n "$GHOSTTY_RESOURCES_DIR" ]; then
  source "$GHOSTTY_RESOURCES_DIR/shell-integration/zsh/ghostty-integration"
fi
ShellScript

위 코드는 Ghostty 터미널 내부에서 실행 중일 때만 셸 통합 스크립트를 로드한다. $GHOSTTY_RESOURCES_DIR 환경 변수는 Ghostty가 실행될 때 자동으로 설정되므로, 다른 터미널에서는 무시된다.

config 파일 하나로 완성하는 나만의 Ghostty

Ghostty 터미널의 설정은 ~/.config/ghostty/config 파일 하나에 key = value 형식으로 작성한다. 별도 포맷 파서 없이 단순한 텍스트 파일이고, 주석은 #으로 시작한다. v1.2.3부터는 config.ghostty 확장자도 지원하며, macOS에서는 ~/Library/Application Support/com.mitchellh.ghostty/config 경로도 인식한다.

설정 변경 후 Ghostty 터미널을 재시작할 필요가 없다. macOS에서 Cmd+Shift+,, Linux에서 Ctrl+Shift+,를 누르면 config 파일을 즉시 다시 읽는다. 파일 감시(auto-watching)도 기본 활성화되어 있어서 에디터에서 저장하는 순간 변경 사항이 반영된다.

# ~/.config/ghostty/config

# 폰트 설정
font-family = "JetBrainsMono Nerd Font"
font-size = 14

# 테마 설정
theme = catppuccin-mocha

# 창 설정
window-padding-x = 10
window-padding-y = 8
background-opacity = 0.95

# 커서 설정
cursor-style = block
cursor-style-blink = false

# macOS 전용
macos-titlebar-style = hidden
macos-option-as-alt = true
Plaintext

위 설정은 백엔드 개발자가 선호하는 실용적인 기본 구성이다. macos-titlebar-style = hidden은 타이틀바를 숨겨 화면 공간을 최대화하고, macos-option-as-alt = true는 Option 키를 Alt로 동작하게 해서 셸 단축키(Alt+B, Alt+F 등)를 자연스럽게 쓸 수 있게 한다. background-opacity는 0.0에서 1.0 사이 값으로 투명도를 조절한다.

사용 가능한 모든 설정 키를 확인하려면 ghostty +show-config --default --docs 명령을 실행하면 된다. 내장 테마 목록은 ghostty +list-themes로 수백 개를 확인할 수 있으며, 라이트/다크 모드별로 별도 테마를 지정하는 것도 가능하다. CLI 플래그로도 모든 설정이 가능해서 ghostty --font-size=16처럼 일시적으로 설정을 오버라이드할 수 있고, config-file = path/to/other/config로 설정 파일을 분리해 프로젝트별로 다른 환경을 구성할 수도 있다.

# 설정 가능한 모든 옵션 확인
ghostty +show-config --default --docs

# 내장 테마 목록 보기
ghostty +list-themes
ShellScript

위 두 명령은 Ghostty 터미널의 설정 탐색에 가장 자주 쓰이는 명령이다. +show-config는 기본값과 함께 각 옵션의 설명까지 출력해 주므로, 공식 문서를 따로 열 필요 없이 터미널 안에서 바로 참고할 수 있다.

생산성을 2배로 끌어올리는 키바인딩과 분할 화면

Ghostty 터미널은 기본 키바인딩만으로도 탭, 분할 화면, 검색까지 대부분의 멀티플렉싱 작업을 처리할 수 있다. Cmd+T로 새 탭, Cmd+D로 오른쪽 분할, Cmd+Shift+D로 아래 분할이 기본 설정이며, 커스텀 키바인딩은 config 파일에 keybind = modifier+key=action 형식으로 추가한다.

v1.3.0에서 들어온 기능 중 가장 반가운 건 스크롤백 검색이다. macOS에서 Cmd+F, Linux에서 Ctrl+Shift+F로 터미널 출력 전체를 검색할 수 있다. 별도 스레드에서 돌아가기 때문에 검색하는 동안 렌더링이 멈추지 않는다. 셸 프롬프트 안에서 마우스 클릭으로 커서를 옮기는 click-to-move-cursor도 은근히 편하다. 네이티브 스크롤바도 추가되었다.

# 분할 화면
keybind = cmd+d=new_split:right
keybind = cmd+shift+d=new_split:down

# 분할 화면 이동
keybind = cmd+alt+left=goto_split:left
keybind = cmd+alt+right=goto_split:right
keybind = cmd+alt+up=goto_split:top
keybind = cmd+alt+down=goto_split:bottom

# 설정 리로드
keybind = cmd+shift+comma=reload_config

# 스크롤백 검색 (1.3.0 기본 내장)
# macOS: Cmd+F / Linux: Ctrl+Shift+F
Plaintext

위 키바인딩은 tmux 없이도 Ghostty 터미널 내에서 화면을 자유롭게 분할하고 이동하는 구성이다. goto_split 액션으로 방향키와 조합하면 분할된 패널 사이를 빠르게 전환할 수 있다. tmux를 이미 사용 중이라면 Ghostty 터미널과 충돌 없이 병행할 수 있지만, Ghostty 자체 분할 기능이 충분히 강력해서 tmux 없이 운영하는 개발자도 많다.

Ghostty vs iTerm2 vs Warp — 어떤 터미널이 내 손에 맞을까?

결론부터 말하면, 셋 다 쓸 만한 터미널이고 정답은 없다. 다만 숫자로 비교하면 차이가 분명히 보인다. 아래 테이블은 2026년 5월 기준 최신 버전 기준이다.

항목GhosttyiTerm2Warp
렌더링 속도가장 빠름 (Metal/OpenGL)보통빠름
유휴 메모리~28MB~80MB~210MB
100K줄 스크롤0.7초느림1.8초
AI 기능 내장없음없음있음
가격무료/오픈소스무료무료(기본)/유료(팀)
플랫폼macOS, LinuxmacOS 전용macOS, Linux, Windows
네이티브 UISwift/GTKCocoaRust 자체 GPU 렌더링
스크롤백 검색v1.3.0부터 지원지원지원
GPU 가속전면 지원부분 지원부분 지원
작성 언어ZigObjective-CRust

성능과 가벼움이 우선이라면 Ghostty 터미널이 맞다. CLI 중심 워크플로우에서 가장 잘 어울린다. iTerm2는 macOS 전용이라는 한계가 있지만 AppleScript 자동화가 필요하거나 이미 수년간 세팅을 쌓아둔 사람이라면 굳이 옮길 이유가 약하다. Warp는 AI가 내장되어 있고 블록 기반 UI가 독특해서 터미널에 덜 익숙한 팀원이 있으면 고려할 만하다. 대신 유휴 상태에서 210MB를 먹고, AI 에이전트 등 일부 고급 기능은 로그인이 필요하다는 점은 알아둬야 한다.

Ghostty와 찰떡궁합인 CLI 도구 조합

모던 CLI 도구로 터미널 생산성 5배 올리기 — fzf부터 zoxide까지 실전 연동
Starship + zsh + direnv: 모던 터미널 생산성 스택 구축 가이드
위 포스팅으로 fzf, zoxide, starship에 대한 정보를 얻을 수 있다.

Ghostty 터미널 하나만 바꿔서는 체감이 덜할 수 있다. 터미널이 빨라진 만큼 그 위에서 도는 CLI 도구도 모던한 걸로 맞춰줘야 전체 워크플로우가 빨라진다. 아래 다섯 가지는 Ghostty 터미널과 같이 쓰면서 확실히 체감 차이를 느낀 조합이다.

Starship은 Rust 기반 크로스 플랫폼 프롬프트로, Ghostty 터미널의 빠른 렌더링과 맞물려 프롬프트 지연을 거의 0으로 줄인다. zoxide는 cd를 대체하는 퍼지 점프 도구로, 자주 방문하는 디렉토리를 학습해서 z 한 글자로 이동할 수 있다. fzf는 범용 퍼지 파인더, bat은 구문 강조가 되는 cat 대체, eza는 아이콘과 Git 상태를 보여주는 ls 대체 도구다.

# Ghostty 터미널과 함께 설치하면 좋은 CLI 도구
brew install starship zoxide fzf bat eza

# .zshrc에 추가
eval "$(starship init zsh)"
eval "$(zoxide init zsh)"
source <(fzf --zsh)
alias cat="bat"
alias ls="eza --icons"
ShellScript

위 설정을 .zshrc에 추가하면 Ghostty 터미널을 열자마자 5개 도구가 모두 활성화된다. starship init은 프롬프트를 교체하고, zoxide initz 명령을 등록하며, fzf --zshCtrl+R(히스토리 검색)과 Ctrl+T(파일 검색) 키바인딩을 추가한다. bat과 eza는 단순 alias로 기존 명령을 대체한다.

FAQ

Ghostty 터미널은 Windows에서 사용할 수 있나?

아직 안 된다. macOS와 Linux만 공식 지원하고, Windows 지원은 로드맵에 있지만 언제 나올지는 모른다. 당장 필요하면 WSL2 위에서 Linux 빌드를 돌리는 방법이 있긴 하다.

Ghostty에서 tmux를 함께 쓸 수 있나?

된다. 기존 tmux 설정 그대로 가져올 수 있고 호환성 문제는 없다. 다만 Ghostty 자체 탭과 분할 기능이 꽤 괜찮아서, tmux를 떼고 네이티브 기능만으로 운영해 보는 것도 방법이다.

iTerm2에서 Ghostty로 설정을 마이그레이션할 수 있나?

자동 마이그레이션 도구는 제공되지 않는다. 하지만 Ghostty 터미널의 설정 형식이 key = value로 매우 단순하기 때문에, iTerm2의 주요 설정(폰트, 테마, 키바인딩)을 직접 옮기는 데 10분이면 충분하다. ghostty +show-config --default --docs 명령으로 전체 옵션 목록을 확인하면서 하나씩 매핑하면 된다.

Ghostty 터미널의 테마는 어떻게 바꾸나?

ghostty +list-themes 명령으로 수백 개의 내장 테마 목록을 확인할 수 있다. config 파일에 theme = catppuccin-mocha처럼 테마명을 지정하면 즉시 적용된다. 라이트/다크 모드에 따라 theme = light:github-light,dark:catppuccin-mocha 형식으로 각각 다른 테마를 설정하는 것도 가능하다.

Ghostty 터미널은 정말 무료인가?

무료다. MIT 라이선스 오픈소스이고 상업적 사용에도 제한이 없다. GitHub 저장소에서 소스를 직접 확인하고 빌드할 수 있다.

마치며

지금까지 Ghostty 터미널의 설치부터 설정, 키바인딩, 성능 비교까지 정리해 보았다. iTerm2를 오래 쓰다가 Ghostty 터미널로 옮긴 입장에서 솔직히 말하면, 처음에는 “터미널이 거기서 거기지” 싶었다. 실제로 체감이 온 건 Spring Boot 애플리케이션 로컬 실행 때였다. 수천 줄 로그가 쏟아지는 상황에서 프레임 드랍이 없다. iTerm2에서 당연하게 여겼던 그 짧은 멈칫거림이 없어지니까, 한번 경험하면 돌아가기가 싫어진다. config 파일이 텍스트 한 장이라는 것도 의외로 크다. iTerm2의 GUI 설정 창에서 이 탭 저 탭 뒤지던 시간이 dotfiles 저장소에 config 파일 하나 넣어두는 것으로 끝나니까. 새 맥북 받아도 git clone 한 번이면 터미널 환경이 그대로 복원된다. Windows 미지원은 아쉽지만, 솔직히 백엔드 개발자 대부분이 macOS 아니면 Linux를 쓰는 상황에서 당장 문제가 되지는 않는다.