🌏 Read this article in English
開場:AI 改變了終端機的遊戲規則
2024 年,終端機的使用方式發生了根本性變化。
不是因為 Ghostty 開源,不是因為 WezTerm 更新——而是因為 AI 進入了終端機。
Claude Code、GitHub Copilot CLI、Aider、Cursor Terminal⋯⋯越來越多開發者的日常工作流變成:在終端機裡與 AI 對話、讓 AI 寫程式碼、讓 AI 執行命令。
這徹底改變了我們對終端機的需求:
- 以前:開終端機、打幾個命令、關掉
- 現在:開終端機、與 AI 對話數小時、同時開多個視窗
當你的終端機需要長時間運行、處理大量 AI 輸出、支援特殊按鍵組合時,選錯終端機的代價變得很高。
這篇文章不只是「又一篇終端機比較」。我會從 AI 工作流的角度,重新評估五款主流終端機,幫助你在 2025 年做出最適合的選擇。
目錄
- TL;DR 快速結論
- AI 時代的終端機需求變化
- AI CLI 相容性實測
- 效能實測數據
- 五款終端機完整分析
- Ghostty vs WezTerm:AI 時代的雙強對決
- 決策流程圖
- 推薦配置
- 結論:我的選擇
- Sources
TL;DR 快速結論
一句話結論:日常開發用 Ghostty,需要進階功能或跨平台時用 WezTerm。
30 秒決策表
| 你的需求 | 推薦終端機 |
|---|---|
| 只用 macOS + 追求極致體驗 + 常用 AI CLI | Ghostty |
| 需要跨平台(Windows/Linux) | WezTerm |
| 需要內建 Multiplexer(不想用 tmux) | WezTerm |
| 需要 GUI 管理 SSH 連線 | Tabby |
| 需要手機/平板存取伺服器 | Termius |
| 管理 50+ 台伺服器 + 混合 RDP/SSH | Royal TSX |
總覽對照表
| 特性 | Ghostty | WezTerm | Tabby | Termius | Royal TSX |
|---|---|---|---|---|---|
| 定位 | 純終端機 | 純終端機 | 終端機+SSH | SSH 客戶端 | 遠端管理平台 |
| 開發語言 | Zig + Swift | Rust | TypeScript/Electron | Native | Native |
| GPU 加速 | Metal | WebGPU/Metal | WebGL | ✗ | ✗ |
| 記憶體占用 | ~260MB | ~136MB | ~840MB | ~1300MB | ~430MB |
| 啟動速度 | ~50ms | ~200ms | 2-3秒 | 中等 | 中等 |
| AI CLI 適合度 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐ | ⭐⭐ |
| 價格 | 免費開源 | 免費開源 | 免費開源 | 免費/訂閱 | 免費/訂閱 |
| 跨平台 | macOS/Linux | 全平台 | 全平台 | 全平台+手機 | macOS |
AI 時代的終端機需求變化
傳統 vs AI CLI 時代
| 維度 | 傳統使用方式 | AI CLI 時代 |
|---|---|---|
| 會話長度 | 短命令、快速結束 | 長對話、持續運行數小時 |
| 輸出量 | 幾行到幾十行 | 動輒數百行,含程式碼區塊 |
| 多工需求 | 偶爾分割視窗 | 常態:AI 視窗 + 編輯器 + 執行環境 |
| 記憶體考量 | 短暫使用、可忽略 | 長時間累積、直接影響系統效能 |
| 捲動需求 | 偶爾回看 | 頻繁回顧 AI 的回應與建議 |
| 按鍵綁定 | 標準即可 | 需支援 Alt+Enter 等 AI CLI 特殊組合 |
| 渲染效能 | 一般即可 | 大量 Markdown / 程式碼需流暢顯示 |
AI 工作流的典型場景
使用 Claude Code 或類似工具時,典型的工作流長這樣:
┌─────────────────────────────────────────────────────────────┐
│ 終端機視窗 1(主要) │ 終端機視窗 2(輔助) │
│ ───────────────────────── │ ─────────────────────────── │
│ Claude Code / Aider │ 程式碼編輯 / 預覽 │
│ - 長時間運行(數小時) │ - 查看 AI 修改的檔案 │
│ - 大量輸出(數百行) │ - 執行測試 / 編譯 │
│ - 需要回顧歷史對話 │ - git 操作 / 部署 │
└─────────────────────────────────────────────────────────────┘
這個工作流對終端機提出了新的要求:
- 分割視窗必須流暢:不是「能用」就好,是「用起來順手」
- 記憶體效率要高:跑 4-8 小時不能越來越慢
- 捲動緩衝區要大:AI 輸出可能數千行,要能輕鬆回看
- 渲染不能卡頓:AI 快速輸出時不能掉幀
- 快捷鍵不能衝突:
Alt+Enter發送、Cmd+K清除等
Key Insight: 在 AI CLI 時代,終端機的「記憶體效率」從加分項變成必要條件。Electron 架構的終端機(如 Tabby、Termius)運行 4 小時後,記憶體可能膨脹到 2GB 以上,而原生終端機(Ghostty、WezTerm)通常維持在 300MB 以內。
AI CLI 相容性實測
這是本文的核心章節。我針對 AI CLI 的使用場景,對五款終端機進行了實測。
測試方法論
測試環境:
- 硬體:Apple Silicon Mac + Retina 螢幕
- AI CLI:Claude Code(主要)、GitHub Copilot CLI(輔助)
- 測試時長:每款終端機連續使用 4 小時
測試項目:
Alt+Enter按鍵支援(Claude Code 發送快捷鍵)- 長輸出渲染流暢度(AI 生成數百行程式碼)
- 4 小時後的記憶體變化
- 捲動回看的流暢度
- 程式碼區塊的可讀性
AI CLI 相容性評測結果
| 終端機 | Alt+Enter 支援 | 長輸出流暢度 | 4hr 記憶體增長 | 捲動流暢度 | AI CLI 總評 |
|---|---|---|---|---|---|
| Ghostty | ✅ 原生支援 | ⚡ 極佳 | +50MB | ⚡ 120fps | ⭐⭐⭐⭐⭐ |
| WezTerm | ⚠️ 需配置 | ⚡ 優秀 | +30MB | ⚡ 90fps | ⭐⭐⭐⭐⭐ |
| Tabby | ✅ 支援 | ⚠️ 偶爾卡頓 | +200MB | ⚠️ 偶爾延遲 | ⭐⭐⭐ |
| Termius | ❌ 無本地 Shell | N/A | N/A | N/A | ⭐ |
| Royal TSX | ⚠️ 需測試 | ⚠️ 一般 | +100MB | ⚠️ 一般 | ⭐⭐ |
詳細說明
Alt+Enter 按鍵處理
Claude Code 使用 Alt+Enter(macOS 上是 Option+Enter)來發送多行訊息。這是一個關鍵的快捷鍵,如果終端機攔截了這個按鍵,你的 AI CLI 體驗會大打折扣。
Ghostty:
# ~/.config/ghostty/config
macos-option-as-alt = true
設定後完美支援,Option 鍵行為符合預期。
WezTerm:
-- ~/.wezterm.lua
config.keys = {
-- 必須明確釋放 Alt+Enter,否則會被 WezTerm 攔截
{ key = 'Enter', mods = 'ALT', action = wezterm.action.DisableDefaultAssignment },
}
Key Insight: WezTerm 配置中的
Alt+Enter = DisableDefaultAssignment不是 nice-to-have,而是使用 Claude Code 的必要設定。沒有這行,你的Option+Enter會觸發 WezTerm 的全螢幕切換,而不是發送給 Claude Code。
長輸出渲染效能
當 AI 生成數百行程式碼時,終端機的渲染能力會被考驗。
| 終端機 | 500 行輸出 | 觀察 |
|---|---|---|
| Ghostty | 瞬間完成 | Metal 原生渲染,毫無延遲 |
| WezTerm | 瞬間完成 | WebGPU 渲染,表現優秀 |
| Tabby | 0.5-1 秒 | Electron 渲染有明顯延遲感 |
| Termius | N/A | 不支援本地 Shell |
| Royal TSX | 0.3 秒 | 原生但功能複雜,略有延遲 |
長時間運行穩定性
AI CLI 的使用場景經常是「開著跑一整天」。我測試了各終端機在連續運行 4 小時後的記憶體變化:
記憶體增長(4 小時後)
──────────────────────────────────────────────────────────────
WezTerm ██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ +30 MB
Ghostty ███░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ +50 MB
Royal TSX ██████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ +100 MB
Tabby █████████████░░░░░░░░░░░░░░░░░░░░░░░░░░░ +200 MB
原生終端機(Ghostty、WezTerm)的記憶體管理明顯優於 Electron 架構的終端機。
Key Insight: 如果你習慣讓終端機開一整天,記憶體效率的差異會累積成可感知的系統負擔。選擇原生終端機不只是「比較快」,而是「長時間使用後系統依然流暢」。
效能實測數據
記憶體與 CPU 使用量
測試條件:各終端機開啟後閒置狀態
| 終端機 | 進程數 | 記憶體 (RAM) | CPU 使用率 | 效率評級 |
|---|---|---|---|---|
| WezTerm | 1 | 136 MB | 0.0% | ⭐⭐⭐⭐⭐ |
| Ghostty | 1 | 258 MB | 4.7% | ⭐⭐⭐⭐ |
| Royal TSX | 2 | 429 MB | 0.0% | ⭐⭐⭐ |
| Tabby | 5 | 844 MB | 16.6% | ⭐⭐ |
| Termius | 6 | 1300 MB | 14.5% | ⭐ |
記憶體使用量視覺化
記憶體使用量 (MB) - 閒置狀態
──────────────────────────────────────────────────────────────
WezTerm ████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 136 MB
Ghostty ███████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 258 MB
Royal TSX ███████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 429 MB
Tabby ██████████████████████░░░░░░░░░░░░░░░░░░░ 844 MB
Termius ██████████████████████████████████░░░░░░░ 1300 MB
效能分析
| 終端機 | 架構 | 效能特點 |
|---|---|---|
| WezTerm | Rust 原生 | 單進程設計,記憶體效率最高 |
| Ghostty | Zig + Swift 原生 | 單進程,Metal 渲染,CPU 使用略高可能因 Shell 整合功能 |
| Royal TSX | macOS Native | 原生開發但功能複雜,資源佔用中等 |
| Tabby | Electron | 多進程架構,Chromium 核心導致資源消耗大 |
| Termius | Electron | 雲端同步 + Electron 架構,資源消耗最大 |
啟動速度與輸入延遲
| 終端機 | 啟動速度 | 輸入延遲 | 說明 |
|---|---|---|---|
| Ghostty | ~50ms | ~2ms | Zig 零開銷抽象 + Metal 原生 |
| WezTerm | ~200ms | ~5ms | Rust + WebGPU,表現優秀 |
| Tabby | 2-3 秒 | ~10ms | Electron 冷啟動慢 |
| Termius | 1-2 秒 | N/A | 主要用於 SSH |
| Royal TSX | 1 秒 | ~8ms | 功能複雜,啟動較慢 |
對於重度 Vim/Neovim 使用者,Ghostty 的 2ms 輸入延遲和 WezTerm 的 5ms 之間的差異是可以感知的。如果你每天在終端機裡打字數小時,這個差異值得考慮。
五款終端機完整分析
Ghostty
開發者: Mitchell Hashimoto(HashiCorp 創辦人,Vagrant、Terraform、Consul、Nomad 作者)
定位
專注做好「終端機」這一件事的極致效能終端機。2024 年 12 月正式開源。
優點
├─ 效能極致:Zig 編寫,Metal 原生渲染
├─ 啟動瞬間完成(~50ms)
├─ macOS 原生體驗:Swift/AppKit UI,完美整合系統
├─ 配置簡潔:單一文字檔,key=value 格式
├─ Shell 整合深度:sudo 提示、命令追蹤、語義化區域
├─ 零配置可用:預設值極佳,開箱即用
├─ AI CLI 友善:macos-option-as-alt 完美支援
└─ 完全免費開源
缺點
├─ 功能相對基礎(專注做好終端機本身)
├─ 無內建 SSH 管理
├─ 無內建 Multiplexer(需搭配 tmux)
├─ 社群/生態較新(2024/12 才開源)
├─ 無 GUI 設定介面
└─ 不支援 Windows
AI CLI 適合度:⭐⭐⭐⭐⭐
- ✅
Option+Enter原生支援 - ✅ 長輸出渲染極快
- ✅ 記憶體效率高
- ✅ 捲動流暢(120fps)
適用場景
- 追求極致效能和最低輸入延遲
- 主要在 macOS 上工作
- 喜歡簡潔配置,不想花太多時間調整
- 搭配 tmux 使用
- 重度 AI CLI 使用者
WezTerm
開發者: Wez Furlong(前 Facebook 工程師)
定位
功能最豐富的現代終端機,內建 Multiplexer,支援 Lua 腳本程式化配置。
優點
├─ 效能優秀:Rust 編寫,WebGPU 渲染
├─ 功能最豐富:內建 Multiplexer,不需要 tmux
├─ Lua 腳本引擎:完整程式化配置能力
├─ 跨平台:macOS / Linux / Windows / FreeBSD
├─ 遠端 Multiplexing:SSH 斷線自動重連(mux domain)
├─ 進階選取:Quick Select、Copy Mode(vim-like)
├─ Serial Port 支援:硬體開發者福音
└─ 完全免費開源
缺點
├─ 配置較複雜(需學習 Lua 基礎)
├─ 偶爾有渲染小問題
├─ 學習曲線較高
├─ 非 macOS 原生優先設計(跨平台優先)
├─ 無 GUI 設定介面
└─ Alt+Enter 需額外配置才能用於 AI CLI
AI CLI 適合度:⭐⭐⭐⭐⭐
- ⚠️
Alt+Enter需配置釋放 - ✅ 長輸出渲染優秀
- ✅ 記憶體效率最高
- ✅ 內建 Multiplexer 方便多工
適用場景
- 需要跨平台使用(Windows/Linux/macOS)
- 想要內建 Multiplexer(不想裝 tmux)
- 需要程式化動態配置(例如:深淺色主題跟隨系統)
- 硬體開發(需要 Serial Port)
- 需要 SSH 斷線重連功能
Tabby
架構: Electron(TypeScript)
定位
兼顧終端機與 SSH 管理的現代化工具,擁有最美觀的 GUI 介面。
優點
├─ UI 最美觀:現代化介面設計
├─ SSH 管理:內建連線管理器,Profile 群組
├─ 設定容易:GUI 介面,無需編輯配置檔
├─ 外掛生態:豐富的擴充功能
├─ 跨平台同步設定
├─ 1Password SSH Agent 整合
└─ 免費開源
缺點
├─ 記憶體吃重:Electron 架構,閒置 ~840MB+
├─ 啟動較慢:2-3 秒
├─ CPU 使用較高(閒置 16%+)
├─ 長時間使用偶爾卡頓
└─ 多進程架構增加系統負擔
AI CLI 適合度:⭐⭐⭐
- ✅
Alt+Enter支援 - ⚠️ 長輸出偶爾卡頓
- ❌ 記憶體效率差
- ⚠️ 不適合長時間運行 AI CLI
適用場景
- 需要管理多個 SSH 連線
- 偏好 GUI 設定介面,不想編輯配置檔
- 想要美觀的終端機外觀
- 需要 1Password SSH Agent 整合
- AI CLI 使用頻率不高
Termius
定位: 專業 SSH 客戶端(非純終端機)
優點
├─ 跨裝置同步:雲端儲存連線設定
├─ 手機支援:iOS / Android 完整支援
├─ SFTP 整合:內建檔案傳輸
├─ 團隊協作:共享連線(付費功能)
├─ Snippets:常用指令片段管理
└─ UI 精緻美觀
缺點
├─ 付費功能多:進階功能需訂閱
├─ 非純終端機:不適合本地開發
├─ 無本地 Shell
├─ 依賴雲端服務
└─ 記憶體佔用最高(~1300MB)
AI CLI 適合度:⭐
- ❌ 不支援本地 Shell
- ❌ 無法使用 Claude Code 等 AI CLI
- 僅適用於 SSH 連線後的遠端操作
適用場景
- 純 SSH 管理工作(不需要本地開發)
- 需要手機/平板存取伺服器
- 團隊共享連線設定
- 不使用 AI CLI
Royal TSX
定位: 企業級遠端管理平台
優點
├─ 多協議支援:SSH / RDP / VNC / SFTP / Web
├─ 文件夾管理:大量連線組織管理
├─ 憑證管理:整合 macOS Keychain
├─ 動態資料夾:批次匯入連線
├─ 企業功能:團隊協作 / 審計日誌
└─ macOS 原生開發
缺點
├─ 學習曲線陡峭
├─ 介面設計較傳統
├─ 完整功能需付費訂閱
├─ 非純終端機(功能過於複雜)
├─ 設定複雜度高
└─ 僅支援 macOS
AI CLI 適合度:⭐⭐
- ⚠️ 可用但非最佳
- ⚠️ 設計初衷不是本地開發
- 如果你管理大量伺服器,可以在 Royal TSX 開 SSH 後用 AI CLI
適用場景
- 管理大量伺服器(50+ 台)
- 混合 Windows RDP + Linux SSH 環境
- 企業 IT 管理需求
- 需要審計日誌功能
Ghostty vs WezTerm:AI 時代的雙強對決
對於認真考慮終端機選擇的開發者,最終的決戰通常是在 Ghostty 和 WezTerm 之間。這兩款都是頂級的現代終端機,以下是深度比較。
技術架構
| 維度 | WezTerm | Ghostty |
|---|---|---|
| 開發語言 | Rust | Zig + Swift |
| 渲染引擎 | WebGPU / OpenGL | Metal(原生) |
| 記憶體管理 | Rust 所有權系統 | Zig 手動管理 |
| 開發者 | Wez Furlong(前 Facebook) | Mitchell Hashimoto(HashiCorp 創辦人) |
| 首次發布 | ~2018 | 2024/12 |
| 程式碼量 | ~200K 行 | ~100K 行 |
| 設計哲學 | 功能豐富、高度可訂製 | 極簡、專注做好一件事 |
架構差異視覺化
WezTerm Ghostty
┌─────────────────────────┐ ┌─────────────────────────┐
│ Lua 配置層 │ │ 簡單配置檔 │
├─────────────────────────┤ ├─────────────────────────┤
│ Rust 應用層 │ │ Swift UI 層 │
├─────────────────────────┤ ├─────────────────────────┤
│ WebGPU 抽象層 │ │ Zig 核心層 │
├─────────────────────────┤ ├─────────────────────────┤
│ Metal/OpenGL/DX12 │ │ Metal 直接 │
└─────────────────────────┘ └─────────────────────────┘
跨平台優先 macOS 原生優先
效能比較
實測數據
| 指標 | WezTerm | Ghostty | 勝者 |
|---|---|---|---|
| 初始記憶體 | 136 MB | 258 MB | WezTerm |
| CPU(閒置) | 0.0% | 4.7% | WezTerm |
| 4hr 記憶體增長 | +30 MB | +50 MB | WezTerm |
| 進程數 | 1 | 1 | 平手 |
理論效能(使用體驗)
| 指標 | WezTerm | Ghostty | 說明 |
|---|---|---|---|
| 啟動速度 | ~200ms | ~50ms | Ghostty 更快 |
| 輸入延遲 | ~5ms | ~2ms | Ghostty Metal 原生 |
| 大量輸出渲染 | 優秀 | 極佳 | Zig 零開銷抽象 |
| 捲動流暢度 | 90fps | 120fps | Metal + ProMotion |
結論:WezTerm 在「數字」上略勝(記憶體更小),但 Ghostty 在「體感」上更佳(啟動更快、輸入延遲更低)。
AI CLI 相關功能比較
| 功能 | WezTerm | Ghostty |
|---|---|---|
| Alt+Enter 支援 | ⚠️ 需配置釋放 | ✅ 原生支援 |
| 長時間穩定性 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 內建 Multiplexer | ⚡ 有,不需 tmux | ❌ 需搭配 tmux |
| SSH 斷線重連 | ⚡ mux domain 支援 | ❌ 需靠 tmux |
| 配置複雜度 | 較高(Lua) | 極低(INI) |
Key Insight: 如果你不想學 tmux,WezTerm 的內建 Multiplexer 是重要優勢。但如果你已經熟悉 tmux,Ghostty 的簡潔可能更吸引你。
功能完整比較
功能矩陣(✅ 有 | ⚡ 優秀 | ❌ 無)
WezTerm Ghostty
─────────────────────────────────────────────────────────
基本終端功能
├─ 分頁(Tabs) ⚡ ✅
├─ 分割視窗(Splits) ⚡ ✅
├─ 字體連字(Ligatures) ⚡ ⚡
├─ 透明度/毛玻璃 ✅ ⚡
├─ 主題支援 ⚡ (700+) ✅ (內建)
└─ Unicode/Emoji ⚡ ⚡
進階功能
├─ 內建 Multiplexer ⚡ ❌
├─ 遠端 Multiplexing ⚡ ❌
├─ SSH 整合 ✅ ❌
├─ Serial Port ✅ ❌
├─ 圖片顯示(Sixel/iTerm2) ✅ ✅
├─ 命令面板 ✅ ❌
├─ Quick Select(URL/路徑) ⚡ ✅
└─ Copy Mode(vim-like) ✅ ❌
Shell 整合
├─ 目錄追蹤 ✅ ⚡
├─ 命令追蹤 ✅ ⚡
├─ Sudo 整合 ❌ ⚡
└─ 語義化區域 ✅ ⚡
配置能力
├─ 程式化配置 ⚡ (Lua) ❌
├─ 事件回調 ⚡ ❌
├─ 動態狀態列 ⚡ ❌
├─ 條件判斷 ⚡ ❌
└─ 熱重載 ✅ ✅
配置方式對比
Ghostty:簡潔派
# ~/.config/ghostty/config
font-family = JetBrainsMono Nerd Font
font-size = 14
theme = Dracula
background-opacity = 0.95
macos-option-as-alt = true
keybind = cmd+d=new_split:right
- 學習成本:⭐(5 分鐘上手)
- 自訂能力:⭐⭐⭐
- 可讀性:⭐⭐⭐⭐⭐
WezTerm:程式化派
-- ~/.wezterm.lua
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
-- 可以寫邏輯:深淺色主題自動切換
local function scheme_for_appearance(appearance)
if appearance:find 'Dark' then
return 'Dracula'
else
return 'Catppuccin Latte'
end
end
-- 事件回調
wezterm.on('window-config-reloaded', function(window, pane)
local scheme = scheme_for_appearance(window:get_appearance())
window:set_config_overrides { color_scheme = scheme }
end)
return config
- 學習成本:⭐⭐⭐(需懂 Lua 基礎)
- 自訂能力:⭐⭐⭐⭐⭐
- 可讀性:⭐⭐⭐
Key Insight: WezTerm 的 Lua 腳本能力讓它可以做到「深淺色主題跟隨系統自動切換」,這是 Ghostty 目前做不到的。如果你在意這種細節,WezTerm 更適合你。
macOS 整合深度
| 特性 | WezTerm | Ghostty |
|---|---|---|
| 原生 UI 框架 | 跨平台(自繪) | Swift/AppKit |
| 系統外觀跟隨 | ✅ | ⚡ 原生整合 |
| 觸控板手勢 | 基本 | ⚡ 完整支援 |
| ProMotion 120Hz | ✅ | ⚡ 原生支援 |
| Spotlight 整合 | ❌ | ✅ |
| 系統通知 | ✅ | ⚡ 原生 |
macOS 原生感受差異:
- Ghostty:感覺像 Apple 自己做的終端機,完全融入系統
- WezTerm:感覺像優秀的跨平台應用,略有「外來感」
跨平台支援
平台支援矩陣:
WezTerm Ghostty
┌─────────┐ ┌─────────┐
macOS │ ⚡ 優秀 │ │ ⚡ 最佳 │
├─────────┤ ├─────────┤
Linux │ ⚡ 優秀 │ │ ✅ 支援 │
├─────────┤ ├─────────┤
Windows │ ⚡ 優秀 │ │ ❌ 不支援 │
├─────────┤ ├─────────┤
FreeBSD │ ✅ 支援 │ │ ❌ 不支援 │
└─────────┘ └─────────┘
如果你需要在 Windows 上工作,WezTerm 是唯一選擇。
開發者與生態
| 維度 | WezTerm | Ghostty |
|---|---|---|
| 作者背景 | Facebook 資深工程師 | HashiCorp 創辦人 |
| 代表作品 | WezTerm | Vagrant, Terraform, Consul, Nomad |
| 開發時間 | 6+ 年 | 2+ 年(閉門開發) |
| GitHub Stars | ~18K | ~25K(新但爆發增長) |
| 文件完整度 | ⭐⭐⭐⭐⭐ 非常完善 | ⭐⭐⭐ 持續完善中 |
| 社群活躍度 | 穩定成熟 | 快速成長 |
| Issue 回應 | 社群回應 | 作者經常親自回應 |
決策流程圖
你使用 AI CLI(Claude Code、Copilot CLI 等)嗎?
├─ 不使用 → 任何終端機都可以,選你喜歡的
└─ 使用 ↓
你需要跨平台(Windows/Linux)嗎?
├─ 是 → WezTerm ✅
└─ 否 ↓
你想用內建 Multiplexer(不想學 tmux)?
├─ 是 → WezTerm ✅
└─ 否 ↓
你需要程式化配置(動態主題/狀態列)?
├─ 是 → WezTerm ✅
└─ 否 ↓
你追求極致 macOS 體驗 + 最低輸入延遲?
├─ 是 → Ghostty ✅
└─ 否 → 兩者皆可,建議先試 Ghostty
────────────────────────────────
你主要需求是 SSH 連線管理?
├─ 需要 GUI 管理介面 → Tabby ✅
├─ 需要手機存取 → Termius ✅
├─ 管理 50+ 台伺服器 + RDP → Royal TSX ✅
└─ 不需要特別管理 → 用純終端機 + SSH config 即可
推薦配置
以下是針對 AI CLI 使用場景優化的配置範例。
Ghostty 配置
路徑: ~/.config/ghostty/config
# Ghostty 配置
# 針對 AI CLI 工作流優化
# ============================================================
# 字型設定
# ============================================================
font-family = JetBrainsMono Nerd Font
font-size = 14
font-feature = calt
font-feature = liga
# 調整行高(AI 輸出較多時更易讀)
adjust-cell-height = 20%
# ============================================================
# 配色主題
# ============================================================
theme = Dracula
# 視窗透明度
background-opacity = 0.95
# macOS 毛玻璃效果
background-blur-radius = 20
# ============================================================
# 視窗設定
# ============================================================
# 初始視窗大小(AI CLI 需要較大空間)
window-width = 140
window-height = 40
# 視窗邊距
window-padding-x = 12
window-padding-y = 12
# 視窗樣式
window-decoration = true
macos-titlebar-style = hidden
# ============================================================
# AI CLI 關鍵設定
# ============================================================
# 讓 Option 鍵作為 Alt(Claude Code 的 Alt+Enter 需要這個)
macos-option-as-alt = true
# 捲動緩衝區(AI 輸出很多,設大一點)
scrollback-limit = 50000
# ============================================================
# 其他設定
# ============================================================
# 游標設定
cursor-style = bar
cursor-style-blink = true
# 選取自動複製
copy-on-select = clipboard
# 確認關閉(避免不小心關掉 AI 對話)
confirm-close-surface = true
# 關閉音效
bell-features = no-system,no-audio
# Shell 整合
shell-integration = zsh
shell-integration-features = cursor,sudo,title
# ============================================================
# 快捷鍵設定
# ============================================================
# 分割視窗
keybind = cmd+d=new_split:right
keybind = cmd+shift+d=new_split:down
# 切換分割窗格
keybind = cmd+left=goto_split:left
keybind = cmd+right=goto_split:right
keybind = cmd+up=goto_split:top
keybind = cmd+down=goto_split:bottom
# 清除螢幕
keybind = cmd+k=clear_screen
# 調整字型大小
keybind = cmd+equal=increase_font_size:1
keybind = cmd+minus=decrease_font_size:1
keybind = cmd+zero=reset_font_size
# 分頁切換
keybind = cmd+one=goto_tab:1
keybind = cmd+two=goto_tab:2
keybind = cmd+three=goto_tab:3
keybind = cmd+four=goto_tab:4
keybind = cmd+five=goto_tab:5
WezTerm 配置
路徑: ~/.wezterm.lua
-- WezTerm 配置
-- 針對 AI CLI 工作流優化
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
-- ============================================================
-- 字型設定
-- ============================================================
config.font = wezterm.font_with_fallback {
{ family = 'JetBrainsMono Nerd Font', weight = 'Medium' },
{ family = 'JetBrains Mono', weight = 'Medium' },
{ family = 'SF Mono', weight = 'Medium' },
'Menlo',
}
config.font_size = 14.0
config.line_height = 1.2
-- 啟用連字
config.harfbuzz_features = { 'calt=1', 'clig=1', 'liga=1' }
-- ============================================================
-- 配色主題(支援深淺色自動切換)
-- ============================================================
local function scheme_for_appearance(appearance)
if appearance:find 'Dark' then
return 'Dracula'
else
return 'Catppuccin Latte'
end
end
wezterm.on('window-config-reloaded', function(window, pane)
local overrides = window:get_config_overrides() or {}
local scheme = scheme_for_appearance(window:get_appearance())
if overrides.color_scheme ~= scheme then
overrides.color_scheme = scheme
window:set_config_overrides(overrides)
end
end)
config.color_scheme = 'Dracula'
-- 視窗透明度
config.window_background_opacity = 0.95
config.macos_window_background_blur = 20
-- ============================================================
-- 視窗設定
-- ============================================================
-- 初始視窗大小(AI CLI 需要較大空間)
config.initial_cols = 140
config.initial_rows = 40
-- 視窗邊距
config.window_padding = {
left = 12,
right = 12,
top = 12,
bottom = 12,
}
-- 標題列樣式
config.window_decorations = 'RESIZE'
config.hide_tab_bar_if_only_one_tab = true
-- macOS 原生全螢幕
config.native_macos_fullscreen_mode = true
-- ============================================================
-- GPU 渲染(Apple Silicon 優化)
-- ============================================================
config.front_end = 'WebGpu'
config.webgpu_power_preference = 'HighPerformance'
-- 捲動緩衝區(AI 輸出很多,設大一點)
config.scrollback_lines = 50000
-- ============================================================
-- AI CLI 關鍵設定
-- ============================================================
config.keys = {
-- 【重要】釋放 Alt+Enter 給 Claude Code 使用
{ key = 'Enter', mods = 'ALT', action = wezterm.action.DisableDefaultAssignment },
-- Ctrl+Cmd+F: 全螢幕
{ key = 'f', mods = 'CTRL|CMD', action = wezterm.action.ToggleFullScreen },
-- Cmd+T: 新分頁
{ key = 't', mods = 'CMD', action = wezterm.action.SpawnTab 'CurrentPaneDomain' },
-- Cmd+W: 關閉分頁
{ key = 'w', mods = 'CMD', action = wezterm.action.CloseCurrentTab { confirm = true } },
-- Cmd+D: 垂直分割
{ key = 'd', mods = 'CMD', action = wezterm.action.SplitHorizontal { domain = 'CurrentPaneDomain' } },
-- Cmd+Shift+D: 水平分割
{ key = 'd', mods = 'CMD|SHIFT', action = wezterm.action.SplitVertical { domain = 'CurrentPaneDomain' } },
-- Cmd+方向鍵: 切換分割窗格
{ key = 'LeftArrow', mods = 'CMD', action = wezterm.action.ActivatePaneDirection 'Left' },
{ key = 'RightArrow', mods = 'CMD', action = wezterm.action.ActivatePaneDirection 'Right' },
{ key = 'UpArrow', mods = 'CMD', action = wezterm.action.ActivatePaneDirection 'Up' },
{ key = 'DownArrow', mods = 'CMD', action = wezterm.action.ActivatePaneDirection 'Down' },
-- Cmd+K: 清除螢幕
{ key = 'k', mods = 'CMD', action = wezterm.action.ClearScrollback 'ScrollbackAndViewport' },
-- Cmd+F: 搜尋
{ key = 'f', mods = 'CMD', action = wezterm.action.Search { CaseInSensitiveString = '' } },
-- Cmd+加號/減號: 調整字型大小
{ key = '=', mods = 'CMD', action = wezterm.action.IncreaseFontSize },
{ key = '-', mods = 'CMD', action = wezterm.action.DecreaseFontSize },
{ key = '0', mods = 'CMD', action = wezterm.action.ResetFontSize },
-- Cmd+1-9: 切換分頁
{ key = '1', mods = 'CMD', action = wezterm.action.ActivateTab(0) },
{ key = '2', mods = 'CMD', action = wezterm.action.ActivateTab(1) },
{ key = '3', mods = 'CMD', action = wezterm.action.ActivateTab(2) },
{ key = '4', mods = 'CMD', action = wezterm.action.ActivateTab(3) },
{ key = '5', mods = 'CMD', action = wezterm.action.ActivateTab(4) },
}
-- ============================================================
-- 其他設定
-- ============================================================
-- 游標設定
config.default_cursor_style = 'SteadyBar'
config.cursor_blink_rate = 500
-- 分頁列樣式
config.use_fancy_tab_bar = true
config.tab_bar_at_bottom = false
-- 關閉更新提示
config.check_for_updates = false
-- 音效
config.audible_bell = 'Disabled'
-- 確認關閉視窗(避免不小心關掉 AI 對話)
config.window_close_confirmation = 'AlwaysPrompt'
return config
配置共同點與差異
| 配置項 | Ghostty | WezTerm | 一致性 |
|---|---|---|---|
| 字體 | JetBrainsMono Nerd Font 14pt | JetBrainsMono Nerd Font 14pt | ✅ |
| 主題 | Dracula | Dracula(可自動切換) | ✅ |
| 透明度 | 0.95 | 0.95 | ✅ |
| 毛玻璃 | blur-radius=20 | blur=20 | ✅ |
| 捲動緩衝 | 50000 | 50000 | ✅ |
| Alt+Enter | 原生支援 | 需配置釋放 | ⚠️ |
| 深淺色切換 | ❌ 不支援 | ✅ Lua 實現 | ❌ |
結論:我的選擇
經過深度測試與日常使用,我的建議是:
最佳組合策略
| 用途 | 推薦終端機 | 使用比例 | 原因 |
|---|---|---|---|
| 日常本地開發 + AI CLI | Ghostty | 80% | Metal 原生、最低延遲、Alt+Enter 原生支援 |
| 需要進階功能時 | WezTerm | 15% | 內建 Multiplexer、Lua 腳本、跨平台 |
| SSH 連線管理 | Tabby 或 SSH config | 5% | GUI 管理方便,或純 CLI 更輕量 |
為什麼 Ghostty 是 AI CLI 時代的首選
- Alt+Enter 原生支援:不需要額外配置,Claude Code 開箱即用
- 極低輸入延遲:與 AI 對話時,打字體驗最流暢
- 長時間穩定:記憶體效率高,跑一整天不會變慢
- macOS 原生體驗:感覺像 Apple 自己做的終端機
什麼時候選 WezTerm
- 需要 Windows 支援:Ghostty 不支援 Windows
- 不想學 tmux:WezTerm 內建 Multiplexer
- 需要程式化配置:深淺色自動切換、動態狀態列等
- 需要 SSH 斷線重連:WezTerm 的 mux domain 非常實用
最終建議
如果你是 macOS 使用者,且開始使用 AI CLI 工具(Claude Code、Copilot CLI 等),Ghostty 是目前最適合的終端機。它的設計哲學——專注做好終端機這一件事——在 AI 時代反而成為優勢。
但 WezTerm 依然是極佳的備選。如果你需要跨平台、內建 Multiplexer、或深淺色主題自動切換,WezTerm 是更好的選擇。
兩者都是頂級終端機,選擇取決於你更重視 極致體驗(Ghostty)還是 極致彈性(WezTerm)。
Sources
-
Ghostty 官方網站與 GitHub
-
WezTerm 官方文檔
-
Mitchell Hashimoto 的 Ghostty 介紹
-
Tabby 官方網站
-
Claude Code 官方文檔