English | [简体中文]
一个面向自由绘制、结构化 ASCII UI 编排、逐帧 ASCII 动画的 Unicode 网格编辑器。


ASCII Canvas 渲染的是可编辑的 Unicode 网格,而不是对模型不透明的像素图。它既能给人直接阅读,也能保留适合 LLM 理解的文本结构。
目前支持三种会话模式:
text、bg、box、splitBox、line 组合场景,而不是把内容压成一整块纯文本。bg 节点可以作为文字和边框下方的真实背景层,也可以在上层遮挡内容。splitBox 支持可调整区域,适合面板、卡片、终端窗口和复合 UI 草图。bg 的背景填充单独控制。Shift + Click 锚点选区,并可用输入字符填充选区。80x25、64x64、128x128,也支持自定义尺寸。.cast,或导出当前帧 ANSI 文本。[38;2;190;24;93m... 这类 ANSI-like 文本。
.cast、ANSI 文本git clone https://github.com/Sayhi-bzb/ascii-canvas.git
cd ascii-canvas
npm install
npm run dev
npm run build
| 操作 | 快捷键 / 手势 | 说明 |
|---|---|---|
| Freeform 选区 | 拖拽 |
选择矩形网格区域 |
| 锚点选区 | Shift + 点击 |
从锚点到当前位置创建选区 |
| 填充选区 | 输入字符 |
用输入字符填充当前选区 |
| 智能换行 | Enter |
换行并继承缩进 |
| 铺设空格 | Tab |
光标向右移动 2 个网格单位 |
| 上下文菜单 | 右键点击 |
复制、ANSI 复制、剪切、粘贴、删除 |
| 结构化文本编辑 | 双击 text |
进入结构化文本原位编辑 |
| 结构化插入 | 从侧栏拖拽 | 将 component 或 template 放入结构化画布 |
粘贴支持纯文本、应用内富剪贴板数据,以及 ANSI/ANSI-like 终端样式文本。动画模式提供逐帧切换、播放、循环、洋葱皮和 JSON/GIF/asciinema .cast 导出。
本项目基于 MIT 许可证 开源。详情请参阅 LICENSE 文件。
$ claude mcp add AsciiCanvas \
-- python -m otcore.mcp_server <graph>