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
使用 npm 安装 Ink 和 React
npm install ink react - 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 数据每日更新。
相关项目
一款终端 JSON 查看与处理工具,可在命令行中交互式浏览、折叠和转换 JSON。
2.1万495GoMIT更新于 14天前
用 Zig 编写、支持 TypeScript、React 和 Solid 的终端用户界面构建库。
1.4万787TypeScriptMIT更新于 17小时前
一款用 C 编写的轻量终端文件管理器,支持浏览、批量重命名、磁盘占用分析和启动应用。
2.2万834CBSD-2-Clause更新于 15天前
基于 Elm 架构的 Go 终端 UI 框架,支持正确的 Unicode 宽度计算,内置丰富组件,可迁移自 Charm 生态。
451GoMIT更新于 2个月前
一个带语法高亮和 Git 修改标记的终端 cat 替代工具。
6.1万4382RustApache-2.0更新于 昨天