Licence
MIT
Version
0.2.47
Deps
9
Size
325 kB
Vulns
0
Weekly
498
English | 中文
@easbot/tui
轻量级终端 UI 框架,支持差异渲染和同步输出,实现无闪烁的交互式 CLI 应用。
基于 pi-tui 移植和扩展,完全掌控底层实现,支撑 EASBot 应用。
特性
- 差异渲染: 三策略渲染系统,仅更新变化的内容
- 同步输出: 使用 CSI 2026 实现原子屏幕更新(无闪烁)
- 括号粘贴模式: 正确处理大段粘贴,超过 10 行自动标记
- 组件化: 简单的 Component 接口,包含 render() 方法
- 主题支持: 组件接受主题接口,支持自定义样式
- 内置组件: Text、TruncatedText、Input、Editor、Markdown、Loader、SelectList、SettingsList、Spacer、Image、Box、Container
- 内联图片: 支持 Kitty 或 iTerm2 图形协议的终端内渲染图片
- 自动补全: 文件路径和斜杠命令
快速开始
import { TUI, Text, Editor, ProcessTerminal } from "@easbot/tui";
// 创建终端
const terminal = new ProcessTerminal();
// 创建 TUI
const tui = new TUI(terminal);
// 添加组件
tui.addChild(new Text("欢迎使用我的应用!"));
const editor = new Editor(tui, editorTheme);
editor.onSubmit = (text) => {
console.log("已提交:", text);
tui.addChild(new Text(`你说: ${text}`));
};
tui.addChild(editor);
// 启动
tui.start();开发
# 安装依赖
pnpm install
# 构建
pnpm build
# 测试
pnpm test
# 类型检查
pnpm type-check许可证
MIT