Repolode
phoenix-tui

phoenix-tui/phoenix

Elm Architectureを基盤とするGo製ターミナルUIフレームワーク。Unicodeに準拠したレイアウト、インライン/全画面描画、コンポーネントライブラリを備えています。

スター
45
フォーク
1
未解決の Issue
0
最終コミット
2 か月前

これは何?

Phoenixは、ターミナルUIを構築するためのGoフレームワークです。独立した10個のモジュールで構成されており、まとめて、または個別にインポートできます。Elm Architecture(Model、Update、View)に従い、各ライブラリはドメイン、アプリケーション、インフラストラクチャ、APIからなるDDD形式のレイヤーに分かれています。

テキスト幅の計算には書記素クラスタと東アジア幅のルールを使うため、絵文字やCJK文字を含む場合もレイアウトが揃うよう設計されています。描画方式は、行ごとの差分更新を行うインライン表示と、alt-screenを使った全画面表示から選べます。TTY制御APIを使うと、TUI内からエディタやシェルなどの外部プログラムを起動し、終了後にインターフェースを復元できます。

コンポーネントライブラリには、テキスト入力、リスト、テーブル、モーダル、スピナー付きプログレスバー、フォーム、選択メニューが含まれています。また、テーマプリセット、flexboxとgridによるレイアウト、マウスイベント処理、OSC 52経由でSSH接続時にも使えるクロスプラットフォームのクリップボードを備えた、CSS風のスタイリングシステムも提供します。Bubbletea、Lipgloss、Bubblesからの移行ガイドも用意されています。

主な機能

  • 01ジェネリックで型安全なモデルを使ったElm Architectureの状態管理
  • 02UAX #11に基づくUnicodeおよび絵文字の幅計算
  • 03行ごとの差分更新によるインライン描画、またはalt-screenによる全画面表示
  • 04エディタやシェルなどの外部プロセスを起動するTTY制御
  • 05テキスト入力、テーブル、モーダル、フォーム、プログレスバーを備えたコンポーネントライブラリ
  • 06TUIのテストに使えるモックターミナルとテストユーティリティ

ユースケース

  • フォーム、リスト、メニューが必要なGo製の対話型コマンドラインツールの構築
  • 外部プログラムに処理を引き継ぐ、シェル風またはエディタ風アプリケーションの開発
  • CJK文字や絵文字を正しく揃えて表示する必要があるTUIの作成
  • 既存のBubbletea/LipglossプロジェクトをDDD形式のコードベースへ移行

クイックスタート

  1. 1

    umbrella モジュールをインストールする

    go get github.com/phoenix-tui/phoenix@latest
  2. 2

    README の Quick Start の例を使って main.go を作成し、実行する

使う前に知っておきたいこと

  • Go 1.25 以降が必要です。
  • まだ初期段階のプロジェクトで、スターはわずか 45 個です。そのため、コミュニティは小さく、実績も限られています。

トピック

よくある質問

phoenix とは?
Elm Architectureを基盤とするGo製ターミナルUIフレームワーク。Unicodeに準拠したレイアウト、インライン/全画面描画、コンポーネントライブラリを備えています。 Phoenixは、ターミナルUIを構築するためのGoフレームワークです。独立した10個のモジュールで構成されており、まとめて、または個別にインポートできます。Elm Architecture(Model、Update、View)に従い、各ライブラリはドメイン、アプリケーション、インフラストラクチャ、APIからなるDDD形式のレイヤーに分かれています。
phoenix は無料で使えますか?ライセンスは?
phoenix は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
phoenix は今もメンテナンスされていますか?
半年以内に更新あり。phoenix の最終コミットは 2026年8月25日 です。
phoenix は何に使えますか?
フォーム、リスト、メニューが必要なGo製の対話型コマンドラインツールの構築 外部プログラムに処理を引き継ぐ、シェル風またはエディタ風アプリケーションの開発 CJK文字や絵文字を正しく揃えて表示する必要があるTUIの作成 既存のBubbletea/LipglossプロジェクトをDDD形式のコードベースへ移行
phoenix のインストール方法は?
umbrella モジュールをインストールする: go get github.com/phoenix-tui/phoenix@latest README の Quick Start の例を使って main.go を作成し、実行する
phoenix はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/phoenix-tui/phoenix

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト