世界を動かす技術を、日本語で。

Ghostty – ターミナルエミュレーター

概要

Ghostty は、高速かつ多機能なクロスプラットフォーム対応の ターミナルエミュレーター です。 GPUアクセラレーションネイティブUI を活用し、快適な操作性を実現。 インストールも簡単で、 ゼロ設定 ですぐに利用可能。 豊富な テーマカスタマイズ性 を提供。 開発者向けの APIリファレンス も充実。

Ghosttyとは

  • Ghostty :高速・多機能・クロスプラットフォーム対応ターミナルエミュレーター
  • GPUアクセラレーションプラットフォームネイティブUI 採用
  • Windows / macOS / Linux対応

インストール方法

  • macOS :すぐに利用できるバイナリ提供
  • Linux :パッケージ利用またはソースからビルド
  • インストール後、追加設定不要ですぐ起動可能

主なドキュメント

  • キーバインド

    • 柔軟なカスタマイズ可能
    • 設定ファイルで keybind オプションを利用
  • カラーテーマ

    • 数百種類のテーマを内蔵
    • ライト/ダークモード別テーマ対応
    • 独自テーマの追加も可能
  • 設定

    • 数百項目以上の設定オプション
    • 外観や挙動を詳細にカスタマイズ
  • ターミナルAPI(VT)

    • ターミナルアプリケーション開発者向けリファレンス
    • ターミナル概念やサポートされる制御シーケンスを解説
  • GitHubで編集

    • ドキュメントは GitHub 上で編集・貢献可能

Ghosttyの特徴まとめ

  • 高速動作高いカスタマイズ性
  • 豊富なテーマ と直感的な設定
  • 開発者向けAPI情報 も完備
  • シンプルなインストール手順
  • オープンソース での開発・貢献環境

Hackerたちの意見

このターミナルの見た目は好きなんだけど、$TERM変数をハックしないとSSH(topやncduとか)が正しく動かないんだよね。なんかちょっとvibecodedな感じがするけど、実際はそうじゃない。ちょっと建設的な批評をすると、タイル状のターミナルを使ってるときに、一つを一時的にフルスクリーンにしたいって思うんだ。iTermではダブルクリックでできるし、i3wmではmod+fでできるから、これができないのが本当に切ない。これがなければ、すぐにでも切り替えたいんだけど(設定のどこかに埋もれてるかもしれないけど)。

自分のTERMを使うのは意図的なデザインの決定なんだ。ターミナルデータベースの修正方法は覚えてないけど、結構簡単だよ(お気に入りの検索エンジンやLLMが手伝ってくれるはず)。

TERMには、'ghostty:xterm-256color'みたいに、特異性が減少する順にターミナルタイプのリストが含まれていてほしいな。そうすれば、ghosttyがわからないシステムはxterm-256colorにフォールバックできるんだけど、その船はもうとっくに出てしまったね。

ありとあらゆる設定を試したけど、SSHはほとんどの場合壊れちゃうんだ。iTermはただ動くだけなのに。

ちょっと建設的な批評をすると、タイル状のターミナルを使ってるときに、一つを一時的にフルスクリーンにしたいって思うんだ。 それは、Ghostty 1.0から存在するtoggle_split_zoomバインディングを探してるんじゃないかな。macOSではデフォルトでcmd+shift+enterにバインドされてるし、iTermと同じバインディングだよ。メニューやコマンドパレットにも表示されてる。最近、ダブルクリックでズームできるようにするためのスプリットタイトルバーを追加したから、それはいいアイデアだね。ロードマップにその件を追加しておくよ。

これらのことについてあまり詳しくないので理由は分からないけど、リモートで機能豊富なターミナルエミュレーターとスムーズに動かすために、ほぼ常に$TERMをハックしなきゃいけなかった。例えば、Kittyやurxvtでも同様のハックが必要だったことがある(ただし、topやncduは問題なく動くみたい)。Linux上でターミナルアプリケーションが異なるターミナルエミュレーターを扱う方法がちょっと壊れているように感じる。これはGhosttyや特定のエミュレーターを非難するものではないと思う。

リモートシステムでterminfoを更新するのを忘れてたんじゃないかな。選んだターミナルが"xterm-256color"と互換性のない設定を必要とする場合、これをやらないといけないよ。Alacritty、kitty、weztermも同じで、xtermが実装してない機能を使ってるから、もしterminfo DBが古すぎてそれらが含まれてないならね。Alacrittyの例を挙げると、こんなファイルを使って、https://github.com/alacritty/alacritty/blob/master/extra/ala... 、それで tic -x -o "~/.terminfo" "that.info" を実行するんだ。これが30年も続いてるし、変わらないだろうね。

最近、いくつかのターミナルを試してみたんだけど、徐々にMacから移行中で、Ghosttyは好きだったけど、スクロールバックの検索ができないのが気に入らなかった。別のエディタを開いて同じことを試したけど、あんまり好きじゃなかった。WezTermは必要な機能が全部揃ってて、iTerm2に一番近いけど、再起動時にすべてのウィンドウとタブを復元できないのが残念。でも、まあ、そんなに重要な機能じゃないしね。プロンプトも完璧に表示されるし、他のターミナルみたいに小さなピクセルのズレもない。Kittyはなんで拒否したか覚えてない。Alacrittyは好きだけど、タブがないのは今は受け入れられない…それに、聞く前に言っとくけど、tmuxは大嫌い。基本的な機能を達成するのにもっとキーを押さなきゃいけないのが信じられない。なんでみんなそれを好きなのか理解できない。でも、人それぞれだよね。多分、Linux専用のターミナルに落ち着くと思うけど、まだLinuxワークステーションを持ってないから(ただのノートパソコン)、そのリサーチに必要な時間をかけてないんだ。何かおすすめがあれば教えてほしいな。

スクロールバック検索が来るよ。ナイトリー版で試してみて。

ナイトリービルドにはスクロールバック検索があるよ、もしそれが選択肢なら(ここ数ヶ月ずっと使ってるけど、今のところバグは見たことない): https://github.com/ghostty-org/ghostty/releases/tag/tip

Ghosttyにはスクロールバック機能があるよ!でも「tip」に切り替える必要がある。これは設定ファイルでできるよ。tipビルドは非常に安定していて、多くのバグが修正されている(いろんなメモリリークとか)。

個人的にはKittyが一番戻ってくるエミュレーターかな。主にカスタマイズ性が高くて、速くて、スリムで、リガチャーが使えて、イタリック用の別フォントがあって、マクロサポートが素晴らしくて、自動タイルペインをサポートしているから。

tmuxが大好きってわけじゃないけど、毎回使うコンピュータに入れてる設定ファイルがあって、それがめっちゃ快適なんだ。基本的に色んなマシンでターミナルにこもってるから、sshを使っても同じインターフェースでペインやタブを管理できるのは本当にありがたい。vim(正確にはneovim)をメインのエディタとして使ってるし、tmuxともうまく統合してるから、これがtmuxを気に入って使い続ける理由かもしれないね。

Kitty なんで拒否したのか覚えてないな。もう一度見直す価値あるかも? Kittyのパワーユーザーとは言えないけど、基本的に自分が求めることは全部できるし、クエイクスタイルのターミナルとしても使えるよ。[0] それに、キトゥンで拡張もできるし。[1] 次のリリースではスムーズスクロールも含まれるはずで、これが楽しみだな。特に一つの機能以上に、Kovid(Kittyのクリエイター)が新しいVTスタンダードをセンス良く追加して、21世紀のターミナルをより便利にしようと頑張ってるのが評価できる。

Alacrittyは好きだけど、タブがないのは今は受け入れられないな… それと、聞く前に言っとくけど、tmuxは大嫌い。別の選択肢として、タブはウィンドウマネージャに任せるのもありかも。

他にTerminologyについて言ってる人を見たことがないな。ちょっと変わったGUIフレームワーク(Enlightenment / EFL)を使ってるけど、それを除けば速いし、ターミナルに期待される機能はほぼ全部揃ってるよ:https://github.com/borisfaure/terminology 新しいターミナルとしての「瞬間」は10年以上前に過ぎ去ったけど、今でもちゃんと動いてる。特に、gregkhが使ってる(または使ってた)らしいよ:https://www.linuxfoundation.org/blog/blog/greg-kroah-hartman...

tmuxが好きなのは、エミュレーターのタブ以上のことができるから。リモートホストのセッションから切り離して、切断後もプロセスを動かし続けたり、別のPCでセッションを再開したりできるんだ。tmuxセッションを何度も切り替えるよりはタブを使うけど、結局はGUIを横並びに分割するためにtmuxを使ってる。

Footは一見の価値ありだよ。サービスが動いてない状態で、50ms未満で立ち上がる唯一のターミナルだし。ただ、ちゃんとしたウィンドウマネージャーを使わないと、全てのアプリでタブサポートが必要になっちゃうから注意してね。 ;)

このターミナルを使っていて、!=(や他の文字)が一つの文字に変わるのが嫌な人のために、以下の設定でリガチャをオフにする方法があるよ:font-feature = -dlig font-feature = -liga font-feature = -calt これは$HOME/.config/ghostty/configで更新できるよ。

Ghostty 1.3では、フォントの標準に従って、デフォルトで任意のリガチャー(dlig/caltだと思う)を無効にしています。ただし、通常はあまり論争のないリガチャーを含むligaは有効にしています。

もしかしたら、私がやったみたいに、リガチャに関して(私の意見では)正しいことをするフォントを使って解決できるかもね。https://github.com/0xType/0xProto#4-ligatures-that-dont-defo... 0xProtoは本当におすすめ!早く見つけられなかったのが残念だよ :)

Ghosttyのオリジナルクリエイターです。もう数年経ちましたね!なんでこれがHNのフロントページに再登場してるのかは分からないけど、いくつかの意味のあるアップデートをお伝えします。まず、libghosttyは今や「めっちゃワクワクする」存在です。すでに十数個の無料および商用のターミナルプロジェクトをサポートしています: https://github.com/Uzaaft/awesome-libghostty これがGhosttyの本当の未来だと思っていて、2023年にGhosttyについての初めての公演をしたときから言ってきました。目指しているのは、特定のターミナル利用を解決する多様なターミナルエミュレーターのエコシステムで、すべてが共有された安定した機能豊富で高性能なコアに基づいています。実現に向かっていますよ!libghosttyについての詳細はこちら: https://mitchellh.com/writing/libghostty-is-coming 2027年の中頃には、libghosttyを通じてGhosttyを使っている人の数が、実際にGhostty GUIを使っているユーザーの数を圧倒すると思います。これは全ての面での勝利です。なぜなら、libghosttyの利用が増えることで、Ghostty GUIもより安定するからです(Ghostty自体が...もちろん...libghosttyの消費者ですからね)。すでにlibghosttyを埋め込んでいることで多くのバグが修正されました。GUIの面では、Ghosttyのアプリはまだたくさんの新機能が追加されていて、かなり使われています。GhosttyのmacOSアプリは週に約100万回ダウンロードされています(Linuxのデータは持っていませんが、ビルドを作っていないので)。自動化されている部分も多いと思いますが、それでも大きな数字です。Ghosttyには詳細なデータを提供するテレメトリーはありませんが、大手のサードパーティのTUIアプリからのデータでは、Ghosttyが彼らの最大のユーザーベースであることが示されています。ただし、これは新しいTUIを使う人が新しいターミナルを使う傾向があるため、偏りがあります。要するに、たくさんの人が使っていて、実際の世界で証明されていて、私たちは大きく改善し続けています。Ghostty 1.3がもうすぐ、文字通り1、2週間のうちにリリースされ、検索(cmd+f)、スクロールバー、その他多数の重要な機能が追加されます。GUI機能に加えて、VT機能も大幅に改善されます。組織として、Ghosttyは今や非営利団体に支えられています: https://mitchellh.com/writing/ghostty-non-profit そして、先週、初めて4人の貢献者と契約を結び、実際にお金を支払うことになりました!私たちの財務はすべてオンラインで完全に公開されていて透明です。これは、Ghosttyを非商業的で私に依存しないものにするという私のコミットメントを示すためです(後者は時間をかけて)。これが現在の状況の10,000フィートの概要です。Ghosttyの世界はワクワクしていますね。:) 何か大きな質問があれば喜んでお答えします。

Ghosttyが本物の組織の一部になった今、特定の機能やバグ修正をスポンサーできる方法はありますか?KDEでドラッグ&ドロップが動くのを待っているので、切り替える前に修正してもらえたら嬉しいです。

cmd+fを使えるようにしてもらえますか?

Trolley[0]の作者だよ(TUI用のElectron)。libghosttyを使ってターミナル機能を実装するのがめっちゃ簡単だった。ほとんどの時間はその周りの機能を作るのに使ったよ。作ってくれてありがとう! [0]: https://github.com/weedonandscott/trolley

いつもありがとう!11月前はターミナルを数十回しか使ったことなかったけど、今はどのアプリよりもターミナルを使ってる(ブラウザよりも多いくらい)。Claudeのコードを使うために、15〜25個のターミナルウィンドウを開いてるのが普通だよ。もっと機能が欲しくてGhosttyに移行したんだけど、残念ながら欲しかった機能はどこにもなかった(でもGhosttyには感謝してる)。欲しかった機能はこれだね:1. 基本的なテキスト編集機能(テキスト入力フィールドでクリックしてカーソルを置く、ハイライトして削除する)2. セッション中に色やフォントを変更する(特定のウィンドウを見つけやすくするため)3. ウィンドウ管理と検索(ウィンドウを見失ったときに見つける方法や、その他のコントロール方法)どうやら、ターミナルエミュレーターでこういう機能を開発するのは本当に難しいらしい。なんでなのか知りたいな…

Mitchell、Claude Codeの登場でターミナルエミュレーターがこんなに復活するのを目の当たりにするのはどうだった?Ghosttyの初期の頃に「なんでターミナルエミュレーターに取り組んでるの?未来の問題に取り組む人が必要なのに!」ってコメントがあったのを覚えてる。今ではみんなブラウザよりターミナルを使ってるって言ってるのが面白いよね。すごい時代だ!

こんにちはMitchell、Ghosttyを作ってくれてありがとう。見つけてからずっと私のワークフローの一部になってるよ。ちょっとした質問なんだけど、GhosttyがiTerm2の人気機能、例えば出力のコピーや選択を完全に再現できるのはいつ頃だと思う?

最低コントラスト機能は素晴らしいね。色の組み合わせによっては、読めなくなることがあるから、そういう時に助かる。

Ghostty大好き!特にUIがKittyより全然いいよね。でも、なんか理由があって、GhosttyはSSH接続の時に結構問題が出ることがあるんだ。ターミナルが壊れたみたいに表示されて、ちゃんと入力できないこともあるし。だから、SSH接続の時はまだKittyを使ってる。kitten sshが何をするのかは分からないけど、これのおかげでターミナルがSSHで動くんだよね。

これが私には致命的なんだ。ターミナルを使ってる半分の時間はSSHしてるし、ほとんどのマシンでterm-infoをコピーしなきゃいけないのが、もっと使うのを妨げてる。term-infoをコピーしても、いつも解決するわけじゃないし。読んだ限りでは、完全にGhosttyのせいではないみたいだけど、ユーザーとしてはイライラするよ。

Ghosttyのterminfoエントリは24ビットカラーを有効にしてくれないんだよね。私の知る限り、"ghostty-direct"エントリも提供されてないみたい。完全にサポートされてるのに、簡単に有効にできないのは変だなと思った。もしかしたら、私が何か見逃してただけで、カスタムのterminfoエントリを自分で作る必要はなかったのかも?* "msgcat --color=test"を使えば、24ビットカラーのブレンドやブロック状のグラデーションが簡単にテストできるよ。

Ghosttyが公開された時、数ヶ月使ったけど、Terminal.appで使ってるCMD+F機能がサポートされてないから諦めた。この機能は、ローカルでログを追いかける時に私にとっては重要なんだ。テキストをファイルにキャプチャしてから検索するという方法も試したけど、私のワークフローには合わなかった。Ghosttyは他は素晴らしいけど、CMD+Fがないと私には役に立たない。

何度も試してみるけど、結局Linuxではalacritty、OSXではiterm2に戻っちゃうんだよね。

新しいMac Tahoeの丸いコーナー、マジでイライラする。ghosttyは下にちょっとしたマージンを追加した方がいいと思う。フォントがたまにその部分に描画されて文字が切れちゃうことがあって(滅多にないけど、起こるとムカつく)。