Libghostty 1.0とは?ターミナルの中核を部品にしたライブラリの仕組みと使い方・対応環境

/ noro_hacks

※本記事には広告リンクが含まれます。

Libghostty 1.0とは?ターミナルの中核を部品にしたライブラリの仕組みと使い方・対応環境

Libghostty 1.0は、文字だけで操作する「ターミナル」という画面の心臓部を、ほかのソフトに組み込める部品として公開したものです。2026年11月、安定して使える「1.0」に到達しました。すでにJetBrainsの開発ツールなどが採用していて、普段使うソフトの裏側で動き始めています。最近名前を見かけるのは、そのためです。

ひとことで言うと、何のための部品?

Libghostty 1.0は、さまざまなソフトに「ターミナル」の機能を組み込むための部品(ライブラリ)です。

※ターミナルとは: 文字を打ち込んで、コンピューターに指示を出す黒い画面のことです。AIがプログラムを書いてくれる「コーディングエージェント」も、この画面の中で動くことがあります。

※ライブラリとは: ソフトを作るときに「ここは出来合いの部品を使おう」と取り込める、機能のかたまりのことです。

たとえるなら、車のエンジンです。Ghostty(ゴースティ)は完成した車で、Libghosttyはその車から取り出し、単体で使えるようにしたエンジンです。ほかの会社は、エンジンを一から設計しなくても、自社の車に載せられます。ただしエンジンだけでは走れません。ハンドルや座席にあたる「画面への表示」は、組み込む側が用意します。

これまでと何が変わるのか

  • 普段使うソフトの裏側で、すでに動いている。 JetBrainsの開発ツールの2026.3以降では、内蔵ターミナルがLibghosttyで動きます(JetBrains Platform ブログ)。
  • 「部品のつなぎ目の形を勝手に変えない」という約束が付いた。 作者は1.0を、ライブラリ本体と接続部分の両方が安定したことを示す区切りだと説明しています(ハシモト氏のブログ)。
  • Windowsにも道が開けた。 Ghostty本体はWindows非対応ですが、LibghosttyはWindowsを含む複数の環境に対応しています(Publickey)。

Libghostty 1.0とは?誰が作ったもの?

Ghosttyは、ターミナルのアプリです。Publickeyによると、HashiCorpの共同創業者だったミッチェル・ハシモト氏が、退社後に個人開発者として進めてきました。Libghosttyの開発も同氏が主導しています(Publickey)。ハシモト氏の記事では、Ghosttyの開発開始は2022年とされています。

Libghosttyは、そのGhosttyの中核部分をC言語の部品として取り出したものです。名前の表記には注意が必要です。ハシモト氏のブログが「1.0」と呼んでいるのは、その中の「libghostty-vt」という部品です。「vt」は、ターミナルの文字の流れを読み解く部分を指します。公式ドキュメントでは、プログラムが書き出した文字データを受け取り、画面・カーソル・過去の表示(スクロールバック)といった状態を整理して外に見せる部品だと説明されています(公式ドキュメント)。

ChatGPTのようなAIサービスとは別物です。ChatGPTは、話しかけると答えが返ってくる完成したサービスです。Libghosttyは、人が直接話しかける相手でも、アプリでもありません。ソフトを作る人が、自分のソフトの中に入れて使う部品です。

なぜいま話題になっているの?

理由は、「1.0」という節目と、採用の広がりが同時に伝わったことです。

1.0で「約束」が付いた

ハシモト氏によると、1.0は、ライブラリ本体と接続部分(ABI)の両方が安定した、という意味です。

※ABIとは: 部品とそれを使うソフトをつなぐ「差し込み口の形」のことです。形が変わらなければ、部品を新しくしても、使う側のソフトを作り直さずに済みます。

同氏は、この安定を守る方針を実際に運用していると書いています。Linux・macOS・WebAssemblyでは、自動検査の仕組みで変更を確認しているそうです。Linuxなどでは、差し込み口の名前に版の情報も付けています。版が合わない部品を読み込もうとすると、後から原因不明の不具合になる代わりに、その場で拒否されます(ハシモト氏のブログ)。

すでに多くの場所で使われている

同氏のブログと資料から、採用例を整理します。

  • JetBrains: IntelliJ、PyCharm、GoLandなどの内蔵ターミナルが、長年使ってきた「JediTerm」からLibghosttyに替わりました。ハシモト氏はJetBrainsの報告をもとに、アクティブユーザーは1250万人超としています。
  • Neovim: 文字エディタNeovimでは、従来の部品をLibghosttyに替える変更案が出ています。
  • KDE: Linuxのデスクトップ環境KDEの開発者が、Libghosttyを使ったターミナルを試作しています。
  • Vercel Turborepo: 作業の出力を画面に描く部分に使っています。
  • その他: OrbStackなどの商用製品、Emacs向けの「Ghostel」、ブラウザで動く「ghostty-web」、AI向けの新しいターミナルツール「herdr」「cmux」などです。

Rust、Go、JavaScript、Swift、Pythonなどに向けた、コミュニティ製の接続ツールもあります。関連プロジェクトをまとめた一覧は、100件を大きく超えるとのことです。

Windows向けの動きも出てきた

Publickeyによると、Ghostty本体のWindows対応は開発計画から外されました。Windows版はLibghosttyを使う第三者に任せる形です。ハシモト氏が今年8月に設立したSuperlogical社は、複数の画面を1つの窓で扱う「Rex」というソフトを開発しています。そのWindows版は数週間以内にα版が出る予定です(Publickey)。

JetBrainsの例で見える「裏側の変化」

JetBrainsのブログによると、Libghosttyに替えたことで、キーボードの新しい取り決めに対応しました。たとえばAIエージェントへの指示を打つとき、Shift+Enterで改行できるようになります。IDEの明るい・暗いテーマに、ターミナル内のツールが合わせやすくなったことも挙げられています。表示が崩れやすかった約50種類の制御用の符号も、正しく扱えるようになりました(JetBrains Platform ブログ)。

どんな特徴があるの?

公式ドキュメントとブログから、主な特徴を5つ挙げます。

1. 使い道を選ばない

何ができるか: プログラムが出す文字データを渡すと、画面の状態を教えてくれます。ターミナルアプリのほか、ブラウザ上の端末、操作の録画と再生、テスト、AIが画面の内容を読む用途などが挙げられています。

どう実現しているか: 画面の描画は担当せず、文字データの処理と状態の管理に絞っているからです。

2. いろいろな環境で動く

何ができるか: Linux、macOS、iOS、Android、FreeBSD、Windows、WebAssemblyで動きます。小さな機器向けの、OSなしで動く環境(RISC-VとARM)にも対応するとのことです。

どう実現しているか: 公式ドキュメントによると、これらを実際にビルドしてテストしています。32ビットと64ビットの両方に対応します。

3. 速さと省メモリをうたっている

何ができるか: 公式は、入出力の速さは「既知のどのターミナルより速い」と述べています。ある利用者は、4コア・メモリ8GBのLinuxマシンで、シェルが動く端末を1万個走らせたそうです。

どう実現しているか: メモリ使用量を強く絞り込んだ設計だと説明されています。ただし、これは開発側の主張です。第三者の測定は、手元の資料には含まれていません。

4. ほかの部品にあまり頼らない

何ができるか: 最低限の標準部品(libc)だけで動きます。OSなしで動かす構成も可能です。

どう実現しているか: 余計な部品に頼らない設計で、必要に応じて標準部品も外せるようにしています。

5. 接続部分が壊れにくい

何ができるか: 新しい版が出ても、使う側のソフトが急に動かなくなりにくくなります。

どう実現しているか: ブログによると、部品の中身を直接見せず、取っ手(ハンドル)越しに操作させる設計です。新しい機能を足しても、既存の差し込み口は変わりません。古い部品に新しい機能を頼んだ場合は、落ちる代わりに「未対応」という結果が返ります。さらに、配布用の一式(ビルド用の道具、配布ファイル、ライセンス一覧、説明書)も整えられました。Linuxなどの配布元が、標準的な手順で取り込めるようにするためです。なお、Ghostty本体とは別のリリースの流れで運用されます。

自分に関係あるの?

エンジニアでない方が、Libghosttyを直接使う場面はほぼありません。アプリではなく、ソフトを作る人が使う部品だからです。

ただし、間接的な関係はあります。次のようなソフトを使っている人は、気づかないうちに恩恵を受ける可能性があります。

  • JetBrains製の開発ツールを使っている(2026.3以降)
  • Neovimなどのエディタを使っている
  • ターミナル上でAIエージェントを動かしている

向いている人

  • ターミナルを使うソフトを自分で作りたい開発者
  • 画面の表示を自作しつつ、文字データの処理は出来合いの部品に任せたい人
  • Linuxなどのソフトの配布を担当している人

向いていない人

  • ターミナルを使いたいだけの人は、完成したアプリを選ぶほうが早いです。
  • Windowsで、すぐに「Ghostty」というアプリを使いたい人。本体にWindows版は予定されていません。代わりにRexのWindows版を待つ形になります。

触ってみるには?

ここからは実際に触ってみたい人向けです。読み飛ばしても全体像は分かります。

入手方法は、公式ドキュメントの「Installing」の項目に案内があります。ただし、インストールのコマンドは、手元の資料には載っていません。公式ドキュメントは、MITライセンスのオープンソースとして公開されています。

同じドキュメントには、画面もPTY(本物の端末)も使わずに、文字の処理だけを試す短いC言語のサンプルが載っています。エラー処理は省略されています。次はその流れを、日本語のコメントを付けて写したものです。

#include <stdio.h>
#include <string.h>
#include <ghostty/vt.h>

int main(void) {
  // 80桁×24行の端末を作る
  GhosttyTerminal terminal;
  ghostty_terminal_new(NULL, &terminal, 80, 24);

  // プログラムが出す文字データを渡す("world"を太字の緑にする指定を含む)
  const char *text = "Hello, \x1b[1;32mworld\x1b[0m!\r\n";
  ghostty_terminal_vt_write(terminal, (const uint8_t *)text, strlen(text));

  // 画面の内容を文字として読み出す
  GhosttyFormatter formatter;
  ghostty_formatter_terminal_new(NULL, &formatter, terminal);
  uint8_t *buf = NULL;
  size_t len = 0;
  ghostty_formatter_format_alloc(formatter, NULL, &buf, &len);
  fwrite(buf, 1, len, stdout);
  putchar('\n');

  ghostty_free(NULL, buf, len);
  ghostty_formatter_free(formatter);
  ghostty_terminal_free(terminal);
  return 0;
}

実行すると「Hello, world!」と表示されます。色の情報は端末の状態には入っていますが、読み出しの設定で文字だけを取り出しているため、画面には出ません。文字データは、ここでは文字列から渡していますが、PTYやネットワーク、録画データなど、どこから来たものでもよいと説明されています(公式ドキュメント)。

注意点・まだ分からないことは?

  • 「1.0」の範囲。 ハシモト氏のブログが1.0と呼ぶのはlibghostty-vtです。Ghostty全体が1.0になったという意味ではありません。何が安定の対象で、各リリースで何が変わりうるかの詳細は、公式ドキュメントの「Stability」の項目にあります。この記事の資料では中身を確認できていません。
  • 資料同士で食い違う点。 Neovimについて、ハシモト氏のブログは、変更案が承認済みで、配布元が部品を別に用意できるよう、タグ付きリリースを待って取り込む予定だと書いています。Publickeyは、置き換えのコードが「マージされた」と書いています。どちらが現状に近いかは、この資料だけでは判断できません。
  • KDEの説明も異なる。 ブログは「Konsoleの後継を試す実験」と書いています。Publickeyは「Kwi」というターミナルの開発が始まったと書いています。同じ取り組みを別の言い方で書いている可能性もありますが、資料からは断定できません。
  • 利用者数の数字。 ブログは、JetBrains製品だけで1250万人超という、JetBrainsの報告にもとづく数字を挙げています。公式ドキュメントは「追跡はしていないが、最善の推定では毎日数千万人」と書いています。後者は推定値です。
  • 性能の主張。 「既知のどのターミナルより速い」という説明は、開発側の記述です。第三者の測定結果は、資料の範囲では確認できません。
  • JetBrains側の今後。 Libghosttyは、クリップボード連携、通知、進捗バー、画像表示などの符号をすでに読み取れます。ただし、IDE側の対応はまだです(JetBrains Platform ブログ)。問題があれば、旧来のJediTermに戻す設定も用意されています。2026.3のEAP(先行公開版)で説明されている内容です。
  • Rexについて。 Windows版は「まもなく」α版が出る予定ですが、料金や正式な公開時期は、資料の範囲では公表されていません。ハシモト氏はLibghosttyの主導者であり、Rexを開発する会社の設立者でもあります。採用事例の紹介の多くは作者本人か、採用側の発表です。独立した第三者による評価は、手元の資料には含まれていません。
  • 料金。 ライブラリ自体はMITライセンスのオープンソースです。ライセンス料などの条件は、資料には出てきません。

まとめ

  • Libghostty 1.0は、ターミナルの中核を「他のソフトに組み込める部品」にしたオープンソースのライブラリです。
  • 作者は、部品本体とつなぎ目の両方が安定したことを、1.0の意味だと説明しています。
  • JetBrainsの開発ツールなど、普段使うソフトの裏側ですでに採用が始まっています。
  • 直接使うのは主にソフトを作る人で、多くの人は「裏側で動く部品」として間接的に関わります。
  • 性能や採用状況は開発側の説明が中心です。Neovimなど、資料同士で説明が違う点もあります。

よくある質問

プログラミングができなくてもLibghostty 1.0は使えますか?

直接使う場面はほとんどありません。Libghosttyはソフトを作る人が組み込む部品で、単体のアプリではないためです。ただしJetBrainsの開発ツールなど、すでに採用したソフトの裏側で、知らないうちに動いている可能性はあります。

Libghostty 1.0は無料で使えますか?

公式ドキュメントによると、オープンソースで、MITライセンスで公開されています。ライブラリ自体の料金は資料に出てきません。同じ作者が関わるマルチプレクサ「Rex」の価格は、資料の範囲では公表されていません。

GhosttyとLibghosttyは何が違うのですか?

Ghosttyは、Mac版とLinux版がある完成品のターミナルアプリです。Libghosttyは、そのアプリの中核部分を、他のソフトに組み込める部品として切り出したものです。Libghosttyにはデータ処理の役割だけがあり、画面の表示は組み込む側が担当します。

1.0になって何が変わったのですか?

ライブラリとC言語向けの接続部分(ABI)の両方が安定した、と作者のハシモト氏は述べています。バージョンの付け方や互換性の約束が明文化され、配布する側や組み込む側が安心して使える状態になりました。

関連記事