终端UI开发最佳实践Skill terminal-ui

这个技能提供使用Ink和Clack框架构建高效、用户友好的TypeScript终端用户界面(TUI)的最佳实践指南,适用于CLI工具开发、交互式终端提示、开发者工具构建等场景。关键词包括:TUI、TypeScript、Ink、Clack、CLI、开发者工具、终端界面、用户体验、性能优化。

DevOps 0 次安装 0 次浏览 更新于 3/18/2026

name: terminal-ui description: 终端用户界面(TUI)性能和用户体验指南,适用于使用Ink和Clack的TypeScript应用程序。此技能应用于构建CLI工具、交互式终端提示或使用TUI组件的开发者工具。触发于涉及TUI组件、CLI提示、终端渲染、键盘输入处理或开发者工具的任务。

DevEx 开发者体验 TUI 最佳实践

全面的开发者体验指南,用于使用Ink(CLI的React)和Clack提示构建TypeScript终端用户界面。包含42条规则,分为8个类别,按影响优先级排序,以指导自动化重构和代码生成。

何时应用

参考这些指南时:

  • 使用 @clack/prompts 构建带交互提示的CLI工具
  • 使用Ink创建基于React的终端UI
  • 处理键盘输入和用户交互
  • 优化终端渲染并防止闪烁
  • 设计开发者友好的CLI体验

按优先级分类的规则类别

优先级 类别 影响 前缀
1 渲染与输出 关键 render-
2 输入与键盘 关键 input-
3 组件模式 tuicomp-
4 状态与生命周期 tuistate-
5 提示设计 中高 prompt-
6 UX与反馈 ux-
7 配置与CLI tuicfg-
8 健壮性与兼容性 低中 robust-

快速参考

1. 渲染与输出(关键)

  • render-single-write - 在单个写入中批处理终端输出
  • render-overwrite-dont-clear - 覆盖内容而不是清除和重绘
  • render-synchronized-output - 使用同步输出协议处理动画
  • render-60fps-baseline - 以60fps为目标实现平滑动画
  • render-partial-updates - 仅更新更改的区域
  • render-escape-sequence-batching - 将ANSI转义码生成延迟到最终输出

2. 输入与键盘(关键)

  • input-useinput-hook - 使用useInput钩子处理键盘输入
  • input-immediate-feedback - 为输入提供即时视觉反馈
  • input-modifier-keys - 正确处理修饰键
  • input-isactive-focus - 使用isActive选项进行焦点管理
  • input-escape-routes - 始终提供退出路径

3. 组件模式(高)

  • tuicomp-box-flexbox - 使用带Flexbox的Box组件进行布局
  • tuicomp-text-styling - 使用Text组件显示所有可见内容
  • tuicomp-measure-element - 使用measureElement进行动态尺寸调整
  • tuicomp-static-for-logs - 使用Static组件处理日志输出
  • tuicomp-percentage-widths - 使用百分比宽度实现响应式布局
  • tuicomp-border-styles - 使用边框样式增强视觉结构

4. 状态与生命周期(高)

  • tuistate-useapp-exit - 使用useApp钩子管理应用生命周期
  • tuistate-cleanup-effects - 卸载时始终清理副作用
  • tuistate-functional-updates - 使用函数式状态更新避免闭包过时
  • tuistate-usecallback-stable - 使用useCallback稳定回调函数
  • tuistate-usememo-expensive - 使用useMemo记忆化昂贵计算

5. 提示设计(中高)

  • prompt-group-flow - 使用Clack group()处理多步提示
  • prompt-validation - 早期验证输入并提供描述性消息
  • prompt-cancellation - 使用isCancel优雅处理取消
  • prompt-spinner-tasks - 使用Spinner和Tasks处理长操作
  • prompt-custom-render - 使用@clack/core构建自定义提示

6. UX与反馈(中)

  • ux-progress-indicators - 对超过1秒的操作显示进度
  • ux-color-semantics - 语义化且一致地使用颜色
  • ux-error-messages - 编写可操作的错误消息
  • ux-next-steps - 完成后显示下一步骤
  • ux-intro-outro - 使用Intro和Outro框架会话

7. 配置与CLI(中)

  • tuicfg-sensible-defaults - 为所有选项提供合理默认值
  • tuicfg-env-vars - 支持标准环境变量
  • tuicfg-flags-over-args - 优先使用标志而非位置参数
  • tuicfg-help-system - 实现全面的帮助系统
  • tuicfg-json-output - 支持机器可读输出格式

8. 健壮性与兼容性(低中)

  • robust-tty-detection - 检测TTY并调整行为
  • robust-signal-handling - 优雅处理进程信号
  • robust-exit-codes - 使用有意义的退出代码
  • robust-terminal-restore - 退出时始终恢复终端状态
  • robust-graceful-degradation - 对有限终端优雅降级

如何使用

阅读个别参考文件以获取详细解释和代码示例:

完整编译文档

完整指南包含所有扩展规则:AGENTS.md