npm.io
0.2.47 • Published yesterday

@easbot/tui

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

Keywords