WezTerm(ウェズターム)は、Wez Furlong氏がRustで開発しているMITライセンスのターミナルエミュレータです。Windows・macOS・Linuxで同じ設定ファイル(wezterm.lua)を使え、タブ・ペイン分割・SSH接続・WSL連携を本体だけでこなせます。この記事では、2026年10月時点の配布状況を踏まえた版の選び方から、インストール、設定ファイルの書き方、tmuxのようなワークスペースの使い方、日本語入力、WSL2とSSH、Windows Terminal・Alacritty・Ghosttyとの違いまでを、公式ドキュメントと安定版バイナリでの確認結果をもとに整理します。
まとめ:WezTermの要点
- 読み方は「ウェズターム」。作者Wez Furlong氏の名前に由来し、公式サイトの題名も「Wez’s Terminal Emulator」です。
- 安定版の最新は2024年2月3日の
20240203-110809-5046fc22です。以後の修正はnightlyビルドにだけ入っていて、nightlyはwinget・Homebrew・APTからも入れられます。 - 設定はホーム直下の
.wezterm.luaに書くのが公式推奨です。保存すると自動で再読み込みされます。長くなったら~/.config/wezterm/に分けてrequireで読み込みます。 - コピーは
CTRL+SHIFT+C、ペイン分割はCTRL+SHIFT+ALT+%です。ペインを閉じる既定キーは無いので、必要なら自分で割り当てます。 - tmuxのセッションに近い「ワークスペース」があり、leaderキーと組み合わせるとtmuxと同じ操作感で切り替えられます。
- Windowsでは
default_domain = 'WSL:Ubuntu'の1行で、起動直後からWSL2のシェルが開きます。SSHは~/.ssh/configのホストが自動で接続先に並びます。
WezTermの読み方・開発元・ライセンス
WezTermは「ウェズターム」と読みます。名前は開発者Wez Furlong氏の愛称「Wez」とterminalを組み合わせたもので、公式サイト(wezterm.org)の題名は「Wez’s Terminal Emulator」です。
ソースコードはGitHubの wezterm/wezterm リポジトリで公開されています。旧URLの wez/wezterm は現在このリポジトリへ転送されます。実装言語はRust、ライセンスはMITで、2026年10月時点のスター数は約2万9千です。MITなので業務PCへの導入や社内配布にライセンス費用はかかりません。
公式の機能一覧に載っている対応OSは、Linux・macOS・Windows 10以降・FreeBSD・NetBSDです。描画は既定でGPU(OpenGL)を使い、設定の front_end でWebGpuやCPU描画にも切り替えられます。タブ・ペイン分割・マルチプレクサ・SSHクライアントは本体に内蔵されています。tmuxやSSHクライアントを別に組み合わせなくても一通りそろう点が、ほかの軽量ターミナルとの大きな違いです。
安定版20240203とnightlyの選び方
WezTermを入れる前に知っておくべき事情があります。安定版の最終リリースは2024年2月3日の 20240203-110809-5046fc22 で、2026年10月まで2年8か月、新しい安定版が出ていません。開発自体は止まっておらず、mainブランチには2026年10月10日にもコミットがあり、GitHubのnightlyリリースは10月14日にも更新されていました。公式Change Logによれば、nightlyはコミットのたびと、少なくとも1日1回の定期ビルドで作られます。
公式のChange Logは、nightlyを「作者自身が普段使いしているため、たいていは入手できる中で最良の版」と説明しています。太字・淡色表示のコントラスト改善、X11でのファイルやURLのドラッグ&ドロップ、画面内容を読み取るエスケープシーケンス(DECRQCRA)の既定無効化など、2024年2月以降の変更はすべてnightlyにしか入っていません。
| 入手先 | 安定版 | nightly |
|---|---|---|
| 最新 | 20240203-110809-5046fc22 | mainから継続ビルド |
| winget | wez.wezterm | wez.wezterm.nightly |
| Homebrew | wezterm | wezterm@nightly |
| Ubuntu/Debian | apt install wezterm | apt install wezterm-nightly |
| Flathub | 配布あり | 配布なし |
wingetの wez.wezterm.nightly は自動更新ボットが追随していて、2026年10月15日時点の登録は10月5日のビルド(20261005-054844-37254829)でした。GitHubのnightlyよりは数日遅れます。
判断基準は次のとおりです。macOSとWindowsで安定版以降の修正が必要ならnightlyが候補ですが、動作不能や仕様変更の可能性があるため、利用するビルドで普段の作業を確認してから切り替えてください。社内の標準ツールとして配布する場合は、動作確認したビルドを固定して管理してください。Flathubから導入する場合は安定版になります。Linux(Wayland)は、どちらの版にも注意点があります。nightlyについては、Waylandのバックエンドを作り直している最中で普段より不安定な可能性がある、とChange Logに明記されています。一方、安定版にはHyprland 0.37.0以降で起動しない問題が残っていて、その修正はnightlyにしか入っていません。Waylandで起動や表示に問題が出たら、X11セッションで起動できるかを先に確かめてください。
WezTermのインストール手順(Windows・Mac・Ubuntu)
Windows:wingetでの導入と動作条件
64bit版のWindows 10(ビルド10.0.17763)以降が必要です。これより古いWindowsには、WezTermが使う疑似コンソール(ConPTY)がないため動きません。コマンドで入れるならwingetが手軽です。
winget install wez.wezterm
winget upgrade wez.wezterm
# nightlyを使う場合
winget install wez.wezterm.nightly
Scoop(extras バケット)とChocolatey(choco install wezterm -y)にも登録されています。管理者権限のないPCでは、公式サイトのzip版を展開して wezterm.exe を直接起動できます。zip版はUSBメモリに入れて持ち歩く使い方も想定されていて、wezterm.exe と同じフォルダに置いた wezterm.lua を優先して読み込みます。
macOS:Homebrew caskでの導入
Apple SiliconとIntelの両方で動くUniversalバイナリが配布されています。Homebrewなら次のとおりです。
brew install --cask wezterm
# nightlyを使う場合
brew install --cask wezterm@nightly
brew upgrade --cask wezterm@nightly --greedy-latest
nightlyは通常の brew upgrade では更新されないため、公式手順どおり --greedy-latest を付けます。以前の wezterm-nightly caskを入れている場合は、一度アンインストールしてから wezterm@nightly を入れ直してください。ターミナルから wezterm コマンドを使うには、/Applications/WezTerm.app/Contents/MacOS をPATHに追加します。
Ubuntu・Debian:公式APTリポジトリの登録
Ubuntu標準のリポジトリには入っていないため、公式ドキュメントにあるAPTリポジトリを登録します。
curl -fsSL https://apt.fury.io/wez/gpg.key | sudo gpg --yes --dearmor -o /usr/share/keyrings/wezterm-fury.gpg
echo 'deb [signed-by=/usr/share/keyrings/wezterm-fury.gpg] https://apt.fury.io/wez/ * *' | sudo tee /etc/apt/sources.list.d/wezterm.list
sudo chmod 644 /usr/share/keyrings/wezterm-fury.gpg
sudo apt update
sudo apt install wezterm
ほかのディストリビューションには、Flatpak(flatpak install flathub org.wezfurlong.wezterm)とAppImageがあります。Flatpak版はサンドボックス内で動くため、ペインのカレントディレクトリを調べる機能などが働きません。公式もFlatpakは「お試し用」と位置づけ、本格的に使うならネイティブパッケージを勧めています。普段の開発に使うならAPT版かAppImage版を選んでください。
wezterm.luaの場所と基本設定
設定ファイルを読み込む順番
WezTermは次の順に設定ファイルを探し、最初に見つかった1つだけを読み込みます(公式のConfigurationより)。
- 起動オプション
--config-fileで指定したファイル - 環境変数
WEZTERM_CONFIG_FILEが指すファイル - (Windowsのみ)
wezterm.exeと同じフォルダのwezterm.lua $XDG_CONFIG_HOME/wezterm/wezterm.lua$HOME/.config/wezterm/wezterm.lua$HOME/.wezterm.lua(Windowsは%USERPROFILE%\.wezterm.lua)
公式が最初に勧めているのは6番の ~/.wezterm.lua です。注意したいのは、.wezterm.lua を編集しているのに反映されない場合です。上位の ~/.config/wezterm/wezterm.lua が残っていると、そちらが優先されます。
最初に書く最小構成のwezterm.lua
公式のクイックスタートと同じ書き方で、フォント・配色・初期サイズを指定する例です。config_builder() は20230320版から使える関数で、存在しない設定名を書いたときに警告を出してくれます。
local wezterm = require 'wezterm'
local config = wezterm.config_builder()
config.font = wezterm.font_with_fallback {
'JetBrains Mono',
'HackGen Console',
}
config.font_size = 13.0
config.color_scheme = 'Tokyo Night'
config.initial_cols = 120
config.initial_rows = 32
return config
以降の章の設定例は、このファイルの return config より前に追加します。すでに同じ設定項目がある場合は、既存の定義へ統合してください。wezterm.target_triple でOSを判定すれば(Windowsは 'x86_64-pc-windows-msvc')、1つのファイルをWindows・Mac・Linuxで共用できます。dotfilesリポジトリで設定を管理している人には、ここがWezTermを選ぶ一番の理由になります。
設定の反映とリロード
設定項目 automatically_reload_config は既定で true です。読み込んだファイルを保存すると、たいていの設定はすぐに反映されます。手動で読み直すときは CTRL+SHIFT+R(macOSは Command+R)を押します。文法エラーがあるとエラー表示が出て、既定の設定で起動します。
公式は、設定ファイルが起動時とリロード時に何度も評価されることにも注意を促しています。ファイル内で外部プロセスを無条件に起動する書き方は避けてください。ウィンドウを開くたびにプロセスが増えていきます。
requireによる設定ファイルの分割
キー割り当てが増えてきたら、ファイルを分けると見通しがよくなります。WezTermはLuaのモジュール検索パスに ~/.config/wezterm と ~/.wezterm を入れているので、そこに置いたファイルは require で読めます。たとえば ~/.config/wezterm/keys.lua を作り、次の形で関数を返します(中身は次の「tmuxのように使う」章で示します)。
-- ~/.config/wezterm/keys.lua
local wezterm = require 'wezterm'
local act = wezterm.action
local module = {}
function module.apply_to_config(config)
-- ここにキー割り当てを書く
end
return module
本体側では return config の前に require('keys').apply_to_config(config) の1行を足します。ファイル名に .lua は付けません。分割したファイルを保存しても自動リロードは働くので、編集の手順は1ファイルのときと同じです。
プラグインの読み込みと更新
20230320版からプラグインの仕組みがあり、GitHubなどのURLを書くだけでLuaのパッケージを取り込めます(公式のPlugins)。
local a_plugin = wezterm.plugin.require 'https://github.com/owner/repo'
a_plugin.apply_to_config(config)
このコードのownerとrepoはプレースホルダーです。使用するプラグインの実際のリポジトリURLへ置き換え、呼び出し方と引数はそのプラグインのREADMEに従ってください。
初回の読み込みでリポジトリが複製され、既定ブランチの内容が使われます。プラグイン側が更新されても自動では取り込まれないため、CTRL+SHIFT+L で開くデバッグ画面のLua REPLで wezterm.plugin.update_all() を実行し、続けて wezterm.reload_configuration() で設定を再読み込みします。公開されているプラグインは、公式が紹介している awesome-wezterm にまとまっています。既定ブランチをそのまま取り込む仕組みなので、作者の更新で挙動が変わることがあります。社内で設定を配る場合は、プラグインに頼らず必要な部分を自分の設定ファイルに書いておくほうが安全です。
基本操作のショートカット:コピー・タブ・ペイン分割
設定を書かなくても、次のキー割り当てが最初から有効です(全一覧は公式のDefault Key Assignments)。表の「SUPER」はmacOSではCommandキー、WindowsではWindowsキーを指します。
| 操作 | Windows/Linux | macOS |
|---|---|---|
| コピー | CTRL+SHIFT+C | SUPER+C |
| 貼り付け | CTRL+SHIFT+V | SUPER+V |
| 新しいタブ | CTRL+SHIFT+T | SUPER+T |
| タブを閉じる | CTRL+SHIFT+W | SUPER+W |
| 左右に分割 | CTRL+SHIFT+ALT+% |
同左 |
| 上下に分割 | CTRL+SHIFT+ALT+" |
同左 |
| ペイン移動 | CTRL+SHIFT+矢印 | 同左 |
| ペインの最大化切替 | CTRL+SHIFT+Z | 同左 |
| 文字の拡大/縮小 | CTRL+= / CTRL+- | SUPER+= / SUPER+- |
| 全画面表示 | ALT+Enter | 同左 |
| コマンドパレット | CTRL+SHIFT+P | 同左 |
| コピーモード | CTRL+SHIFT+X | 同左 |
| QuickSelect | CTRL+SHIFT+Space | 同左 |
| 検索 | CTRL+SHIFT+F | SUPER+F |
Windowsのほかのターミナルと違い、CTRL+C だけではコピーされません。CTRL+C はそのままシェルに送られ、実行中のコマンドを止める操作になります。安定版(20240203)のバイナリで wezterm show-keys を実行して確かめたところ、ペインを閉じる既定キーと、ランチャーを開く既定キーはありませんでした。ペインはシェルで exit を打つか、次の章のように自分でキーを割り当てて閉じます。
いま有効な割り当ての一覧は wezterm show-keys --lua で確認できます。出力には独立した設定用のreturn文が含まれるため、この記事の設定へ組み込む際は、keys・key_tablesなど必要な項目を既存のconfigへ統合してください。
tmuxのように使う:leaderキーとワークスペース
leaderキーによる画面分割・ペイン操作の再割り当て
既定の分割キーは日本語配列だとShiftと数字の組み合わせになり、4キー同時押しで押しにくいのが難点です。tmuxに慣れているなら、プレフィックスキーに当たる leader を設定して割り当て直します(公式のKey Binding)。leaderを押すと既定で1,000ミリ秒だけ待ち受け状態になり、その間に押したキーは LEADER 付きの割り当てとして扱われます。
前の章で作った keys.lua の apply_to_config の中身を、次のように書きます。ワークスペース用の割り当ても先に入れてあります。
function module.apply_to_config(config)
config.leader = { key = 'a', mods = 'CTRL', timeout_milliseconds = 1000 }
config.keys = {
-- Ctrl+Aを2回押したらシェルへCtrl+Aを送る(行頭への移動を残す)
{ key = 'a', mods = 'LEADER|CTRL', action = act.SendKey { key = 'a', mods = 'CTRL' } },
{ key = '|', mods = 'LEADER|SHIFT', action = act.SplitHorizontal { domain = 'CurrentPaneDomain' } },
{ key = '-', mods = 'LEADER', action = act.SplitVertical { domain = 'CurrentPaneDomain' } },
{ key = 'x', mods = 'LEADER', action = act.CloseCurrentPane { confirm = true } },
-- ワークスペースの一覧をあいまい検索で開いて切り替える
{ key = 's', mods = 'LEADER', action = act.ShowLauncherArgs { flags = 'FUZZY|WORKSPACES' } },
-- 名前を入力して新しいワークスペースを作る
{
key = 'w',
mods = 'LEADER',
action = act.PromptInputLine {
description = 'New workspace name',
action = wezterm.action_callback(function(window, pane, line)
if line and line ~= '' then
window:perform_action(act.SwitchToWorkspace { name = line }, pane)
end
end),
},
},
{ key = 'n', mods = 'LEADER', action = act.SwitchWorkspaceRelative(1) },
{ key = 'p', mods = 'LEADER', action = act.SwitchWorkspaceRelative(-1) },
}
end
leaderに CTRL+A を選ぶと、シェルの「行頭へ移動」が使えなくなります。1行目の SendKey は、CTRL+A を2回押したときに本来の CTRL+A をシェルへ送るための割り当てで、公式の設定例と同じ形です。SplitHorizontal は左右、SplitVertical は上下に分割します。この設定は安定版20240203で読み込み、wezterm show-keys --lua の出力に各割り当てが並ぶことを確認しています。
ワークスペースの作成・切り替えと現在名の表示
WezTermにはtmuxのセッションに近い「ワークスペース」があります(公式のWorkspaces / Sessions)。ウィンドウごとに付いた名前の札のようなもので、画面に出るのはアクティブなワークスペースに属するウィンドウだけです。切り替えると、同じGUIウィンドウの中身が別のワークスペースのタブとペインに入れ替わります。
上の設定では、leader のあとに w で名前を入力して新規作成、s で一覧から選択、n/p で名前順に前後へ移動します。名前の入力欄(PromptInputLine)は20230408版から、ワークスペースの切り替え自体は20220319版から使えるので、どちらも安定版で動きます。いまどのワークスペースにいるかは、本体の wezterm.lua に次を足すとタブバーの右端に出ます。
wezterm.on('update-status', function(window, pane)
window:set_right_status(window:active_workspace() .. ' ')
end)
tmuxと違う点が1つあります。ワークスペースは手元のWezTermの中にある区切りなので、WezTermを終了すると中で動いていたシェルも終わります。作業中のセッションを終了後も残したいなら、SSHの章で説明するマルチプレクサ(SSHドメイン)を使うか、リモート側でtmuxを動かします。tmux自体の操作はtmuxの使い方と画面分割の解説で比較しています。
テーマ・フォント・背景の透過の設定
WezTermには1,000種類を超えるカラースキームが内蔵されていて(公式のColor Schemesページの掲載数は1001)、config.color_scheme = 'スキーム名' と書くだけで切り替わります。スキーム名は公式サイトの「Color Schemes」ページにプレビュー付きで並んでいて、たとえばTokyo Night系だけでも「Tokyo Night」「Tokyo Night Storm」「Tokyo Night Moon」「Tokyo Night Day」があります。名前は大文字・空白まで正確に書く必要があり、1文字違うと既定の配色に戻ります。
フォントは、JetBrains Mono・Nerd Font Symbols・Noto Color Emojiの3つが同梱されています。何も指定しなければJetBrains Monoで表示され、Nerd Fontsのアイコンや絵文字もフォントを追加せずに出ます。font_with_fallback に自分でフォントを並べても、同梱フォントのフォールバックは末尾に自動で付け足されるため、書き足す必要はありません。
背景を透かすには window_background_opacity を1.0(不透明・既定)より小さくします。ぼかしはOSごとに設定名が違います。
config.window_background_opacity = 0.85
-- macOS:背景をぼかす(20230326版から)
config.macos_window_background_blur = 20
-- Windows:アクリル効果(20230712版から)
config.win32_system_backdrop = 'Acrylic'
3行とも、対応しないOSでは効果がないだけで、エラーにはなりません。Windowsの 'Mica' と 'Tabbed' はWindows 11のビルド22621以降が対象で、公式は window_background_opacity = 0 との組み合わせを勧めています。公式は不透明度を1.0以外にすると描画性能に影響しうると書いていて、'Acrylic' はほかの効果より多くのリソースを使います。ノートPCのバッテリー駆動時に重く感じたら、まず透過をやめてください。X11では、透過にコンポジットに対応したウィンドウマネージャーが必要な場合があります。
日本語入力と日本語フォントの設定
OS別のIME設定と変換中の操作
IME(日本語入力)は、現行の安定版では対応するすべての環境で既定で有効です(use_ime = true)。既定値が全OSで有効になったのは20220319版、Waylandへの対応は20220807版からです。Windowsは常に有効で無効にできません。OSごとの前提は次のとおりです。
- macOS:追加設定なしで入力できます。変換中にCtrlキーの操作がIMEに届かない場合は、
config.macos_forward_to_ime_modifier_mask = 'SHIFT|CTRL'を試します。公式は日本語IMEの利用者向けにこの値を挙げつつ、Ctrlを使う一部のUNIX系キー操作が効かなくなると注意しています。 - Linux(X11):ibusやfcitxなどXIMに対応した入力エンジンが動いている必要があります。起動前に
XMODIFIERS=@im=ibusなどを設定します。 - Linux(Wayland):コンポジタが
zwp_text_input_v3に対応している必要があります。 - WSL2:入力はWindows側のIMEが処理するため、WSL内での追加設定は不要です。
use_ime を切り替えた場合は、リロードではなくWezTermの再起動が必要です。
日本語フォントのフォールバック指定
同梱のJetBrains Monoには日本語の字形がないため、日本語はOSの代替フォントで表示されます。代替フォントの組み合わせによっては、日本語と欧文の見た目の高さや罫線のつながりが気になる場合があります。表示が気になる場合は、インストール済みの等幅日本語フォントを font_with_fallback の2番目に指定し、文字や罫線の見え方を確認してください。
最小構成の例ではHackGen(白源)のHackGen Consoleを指定しています。使用するOS側にあらかじめインストールしてください。欧文はJetBrains Mono、和文はHackGen Consoleで表示されます。同梱のNerd Font Symbolsがアイコンを補うので、日本語フォントはNerd Fonts合成版(NF版)でなくてもかまいません。HackGenの入手方法と選び方はHackGen(白源)の導入とフォント選定の解説にまとめています。フォントが正しく当たっているかは、wezterm ls-fonts --text "あ" で実際に使われたフォントファイルを確認できます。
WindowsでWSL2・PowerShell・Git Bashを使い分ける設定
Windowsで何も設定しないと、WezTermは環境変数 %COMSPEC% のプログラム、つまり通常はコマンドプロンプト(cmd.exe)を開きます(公式のLaunching Programs)。普段使うシェルに合わせて、次のどちらかを設定します。
WSL2を既定にする場合は、WSLドメインを使います。WezTermは wsl -l -v の結果から、インストール済みのディストリビューションごとに「WSL:ディストリ名」という接続先を自動で作ります。名前欄が Ubuntu なら、次の1行で起動直後からUbuntuのシェルが開きます。
config.default_domain = 'WSL:Ubuntu'
config.launch_menu = {
{ label = 'PowerShell 7', domain = { DomainName = 'local' }, args = { 'pwsh.exe', '-NoLogo' } },
{ label = 'Git Bash', domain = { DomainName = 'local' }, args = { 'C:\\Program Files\\Git\\bin\\bash.exe', '-l' } },
}
default_prog = { 'wsl.exe' } で起動する方法より、WSLドメインを使うほうが便利です。公式によれば、WSLドメインではシェル統合によってWSL内のカレントディレクトリを追跡できるため、ペインを分割したときも同じディレクトリで開きます。ディストリビューション名は Ubuntu-24.04 のように版まで含むことがあるので、必ず wsl -l -v の表示どおりに書いてください。
launch_menu の各項目には domain = { DomainName = 'local' } を付けておきます。接続先の指定を省略すると現在のペインのドメインが使われるため、WSLのペインから選ぶとコマンドがWSLの中で実行され、環境によっては pwsh.exe やGit Bashが起動しません。タブバー右端の「+」ボタンを右クリックすると、WSLドメインと合わせてこのランチャーから選べます。
PowerShellを既定にする場合は、WSLドメインの1行の代わりに config.default_prog = { 'pwsh.exe', '-NoLogo' } を書きます。Windows PowerShell 5.1を使うなら 'powershell.exe' です。公式は %COMSPEC% 自体の書き換えは勧めていません。WSL2そのものの仕組みと導入手順はWSL2の仕組みとインストール方法の解説を参照してください。
WezTermでのSSH接続:wezterm sshとSSHドメイン
wezterm sshと~/.ssh/configの自動読み込み
一時的な接続なら wezterm ssh ユーザー名@ホスト名:ポート で新しいウィンドウにSSHセッションが開きます。~/.ssh/config と /etc/ssh/ssh_config の一部の項目も読み取り、足りない項目は -o で上書きできます。
20230408版からは、~/.ssh/config のホストが自動で接続先として登録されます。各ホストについて、普通のSSH接続の「SSH:ホスト名」と、次に説明するマルチプレクサ接続の「SSHMUX:ホスト名」の2つが作られます。ランチャーやコマンドパレットから選ぶだけで接続でき、設定ファイルに接続先を書き写す必要はありません。SSHの鍵やconfigの書き方はSSH接続の仕組みと公開鍵認証の解説で扱っています。
SSHドメインで切断後もセッションを残す条件
WezTermのマルチプレクサを使うと、tmuxのようにリモートのタブやペインを残したまま切断し、あとで再接続できます。条件はリモート側にも互換バージョンのWezTermがインストールされていることです(公式のMultiplexing)。
config.ssh_domains = {
{
name = 'dev',
remote_address = 'dev.example.com',
username = 'ubuntu',
},
}
この設定で wezterm connect dev を実行すると、リモートでWezTermのデーモンが起動し、タブやペインがローカルのウィンドウに表示されます。リモートにWezTermを入れられないサーバーでは multiplexing = 'None' を指定します。この場合は普通のSSH接続になり、接続が切れるとタブやペインも失われます。
本番サーバーのように余計なソフトを入れられない環境では、SSHドメインでセッションを残す方法は使えません。リモート側にtmuxがあるならtmuxに任せ、WezTermは表示に徹するほうが確実です。公式もマルチプレクサ機能を「まだ若い機能で急速に変化している」と書いています。
Windows Terminal・Alacritty・Ghosttyとの違い
| 項目 | WezTerm | Windows Terminal | Alacritty | Ghostty |
|---|---|---|---|---|
| 対応OS | Win/Mac/Linux/BSD | Windowsのみ | Win/Mac/Linux/BSD | Mac/Linux |
| 最新版 | 20240203(安定版) | 1.25(2026-10) | 0.17.0(2026-04) | 1.3.1(2026-03) |
| 設定形式 | Lua | settings.json+設定画面 | TOML | key = value形式 |
| タブ | あり | あり | macOSのみ | あり |
| ペイン分割 | あり | あり | なし | あり |
| セッション保持 | SSH/Unixドメイン | なし | なし | なし |
Windowsだけで使い、設定画面で済ませたい人にWezTermは勧めません。Windows TerminalはWindows 11では標準搭載され、Windows 10では別途インストールできます。プロファイルやWSLの切り替えも設定画面から操作できます。WezTermはすべてLuaで書くため、最初の設定に時間がかかります。Windows Terminalの最新版と機能はWindows Terminalの最新版1.25の新機能と更新手順で解説しています。
Alacrittyは「ほかのアプリと組み合わせる」方針で、ペイン分割が必要ならtmuxなどの外部ツールを併用します。設定ファイルは現在TOMLで、以前のYAMLは使われていません。Ghosttyは各OSのネイティブUIで動く点が特徴ですが、Windows版はありません。macOS中心ならGhosttyのショートカットと設定やiTerm2の使い方と設定も比較対象になります。
WezTermが向いているのは、Windows・Mac・Linuxをまたいで同じ設定を使いたい人と、SSHやWSLの接続先をターミナル側で管理したい人です。SSHドメインやUnixドメインによるセッション保持を本体の機能として持つ点は、この比較の中でWezTermだけの特徴です。その代わり、安定版の更新が止まっていることは受け入れる必要があります。
WezTermのよくある質問
WezTermは無料で商用利用できますか?
できます。WezTermのライセンスはMITで、GitHubリポジトリのLICENSE.mdに記載されています。MITは著作権表示とライセンス文を残せば、業務での利用、改変、再配布まで認めるライセンスです。有償版や機能制限のある無料版はなく、公式サイトからダウンロードできるものがすべてです。公式サイトには開発を支援するためのスポンサー募集ページがあります。
WezTermのSuperキーとは何ですか?
設定やキー割り当ての一覧に出てくる SUPER は、macOSではCommandキー、WindowsではWindowsキーを指します。Linuxでは、Super・Hyperと呼ばれるキーに対応することもあります。設定ファイルでは SUPER・CMD・WIN のどれを書いても同じ意味です。macOSで Command+T がタブ作成になるのは、この SUPER+T の割り当てによるものです。
設定を変えたのに反映されないのはなぜですか?
まず、編集しているファイルと実際に読み込まれているファイルが一致するか確認してください。WezTermは WEZTERM_CONFIG_FILE、~/.config/wezterm/wezterm.lua、~/.wezterm.lua の順に探し、最初に見つかった1つしか読みません。次に、安定版(20240203)で、それより新しい版に追加された設定項目を使っていないか、公式ドキュメントの各項目にある「Since: Version」の日付で確認してください。CTRL+SHIFT+L で開くデバッグ画面(ログとLuaのREPL)で、読み込み時のエラーを確認できます。
WezTermはNeovimと組み合わせて使えますか?
使えます。WezTermはtrue color(24bitカラー)に対応し、下線・二重下線・斜体・取り消し線といった文字装飾も描画できます。公式の機能一覧は、ほとんどのターミナルより多くの装飾に対応していると説明しています。Neovimのカラースキームは、24bitカラーを前提にしたものでもそのまま表示されます。Neovim側でペイン移動のキーをWezTermと共通化したい場合は、Luaで書いたキー割り当てからNeovimへキーを渡す設定が必要です。Neovim本体の設定はNeovim 0.12系への移行手順で解説しています。
WezTermのメニューを日本語化できますか?
できません。WezTermのメニュー・コマンドパレット・エラー表示は英語だけで、表示言語を切り替える設定はありません。ただし、ターミナル内の日本語の表示と入力は問題なく使えます。表示崩れが気になる場合は、日本語入力の章で紹介したフォントのフォールバック設定を行ってください。設定ファイルのコメントも日本語で書けます(UTF-8で保存します)。