Repolode
vadimdemedes

vadimdemedes/ink

用 React 组件构建交互式命令行应用的渲染器,支持终端中的 Flexbox 布局。

Star
40,136
Fork
1,062
未关闭 Issue
33
最近提交
19天前

这是什么?

Ink 让开发者用编写 React 网页界面的方式来构建命令行应用,使用组件、属性和 Hooks 组织界面。每个元素都是 Flexbox 容器,底层使用 Yoga 布局引擎,因此 padding、margin、flexGrow、justifyContent 等类 CSS 属性可直接用于终端。

项目内置 Text、Box、Newline、Spacer、Static、Transform 等组件,并提供 useInput(键盘输入)、useApp(应用生命周期)、useStdin/useStdout(标准输入输出)、useFocus(焦点管理)等 Hooks。由于它是 React 渲染器,所有 React 特性都可以使用。

Ink 已被多个 AI 编程代理工具、云服务商 CLI 以及交互式开发工具采用。

核心功能

  • 01将 React 组件渲染为终端输出。
  • 02通过 Yoga 支持 Flexbox 布局及类 CSS 属性。
  • 03支持文本颜色、粗体、斜体、截断等样式。
  • 04提供键盘输入、焦点管理和窗口尺寸等 Hooks。
  • 05通过 Static 组件将已完成的日志或条目固定在动态输出上方。

适用场景

  • 构建带实时进度显示的交互式命令行工具。
  • 创建可响应键盘输入的终端仪表盘。
  • 编写显示流式状态的测试运行器或构建工具。
  • 开发运行在终端中的 AI 代理或聊天界面。

快速上手

  1. 1

    使用 npm 安装 Ink 和 React

    npm install ink react
  2. 2

    使用 create-ink-app 生成新的 Ink 命令行项目

    npx create-ink-app my-ink-cli

使用前须知

  • 该 README 描述的是即将发布的版本,而非 npm 上的最新稳定版。

标签

常见问题

ink 是什么?
用 React 组件构建交互式命令行应用的渲染器,支持终端中的 Flexbox 布局。 Ink 让开发者用编写 React 网页界面的方式来构建命令行应用,使用组件、属性和 Hooks 组织界面。每个元素都是 Flexbox 容器,底层使用 Yoga 布局引擎,因此 padding、margin、flexGrow、justifyContent 等类 CSS 属性可直接用于终端。
ink 可以免费使用吗?用的什么许可证?
ink 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
ink 还在维护吗?
活跃维护中。ink 最近一次提交是在 2026年10月3日。
ink 适合用来做什么?
构建带实时进度显示的交互式命令行工具。 创建可响应键盘输入的终端仪表盘。 编写显示流式状态的测试运行器或构建工具。 开发运行在终端中的 AI 代理或聊天界面。
ink 怎么安装和运行?
使用 npm 安装 Ink 和 React: npm install ink react 使用 create-ink-app 生成新的 Ink 命令行项目: npx create-ink-app my-ink-cli
在哪里获取 ink?
源代码和安装说明在 GitHub 上:https://github.com/vadimdemedes/ink

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目