本文翻译自 TUIStudio — Design Terminal UIs. Visually.,原载于 Hacker News。
什么是 TUIStudio?
如果你曾经开发过终端应用,一定体会过手写布局代码的痛苦。htop、lazygit、k9s 这些优秀的 TUI(Text User Interface)应用背后,是开发者们一行行调整坐标和样式的艰辛。
TUIStudio 应运而生——它是一款类似 Figma 的可视化编辑器,专门用于设计终端用户界面。你可以通过拖拽组件、实时编辑属性的方式构建 TUI,最终一键导出到 6 种主流框架。
核心特性
可视化画布
拖拽组件到实时画布上,支持可配置的缩放级别,提供真实的 ANSI 预览效果。所见即所得,不再需要反复编译运行来查看效果。
20+ 内置组件
涵盖了构建完整终端应用所需的所有基础组件:
- 基础控件:Screen、Box、Button、TextInput
- 选择器:Checkbox、Radio、Select、Toggle
- 展示类:Text、Spinner、ProgressBar
- 数据展示:Table、List、Tree、Menu
- 导航类:Tabs、Breadcrumb
- 弹出层:Modal、Popover、Tooltip
- 布局辅助:Spacer
强大的布局引擎
支持三种布局模式,完全模拟浏览器中的 CSS 布局:
- Absolute:绝对定位
- Flexbox:弹性盒子布局
- Grid:网格布局
属性控制全面,就像在 Chrome DevTools 中调整样式一样直观。
8 种配色主题
内置流行配色方案,实时预览切换:
Dracula、Nord、Solarized、Monokai、Gruvbox、Tokyo Night、Nightfox、Sonokai
多框架导出
设计一次,导出多种框架的生产级代码:
| 框架 | 语言 | 特点 |
|---|---|---|
| Ink | TypeScript | React 风格的终端应用开发 |
| BubbleTea | Go | Elm 架构的优雅 TUI 框架 |
| Blessed | JavaScript | Node.js 经典 TUI 库 |
| Textual | Python | 现代化的 Python TUI 框架 |
| OpenTUI | TypeScript | 跨平台 TUI 解决方案 |
| Tview | Go | 基于组件的 Go TUI 库 |
⚠️ 注意:目前处于 Alpha 阶段,代码导出功能还在开发中。
项目保存与加载
项目保存为便携式的 .tui JSON 文件。可以:
- 从任何位置打开
- 提交到 Git 仓库
- 与团队成员共享
无需账户,无需云端依赖。
平台支持
目前支持 Apple Silicon (M1/M2/M3/M4) 原生应用。下载即用,无需复杂安装。
由于没有代码签名,首次打开时可能会遇到系统安全提示:
macOS:右键点击 .app → 打开 → 仍然打开(或前往系统设置 → 隐私与安全性 → “仍要打开”)
Windows:SmartScreen 会显示警告,点击”更多信息”→”仍要运行”
Linux:直接 dpkg -i TUIStudio-amd64.deb 或双击安装
定价
目前处于早期访问阶段,核心编辑器免费下载使用。未来计划推出 Pro 版本,包含团队协作、云端同步和优先支持等功能。
个人观点
作为开发者,我非常期待这类工具的成熟。TUI 开发一直是个小众但实用的领域,尤其是在服务器管理、DevOps 工具链中。TUIStudio 如果能把导出功能做好,将大大降低 TUI 开发的门槛。
不过目前 Alpha 版本的功能还不完整,建议持续关注项目进展。对于想尝试 TUI 开发的朋友,可以先用它来学习和设计界面原型。
项目地址:GitHub
要点总结:
- TUIStudio 是一款可视化 TUI 设计工具,类似 Figma 的设计理念
- 支持 20+ 组件、Flexbox/Grid 布局、8 种配色主题
- 计划支持 6 种主流框架的代码导出(目前 Alpha 版本导出功能尚未完成)
- 项目文件为 JSON 格式,便于版本控制和团队协作
- 免费使用,适合 TUI 开发学习和原型设计