一款面向 macOS 和 Linux 的开源终端应用,由 Webanion 以 MIT 许可证发布:保存的命令可在一个标签页里并排打开最多四个终端,采用 Termi 记住的布局,并能随应用一起启动;还有拆分、重新打开、命令面板、快捷键表、内置指南,以及侧边栏里的 CPU、内存和网络数据。Electron、React、TypeScript、xterm.js 和 node-pty,用 electron-vite 构建,用 Vitest 测试,并带有一个 MCP 服务器,让助手可以管理保存的命令。源码见 github.com/webanion/termi。
完整故事
一条保存的命令,四个终端,记住的布局,启动时整个网格原样归位。
每天早上同样的八个窗口
做一个项目的开发者每个工作日都要启动同样的进程:一个开发服务器,一个测试监视器,一个跑 git 的 shell,再一个留给随时冒出来的事。终端应用把它们一个一个打开,每个都要在正确的文件夹里,然后手动排好窗口,重启之后整套流程再来一遍。命令从来不变。重新敲这些命令所花的分钟也不会变。
Termi 是一款面向 macOS 和 Linux 的开源终端应用,由 Webanion 以 MIT 许可证发布。一条保存的命令记住最多四个终端、它们运行的文件夹和摆放的布局,一次点击就在一个标签页里全部打开,还能在 Termi 启动的那一刻自动运行。应用的其余部分不挡 shell 的路:拆分、重新打开、命令面板、快捷键表、内置指南,以及侧边栏底部机器的 CPU、内存和网络数据。
一条保存的命令,四个终端
名为 Termi 的保存命令在一个标签页里打开项目的四个终端:监视模式下的单元测试、git 日志、类型和 lint 检查,以及一个普通 shell,全部位于项目的文件夹。每个终端在标题栏显示的是标题而不是原始命令,运行中的标签页带着各自的快捷键排在侧边栏顶部,保存的命令排在下方,会在启动时自动运行的命令旁有一个闪电标记。


Termi 记得的布局
两个、三个或四个终端的标签页可以是网格、并排、堆叠、左侧放大或顶部放大。布局在保存命令的对话框里选,或在标题栏右侧的控件里选,Termi 会为这条命令记住它,标签页回来时和离开时一模一样。这条命令需要的其他一切也都在对话框里:名称、最多四条可带可选标题的命令、文件夹,以及是否在 Termi 打开时启动。拖动两个终端之间的分隔线可以调整大小,双击则让它们重新等分。



拆分、重新打开,还有机器的状态一目了然
任何标签页都能从标题栏或键盘拆分成最多四个终端,新的 shell 在标签页的文件夹里启动;这里是产品网站的开发服务器和一次类型检查共用一个标签页。关掉保存命令中的一个终端,标题栏就会出现 Reopen,列出关掉的终端并把它放回原位,同时侧边栏显示 3 of 4。页脚每 1.5 秒读取一次 CPU、内存、下载和上传。


一切都能从键盘完成
命令面板按名称找到任何操作或运行中的终端,并在旁边显示它的按键;快捷键表把每个快捷键列在一页上。按键因系统而异是有意为之:在 macOS 上由 Command 键完成工作,在 Linux 上单独的 Ctrl 加字母总是直达 shell,所以 Ctrl+C 仍然中断,Ctrl+B 仍然是 tmux 的前缀,而 Termi 自己的快捷键用 Ctrl+Shift 加字母,Alt 加数字切换标签页,Ctrl+Page Up 和 Page Down 在标签页之间移动。保存的命令也能从键盘运行:输入名称的一部分再按 Enter,如果它已经在运行,Termi 会跳到它的标签页。



随应用一起提供的帮助
首次启动时会打开一份五页的指南,之后也可以从 Help 菜单再次打开,应用的每个部分各占一页:终端与标签页、保存的命令、拆分终端、复制与状态数据,以及 MCP 服务器。Help 菜单中的 Report an Issue 会打开一份已经填好 Termi 版本、系统和 shell 的错误报告,由使用者自己阅读并提交。Termi 自己不发送任何东西:没有遥测,没有分析,没有更新检查。


一个页面放下所有下载
termi.webanion.com 把下载、功能、布局和快捷键放在一个页面上,并优先提供访问者自己系统的构建:面向 Apple silicon 和 Intel Mac 的 dmg,面向 Debian 和 Ubuntu 的 deb,以及面向其他 Linux 发行版的 AppImage,每个版本都附有用于核对的 SHA256SUMS 文件。版本由 GitHub Actions 工作流发布,从不手工操作:它打开一个带版本号提升和根据提交写成的更新日志的 pull request,合并后构建 macOS 和 Linux 安装包,打上版本标签,并连同贡献者一起发布该版本。


开源,来自 Webanion
Termi 由 Jawad Ahbab 发起,后来由 Webanion 重构并以 MIT 许可证作为开源产品发布。Webanion 的发布工作为它带来了 electron-vite 构建、TypeScript、ESLint 和 Prettier 检查、Vitest 单元测试、针对真实 shell 的集成测试、每个 pull request 在 CI 中于 Linux 和 macOS 上对构建好的应用做的冒烟测试,以及构建并发布每个版本的工作流。
窗口之下,Electron 承载一个沙盒化的 React 页面,它只能通过经过校验的 IPC 契约触达 shell,xterm.js 绘制终端,node-pty 运行终端,设置保存在一个带版本号和迁移的 JSON 文件里,所以旧构建永远不会破坏新构建的设置。同一构建里还带着一个 MCP 服务器,因此像 Claude Code 这样的助手可以列出、添加和编辑保存的命令,但要记住指南里的提醒:保存的命令会在点击或启动时运行,所以这两个工具应当保持手动批准。源码、议题和 good first issue 都在 github.com/webanion/termi。
你可能也喜欢
Keyboard Tracker:桌面活动图表与报告
一款适用于 Linux、Windows 和 macOS 的安静桌面应用,统计键盘和鼠标的使用情况,绘制成图表并导出报告,用五周时间为 Ja Turna 打造。它只统计按键次数而不记录任何人输入的内容,可以查看一天到全部历史的图表,面对数月的数据也依然流畅,任何表格都能下载为经理可以分享的 PDF,还能把全部历史备份到一个文件,以便迁移到新电脑。Electron、React、TypeScript 和 Redux,同一套代码库。

博客是来自生产一线的笔记:架构决策、经受住真实用户考验的 AI 系统、能自己挣回成本的基础设施。写于工作之中,而不是隔岸观火。

