Repolode
charmbracelet

charmbracelet/bubbles

GoのBubble Tea製ターミナルアプリを構築するための、spinner、テキスト入力、テーブル、リスト、viewport、ヘルプなどを備えたTUIコンポーネント集。

スター
9,002
フォーク
475
未解決の Issue
250
最終コミット
18 日前

これは何?

Bubblesは、ターミナルアプリ向けのElmアーキテクチャフレームワークであるBubble Tea用に作られた、再利用可能なターミナルUIコンポーネントのGoライブラリです。すべてのウィジェットを一から実装する代わりに、spinner、1行・複数行のテキスト入力、ソート可能なテーブル、フィルター機能付きリスト、スクロール可能なviewport、プログレスバー、ページネーター、ファイルピッカー、タイマー、ストップウォッチ、自動生成のヘルプビューなどを組み込めます。

各コンポーネントは独自のUpdateメソッドとViewメソッドを持つBubble Teaのmodelなので、大きなアプリケーションに組み込んだり、ほかのコンポーネントと組み合わせたりできます。キーバインディング用のヘルパーパッケージを使うと、アプリケーションでキーマップを定義し、ユーザーによるキーの再割り当てを可能にして、同じバインディングからヘルプテキストを生成できます。コンポーネントはUnicode入力、ペースト、スクロール、スタイルのカスタマイズに対応しています。ライブラリはバージョン2で、charm.landのimport pathで公開されています。

主な機能

  • 01spinner、テキスト入力、テキストエリア、テーブル、リスト、viewport、プログレス関連のコンポーネントを収録
  • 02ドット形式または数値形式でページを表示できるページネーターを提供
  • 03拡張子で絞り込めるファイルピッカーを提供
  • 04カウントダウンとカウントアップに使えるタイマーとストップウォッチのコンポーネントを収録
  • 05キーバインディングからヘルプビューを自動生成

ユースケース

  • Go製のコマンドラインツールにローディング表示やプログレスバーを追加する
  • 複数のテキストフィールドを備えたターミナルフォームを構築する
  • TUIアプリケーションにスクロール可能なリストや表形式のデータを表示する
  • ターミナルアプリ内でユーザーがファイルを選択したり、キーバインディングを変更したりできるようにする

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

  • README にインストールコマンドが記載されていないため、クイックスタートを表示できません。
  • v1 から v2 へのアップグレードには、別途アップグレードガイドに従う必要があります。
  • これらのコンポーネントは Bubble Tea アプリ向けに作られているため、そのフレームワークも必要です。

トピック

よくある質問

bubbles とは?
GoのBubble Tea製ターミナルアプリを構築するための、spinner、テキスト入力、テーブル、リスト、viewport、ヘルプなどを備えたTUIコンポーネント集。 Bubblesは、ターミナルアプリ向けのElmアーキテクチャフレームワークであるBubble Tea用に作られた、再利用可能なターミナルUIコンポーネントのGoライブラリです。すべてのウィジェットを一から実装する代わりに、spinner、1行・複数行のテキスト入力、ソート可能なテーブル、フィルター機能付きリスト、スクロール可能なviewport、プログレスバー、ページネーター、ファイルピッカー、タイマー、ストップウォッチ、自動生成のヘルプビューなどを組み込めます。
bubbles は無料で使えますか?ライセンスは?
bubbles は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
bubbles は今もメンテナンスされていますか?
活発にメンテナンス中。bubbles の最終コミットは 2026年10月4日 です。
bubbles は何に使えますか?
Go製のコマンドラインツールにローディング表示やプログレスバーを追加する 複数のテキストフィールドを備えたターミナルフォームを構築する TUIアプリケーションにスクロール可能なリストや表形式のデータを表示する ターミナルアプリ内でユーザーがファイルを選択したり、キーバインディングを変更したりできるようにする
bubbles はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/charmbracelet/bubbles

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

関連プロジェクト