Web技術を基盤とし、プラグインやテーマで拡張できるクロスプラットフォームのターミナルエミュレーター。
vadimdemedes/ink
コンポーネントとFlexboxレイアウトを使って、ターミナル上にインタラクティブなCLIアプリを構築できるReactレンダラー。
- スター
- 40,136
- フォーク
- 1,062
- 未解決の Issue
- 33
- 最終コミット
- 19 日前
これは何?
Inkを使うと、コンポーネント、props、hooksを利用して、ReactでWeb UIを構築するのと同じようにCLIを作れます。各要素はYogaレイアウトエンジンによってFlexboxコンテナとして配置されるため、padding、margin、flexGrow、justifyContentなど、CSSに似たおなじみのプロパティをターミナルでも利用できます。
Text、Box、Newline、Spacer、Static、Transformなどの組み込みコンポーネントに加え、キーボード入力(useInput)、アプリのライフサイクル(useApp)、stdin/stdoutへのアクセス、フォーカス管理のためのhooksを備えています。Reactレンダラーなので、Reactの標準機能をすべて利用でき、ドキュメントではInk独自のAPIのみを説明しています。
Inkは、複数のエージェント型コーディングツール、クラウドプロバイダーのCLI、GatsbyやTapの進捗表示などのインタラクティブな開発者向けツールで使われています。
主な機能
- 01Reactコンポーネントをターミナル出力としてレンダリングします。
- 02Yogaを通じてFlexboxレイアウトに対応し、CSSに似たプロパティを利用できます。
- 03色、太字、斜体、テキストの切り詰めなど、Textのスタイル設定に対応します。
- 04キーボード入力、フォーカス管理、ウィンドウサイズ取得のためのhooksを備えています。
- 05Staticレンダリングにより、ログや完了した項目をライブ出力より上に表示し続けられます。
ユースケース
- 進捗状況をリアルタイムに更新する、インタラクティブなCLIツールの構築。
- キーボード入力に応答するターミナルダッシュボードの作成。
- ストリーミング形式でステータスを表示するテストランナーやビルドツールの作成。
- ターミナル上で動作するAIエージェントやチャットインターフェースの開発。
クイックスタート
- 1
npmでInkとReactをインストールする
npm install ink react - 2
create-ink-appで新しいInk CLIプロジェクトの雛形を作成する
npx create-ink-app my-ink-cli
使う前に知っておきたいこと
- READMEには、npmで公開されている最新の安定版ではなく、次期バージョンについて記載されています。
トピック
よくある質問
- ink とは?
- コンポーネントとFlexboxレイアウトを使って、ターミナル上にインタラクティブなCLIアプリを構築できるReactレンダラー。 Inkを使うと、コンポーネント、props、hooksを利用して、ReactでWeb UIを構築するのと同じようにCLIを作れます。各要素はYogaレイアウトエンジンによってFlexboxコンテナとして配置されるため、padding、margin、flexGrow、justifyContentなど、CSSに似たおなじみのプロパティをターミナルでも利用できます。
- ink は無料で使えますか?ライセンスは?
- ink は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- ink は今もメンテナンスされていますか?
- 活発にメンテナンス中。ink の最終コミットは 2026年10月3日 です。
- ink は何に使えますか?
- 進捗状況をリアルタイムに更新する、インタラクティブなCLIツールの構築。 キーボード入力に応答するターミナルダッシュボードの作成。 ストリーミング形式でステータスを表示するテストランナーやビルドツールの作成。 ターミナル上で動作するAIエージェントやチャットインターフェースの開発。
- ink のインストール方法は?
- npmでInkとReactをインストールする: npm install ink react create-ink-appで新しいInk CLIプロジェクトの雛形を作成する: npx create-ink-app my-ink-cli
- ink はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/vadimdemedes/ink
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Zigで書かれ、TypeScript・React・Solidのバインディングを備えた、ターミナルUI構築用ライブラリ。
シェル上でJSONを対話的に閲覧、折りたたみ、変換できるターミナル用JSONビューア兼プロセッサです。
ファイル閲覧、一括リネーム、ディスク使用量の分析、アプリの起動に対応した、C製の小さく高速なターミナルファイルマネージャー。
Linux、macOS、Windowsで使える、カスタマイズ可能なクロスプラットフォーム対応のターミナル用グラフィカルプロセス・システムリソースモニター。