先摊牌:我眼光很挑,而且在这事上多少有点执拗。我整天泡在终端里,可没有一款能让我用得舒心。
你注意看,几乎每一款终端都会让你掉进某种困局:基于Electron框架的那些,界面确实漂亮,但空载就吃掉快两百兆内存,操作还拖泥带水;极致精简的版本,速度倒是飞快,可连标签页和插件支持都没有;给高级用户准备的,配置项无穷无尽,交互界面却像是上个时代留下的老古董,你得跟它较着劲用;新潮好看的那批,要么源码闭锁、必须登录账号、还夹带遥测数据,要么深度捆绑在某一个系统上。用Rust语言开发的终端倒是真的快,这我佩服,可图形界面总让你觉得像是在编辑一个恰好带着闪烁光标的配置文件。市面上那些颜值在线的呢,差不多一半是Electron套壳,或者干脆就是另类网页视图的拼装——等于为了渲染一堆字符网格,先启动一整个浏览器。这种思路我实在接受不了。
于是我做了一件不太讲道理的事:自己动手写一个。它叫 terminale。
这是一款用Rust构建的、借助GPU进行加速的原生终端,在Windows、macOS和Linux上表现完全一致。一套代码,三个操作系统,行为统一。没有Electron,没有网页视图,没有遥测。图形绘制走的是 wgpu——底层对接Vulkan、Metal、DirectX 12或OpenGL——用到了字形图集和连字渲染,标题栏则是定制的无边框样式。
目前已经跑通、且被测试覆盖的功能包括:跨平台的伪终端shell支持——Windows上走ConPTY,Unix系用openpty;多标签页,标签关了还能重新打开,可以拖拽调整顺序,支持类似Chrome浏览器的标签分组;水平或垂直的分屏面板,能嵌套,非活跃分屏会自动变暗,一眼就知道焦点在哪;一个主动式的AI建议栏,它会读取最近的输出内容,推测你下一步想敲什么命令,旁边配一个“注入”按钮,但绝不会替你做自动执行;命令面板和内联AI助手,底层可以接Claude、OpenAI或本地部署的Ollama模型;12款内置主题,支持实时切换,你也可以用TOML格式定义自己的配色;全量回滚搜索,链接可直接点击——无论是OSC 8类型、普通网址,还是文件路径加行列号的格式;还有Quake风格的下拉模式和窗口吸附功能;一个运行在沙盒里的Lua插件宿主;原生设置窗口,每一项可调参数都对应着实际的控制项。哦,最新添的一个小玩具:在窗口底部那块原本无用的空白地带,塞进一条像素风的CPU、内存、GPU占用率横条,它完全不占用你shell的显示行数。
外观上,这套设计是有意为之:像素艺术风格的标志,一个宽广到张扬的彩虹色主题库——Matrix、Tokyo Night、Dracula还有它们的同党——配上无边框的定制窗口涂层。它看起来就像一款应该存在于某个游戏里的终端,底下却驱动着一台严肃的、GPU加速的终端模拟器。速度快,功能多,但看起来也好玩。这一点我不打算道歉。
还有一段大概是读者最想追问的:这玩意儿我三天就做出来了。倒不是因为我有什么魔法,而是因为我有一个速度极快、耐心极好的搭档——整份代码是在Claude Code上写出来的。每一行都是通过提示词引导生成的,不是我一双手敲的。我来盯设计方向,做取舍,说“不,得用这种方式来做”;模型负责搬那些重砖头,步调快得我单干根本追不上。从“我这终端真让人恼火”的念头冒出来,到打出三个操作系统的安装包、CI流水线亮绿灯、发布管线真正跑起来,前后正好三天。
眼看着这种构建方式,确实会让人有一种不太真实的感觉。
热门跟贴