iTerm2 から Ghostty に乗り換えた

はじめに

メインで使用するターミナルを Ghostty に乗り換えたので、設定手順や考えたこと、苦戦したことなどを残しておく。

Ghostty は、Hashicorp の創業者である Mitchell Hashimoto さん が作った OSS のターミナルエミュレータである。

Ghostty
Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.
Ghostty favicon ghostty.org
Ghostty
GitHub - ghostty-org/ghostty: 👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.
👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration. - ghostty-org/ghostty
GitHub - ghostty-org/ghostty: 👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration. favicon github.com
GitHub - ghostty-org/ghostty: 👻 Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.

まずは結論からということで、最終的なイメージは下記のようになった。

Ghostty Sample

インストール

私は macOS 端末では Homebrew 経由でインストールした。

$ brew install --cask ghostty

Ubuntu 端末も使うことがあるため、そちらでは下記コマンドでインストールした。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/mkasberg/ghostty-ubuntu/HEAD/install.sh)"

いずれも公式ドキュメントで記載されている方法をとった。他のパッケージマネージャーでインストールしたい場合はこちらを参照すると良いと思う。

Binaries and Packages - Install
Install Ghostty without building it manually by downloading and running a prebuilt binary or package.
Binaries and Packages - Install favicon ghostty.org
Binaries and Packages - Install

config ファイルの作成

Ghostty は、Zero config を謳ってはいる1ものの、自分が快適に作業を行うためにいろいろと設定をカスタマイズしたくなる。カスタマイズをするには、$XDG_CONFIG_HOME/ghostty/config, $HOME/.config/ghostty/config のパスにファイルを配置する必要がある。また、同じ設定を両者に記載した場合は前者が評価される。

設定値についての解説は後ほどとして、先に私が作成した設定ファイルを先に貼り付けておく。

dotfiles/ghostty_config at main · ega4432/dotfiles
@ega4432 's dotfiles. Contribute to ega4432/dotfiles development by creating an account on GitHub.
dotfiles/ghostty_config at main · ega4432/dotfiles favicon github.com
dotfiles/ghostty_config at main · ega4432/dotfiles
~/.config/ghostty/config
# General
cursor-style = bar
font-family = JetBrains Mono
font-feature = -dlig
font-feature = -calt
mouse-hide-while-typing = true
window-save-state = always
 
# macos settings
macos-titlebar-style = tabs
macos-titlebar-proxy-icon = hidden
macos-non-native-fullscreen = true
 
# quick terminal
quick-terminal-position = top
quick-terminal-screen = main
quick-terminal-animation-duration = 0.3
quick-terminal-autohide = true
 
# keybinds
keybind = global:ctrl+enter=toggle_quick_terminal
keybind = shift+enter=text:\n
 
# window settings
maximize = true
window-padding-balance = true
window-theme = ghostty
background-blur-radius = 20
background-opacity = 0.7
initial-window = false
quit-after-last-window-closed = false

カスタマイズした内容

Hotkey Window

iTerm2 では Hotkey Window といって設定したキーバインドでターミナルウィンドウを素早く表示/非表示できる機能があり、非常に便利だったため Ghostty でも同様の機能を実現したかった。

Hotkeys - Documentation - iTerm2 - macOS Terminal Replacement
iTerm2 is a replacement for Terminal and the successor to iTerm
Hotkeys - Documentation - iTerm2 - macOS Terminal Replacement favicon iterm2.com

Ghostty では Quick Terminal という機能で同等のことが実現できる。現状 ctrl + enter キーで window が開くように設定している。

# クイックターミナルを画面上部に表示
quick-terminal-position = top
# メインディスプレイに表示
quick-terminal-screen = main
# アニメーション速度(秒単位)
quick-terminal-animation-duration = 0.3
# フォーカスが外れたら自動的に非表示
quick-terminal-autohide = true
# 幅100%、高さ210pxで表示
quick-terminal-size = 100%,210px
 
# グローバルキーバインドで切り替え
keybind = global:ctrl+enter=toggle_quick_terminal
 
# 起動時にウィンドウを開かない
initial-window = false
# 最後のウィンドウを閉じてもアプリを終了しない
quit-after-last-window-closed = false

ただし、Quick Terminal にはいくつかの制約がある。全画面で広げることができず、画面上部のみ表示される点や、タブ機能が使えない点だ。そのため、複数のターミナルを同時に使いたい場合は、画面分割機能を活用している。私の場合は cmd + d で横の画面分割、cmd + shift + d で縦の画面分割で対応している。

前者については調べてみたところ GitHub discussion に起票があった。

Quick Terminal Fullscreen does not extend window height to fill screen · ghostty-org/ghostty · Discussion #7319
Issue Description The quick terminal window does not fully respect full screen setting in config. Screencap too large so here's a dropbox link: https://www.dropbox.com/scl/fi/v1cbkm67bibn0x5egfxgw/...
Quick Terminal Fullscreen does not extend window height to fill screen · ghostty-org/ghostty · Discussion #7319 favicon github.com
Quick Terminal Fullscreen does not extend window height to fill screen · ghostty-org/ghostty · Discussion #7319

また補足として、私の Ubuntu(GNOME + Wayland)環境だと、仕様上、画面最前面に常駐するドロップダウンウィンドウを作れない(Quick Terminal のような機能も含めて)ため、Hotkey Window 相当の常駐表示を諦めた。これは Wayland のセキュリティモデルとウィンドウマネージャの制約によるもので、Ubuntu 以外の Linux ディストリビューションでも同様の制限がある。

下記のディスカッションで記載されていた。

toggle_quick_terminal not working on gnome wayland · ghostty-org/ghostty · Discussion #3459
I have this setup in my config: keybind = global:f12=toggle_quick_terminal using gnome wayland; however, this is not working as desired. I wonder if it's possible to trigger it using a gnome keyboa...
toggle_quick_terminal not working on gnome wayland · ghostty-org/ghostty · Discussion #3459 favicon github.com
toggle_quick_terminal not working on gnome wayland · ghostty-org/ghostty · Discussion #3459

背景の透過

個人的にちょうど良さそうな透過度を設定した。背景を透過させた見た目が好きなのでこのように設定している。background-blur-radius を 0 にすることで、ぼかし効果をなくし、裏側の画面がうっすらと見えるようになる。

# 背景の透過度(0.0-1.0)
background-opacity = 0.7
# 背景のぼかし効果(0でぼかしなし)
background-blur-radius = 0

フォント

フォントは JetBrains Mono を使用している。また、font-feature で合字(リガチャ)を無効化している。-dlig は任意の合字、-calt は文脈に応じた代替文字を無効にする設定で、コードを書く際にそのままで表示させたいため設定している。

# フォントファミリー
font-family = JetBrains Mono
# 任意の合字を無効化
font-feature = -dlig
# 文脈に応じた代替文字を無効化
font-feature = -calt

その他細かい設定

上記以外にも、細かい設定をいくつか行っている。

# カーソルスタイルをバー型に
cursor-style = bar
# タイピング中はマウスカーソルを非表示
mouse-hide-while-typing = true
# ウィンドウの状態を常に保存
window-save-state = always
 
# macOS固有の設定
# タイトルバーをタブスタイルに
macos-titlebar-style = tabs
# タイトルバーのプロキシアイコンを非表示
macos-titlebar-proxy-icon = hidden
# ネイティブでないフルスクリーンモードを使用
macos-non-native-fullscreen = true
 
# ウィンドウ設定
# 起動時にウィンドウを最大化
maximize = true
# ウィンドウのパディングをバランスよく配置
window-padding-balance = true
# ウィンドウテーマ
window-theme = ghostty
 
# キーバインド
# Shift+Enterで改行を入力
keybind = shift+enter=text:\n

dotfiles に設定を追加

私は、mac, Linux の環境設定を dotfiles で管理しているので iTerm2 から Ghostty への変更も適用させておく。詳しくは GitHub にあげているので詳細は参照して欲しい。

2026/01 update by ega4432 · Pull Request #36 · ega4432/dotfiles
2026/01 update by ega4432 · Pull Request #36 · ega4432/dotfiles favicon github.com
2026/01 update by ega4432 · Pull Request #36 · ega4432/dotfiles
  1. Brewfile に追記
  2. Ghostty の config ファイルを追加
  3. dotfiles から ~/.config/ghostty/config へシンボリックリンクを貼る

まとめ

iTerm2 から Ghostty に乗り換えて、ターミナル環境を一通り乗り換えることができた。

iTerm2 と比較しても高速でストレスなく作業できている。設定ファイルがテキストベースで管理できるため、dotfiles で一元管理しやすい点も大きなメリットに感じている。 一方で、Quick Terminal が全画面表示できないなど、いくつかの発展途上感も否めない。今後のアップデートで改善されることに期待。

最後に余談になるが、X でバズっているこちらの post をご覧になっただろうか。you don't need to look at code anymore はバズ目的の誇張表現だとは思うが、AI 搭載の IDE の今後と、ターミナルだけを使った開発の動向について気になるところなので、まずは流行っている Ghostty を日常的に使いつつその感触を肌で感じていけたらなと思う。

参考

実践Claude Code入門―現場で活用するためのAIコーディングの思考法 エンジニア選書
(概要) ※この商品はリフロー型epubで作成されております。デバイスに合わせて文字の大きさやレイアウトが変更可能です。また,電子書籍内で検索をかけたり,マーカーを引いたり,自動読み上げを行うことも可能です。 本書は、Claude Codeの基本的な使い方からはじめ、スペック駆動開発をマスターすることで、大規模言語モデル(LLM)とソフトウェアエンジニアリングを統合する方法を解説した書籍です。Claude Codeをはじめとしたさまざまなコーディングエージェントは、単なる「魔法のようにコードを生成するAI機能」ではありません。LLMの自律的な推論能力とエージェントフレームワークの機能性を統合することで、要求の精緻化 → 達成するための計画立案 → タスクの実行 → 実行結果の検証というソフトウェア開発における一連の作業を効率化・最適化および自動化するためのツールなのです。 コーディングエージェントは、「ツールがAIを使うワークフロー時代」から「AIがツールを使うエージェント時代」へ転換するための代表的なAI製品と捉えることができます。チャットやワークフローの内部でAIを使うアーキテクチャの場合、一連の制御を人間が事前に想定して構築しておく必要があります。それに比べてエージェントは、AIがループし続けながら適切なタスクを推論し、ツールの選択と実行を繰り返します。―本書で取り扱うClaude Codeはコーディングエージェントという形で、その強力な仕組みを実行するフレームワークであるという点が核心となります。 よって、コーディングエージェントの利用用途はソフトウェア開発だけではなく、テキスト分析や多種多様なコンピューター処理を自動化ができる汎用エージェントでもあり、AIを活用した高速なプロトタイピングにおいて最適なツールとも言えます。 本書では、Claude Codeの基本的な使い方とMCPの活用について解説し、さらに、作りたい目的に沿ったソフトウェアの構築を達成するために、どのような工程・手順でClaude Codeを使ったらよいか、スペック駆動開発の具体的な手順を実践して理解できます。さらにClaude Code Actionによるレビュー自動化や、Claude Codeをより深く理解するための動作原理、Claude Codeでスペック駆動開発を実践するために便利な上級テクニックの実践、そしてスキルとサブエージェントの使い分けを解説しています。 (こんな方におすすめ) ・ソフトウェアエンジニア:開発生産性を向上させたい実務者 ・技術リーダー:チームにAIツールを導入したいマネージャー ・プロダクトマネージャー:AIを活用した開発プロセスを理解したい方 (目次) 第1部 手を動かして学ぶClaude Codeの基本  第1章 Claude Codeをソフトウェアエンジニアリングと統合する  第2章 Claude Codeの基礎  第3章 MCPを使いこなせ!  第4章 達人に学ぶスペック駆動開発  第5章 Claude Code Actionの活用 第2部 動作原理を理解して開発フローを仕組み化する  第6章 Claude Codeの動作原理を理解する  第7章 Claude Codeを意図通りに動かす  第8章 スペック駆動開発のフローを仕組み化する【設計編】  第9章 スペック駆動開発のフローを仕組み化する【実践編】  付録 各種サービスの設定手順 Anthropic社の概要・コンプライアンス・法的な規約 続きを読む
実践Claude Code入門―現場で活用するためのAIコーディングの思考法 エンジニア選書  favicon amazon.co.jp
実践Claude Code入門―現場で活用するためのAIコーディングの思考法 エンジニア選書
Claude CodeによるAI駆動開発入門
(概要) ※この商品はリフロー型epubで作成されております。デバイスに合わせて文字の大きさやレイアウトが変更可能です。また,電子書籍内で検索をかけたり,マーカーを引いたり,自動読み上げを行うことも可能です。 2025年5月末に一般リリースされたAnthropic社が提供している「Claude Code」は、コマンドライン上で動くLLMによるAI開発支援ツールです。これまでの開発エディタ一体型である「Github Copilot」や「Cursor」等他のAI開発支援ツールとは全く違う開発体験が一気にエンジニアに受け入れられ、AI開発のスタンダードになりつつあります。 本書は他の書籍に先駆けて、Claude Codeの豊富な使い方を解説します。さらに開発のためのおススメのワークフロー、そして実際に動くWebアプリをハンズオンで構築しながら、新しい開発パラダイムを体験的に学ぶ実践書です。従来の開発手法に慣れた開発者が、Claude Codeを使いこなしながらアプリケーション開発を行う「AI駆動開発」という新しい開発スタイルへスムーズに移行できるような実践的な入門書です! (こんな方におすすめ) ・AI駆動開発に興味があるが、実際に使ったことがない開発者 ・「Claude Codeで何ができるのか」を知りたいエンジニア (目次) Chapter1 Claude Code入門と開発環境構築  1.1 AI 支援開発の新時代  1.2 Claude Code の料金体系  1.3 アカウントの登録  1.4 Claude Code の環境構築とセットアップ  1.5 はじめてのClaude Code Chapter2 Claude CodeによるAI駆動開発の基礎5分でアプリケーションを作る  2.1 5分でアプリケーションを作る  2.2 小さなアプリケーションをデプロイする  2.3 UI のデバッグをさせる  2.4 テストコードを書いてもらう Chapter3 MCPを活用したAIチャットボット開発30分でAIチャットボットを作る  3.1 MCP サーバーに開発をサポートしてもらう  3.2 AI チャットボットを作る:要件定義編.md  3.3 タスクを管理しながら実装を行う  3.4 エラーの修正と管理・デプロイ  3.5 追加実装をGitHub Actions で行う Chapter4 並行処理とサブエージェントを使った開発手法半日で社内システムを開発する  4.1 コンテキストウィンドウを理解する 168  4.2 大きなシステムを開発するためのその他の知識  4.3 要件を考える  4.4 ガードレールを用意する  4.5 タスクを分割して実装してもらう  4.6 並行処理のコツとサブエージェント  4.7 カスタムスラッシュコマンドとHooks Chapter5 セキュリティと応用的な活用  5.1 Claude Code のセキュリティ設計を理解する  5.2 チーム開発での活用知識  5.3 Claude Code の応用的な使い方  5.4 Claude Code の今後の展望 続きを読む
Claude CodeによるAI駆動開発入門  favicon amazon.co.jp
Claude CodeによるAI駆動開発入門
iTerm2 から Ghostty に乗り換える
世間では Ghostty が賑わいを見せています。 ミーハーな僕もこのビッグウェーブに乗って iTerm2 から Ghostty に乗り換えることにしました。 今回はその記録です。 Ghostty Zig で書か
iTerm2 から Ghostty に乗り換える favicon engineering.konso.me
iTerm2 から Ghostty に乗り換える
Ghostty - 爆速で美しい、次世代ターミナル - izanami
Ghostty は Mitchell Hashimoto が Zig で開発した GPU アクセラレーション対応のターミナルエミュレータ。速度・機能・ネイティブ UI の 3 つを両立し、macOS では Metal、Linux では GTK4 を採用。シェル統合で作業効率が劇的
Ghostty - 爆速で美しい、次世代ターミナル - izanami favicon izanami.dev
Ghostty - 爆速で美しい、次世代ターミナル - izanami
Ghosttyのconfig大公開
Ghosttyのconfig大公開 favicon zenn.dev
Ghosttyのconfig大公開
GhosttyでiTerm2風のVisor(クイックターミナル)を設定する - Qiita
macOSのターミナルエミュレータとして人気の高いiTerm2には、グローバルホットキーで呼び出せるVisor機能があります。今回は、新しいターミナルエミュレータであるGhosttyで、同様の機能を実現する方法をご紹介します。 Ghosttyとは Ghosttyは、Zig...
GhosttyでiTerm2風のVisor(クイックターミナル)を設定する - Qiita favicon qiita.com
GhosttyでiTerm2風のVisor(クイックターミナル)を設定する - Qiita

Footnotes

  1. Ghostty is designed to work out of the box with no configuration for most users. Ghostty has sensible defaults, embeds a default font (JetBrains Mono), has built-in nerd fonts, and more. We are constantly challenging ourself as a project to eliminate any necessary configuration to use Ghostty. - ref. https://ghostty.org/docs/config#zero-configuration-philosophy