Repolode
vadimdemedes

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. 1

    npmでInkとReactをインストールする

    npm install ink react
  2. 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 の数値は毎日更新されます。

関連プロジェクト