AI 進入終端機:2025 開發者終端機選擇指南

🌏 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 年做出最適合的選擇。


目錄

  1. TL;DR 快速結論
  2. AI 時代的終端機需求變化
  3. AI CLI 相容性實測
  4. 效能實測數據
  5. 五款終端機完整分析
  6. Ghostty vs WezTerm:AI 時代的雙強對決
  7. 決策流程圖
  8. 推薦配置
  9. 結論:我的選擇
  10. 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 操作 / 部署             │
└─────────────────────────────────────────────────────────────┘

這個工作流對終端機提出了新的要求:

  1. 分割視窗必須流暢:不是「能用」就好,是「用起來順手」
  2. 記憶體效率要高:跑 4-8 小時不能越來越慢
  3. 捲動緩衝區要大:AI 輸出可能數千行,要能輕鬆回看
  4. 渲染不能卡頓:AI 快速輸出時不能掉幀
  5. 快捷鍵不能衝突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 小時

測試項目

  1. Alt+Enter 按鍵支援(Claude Code 發送快捷鍵)
  2. 長輸出渲染流暢度(AI 生成數百行程式碼)
  3. 4 小時後的記憶體變化
  4. 捲動回看的流暢度
  5. 程式碼區塊的可讀性

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 時代的首選

  1. Alt+Enter 原生支援:不需要額外配置,Claude Code 開箱即用
  2. 極低輸入延遲:與 AI 對話時,打字體驗最流暢
  3. 長時間穩定:記憶體效率高,跑一整天不會變慢
  4. macOS 原生體驗:感覺像 Apple 自己做的終端機

什麼時候選 WezTerm

  1. 需要 Windows 支援:Ghostty 不支援 Windows
  2. 不想學 tmux:WezTerm 內建 Multiplexer
  3. 需要程式化配置:深淺色自動切換、動態狀態列等
  4. 需要 SSH 斷線重連:WezTerm 的 mux domain 非常實用

最終建議

如果你是 macOS 使用者,且開始使用 AI CLI 工具(Claude Code、Copilot CLI 等),Ghostty 是目前最適合的終端機。它的設計哲學——專注做好終端機這一件事——在 AI 時代反而成為優勢。

但 WezTerm 依然是極佳的備選。如果你需要跨平台、內建 Multiplexer、或深淺色主題自動切換,WezTerm 是更好的選擇。

兩者都是頂級終端機,選擇取決於你更重視 極致體驗(Ghostty)還是 極致彈性(WezTerm)。


Sources

  1. Ghostty 官方網站與 GitHub

  2. WezTerm 官方文檔

  3. Mitchell Hashimoto 的 Ghostty 介紹

  4. Tabby 官方網站

  5. Claude Code 官方文檔

Leave a Comment