在这个开发环境里,我不再写代码
一个家庭实验如何长成了 Termide
项目: Termide
一切从内存开始。我用过很多语言——Ruby、C 等等——但到那时,很多项目我已经在用 Rust 写了。rust-analyzer 很吃内存,围绕它的图形化 IDE 也不便宜。我用过 VS Code、Cursor、Zed,每一个在我的机器上都有自己的界限:项目一旦超过某个规模,机器的运行状况就明显变差,这妨碍了工作本身。
这恰好赶上了时代的更替。借助人工智能的开发改变我工作方式的速度,比工具跟着改变的速度更快。我越来越多的时间不是待在编辑器里,而是待在终端里的智能体窗口中,围在它们外面的沉重 IDE,成了一个昂贵的外框,框住的本来就是活在控制台里的东西。
我决定为自己搭一个轻量的环境,同时定下第二个目标:在一个真实的长期项目上检验人工智能在迭代式工作中的表现——不是一百行的演示,而是持续几个月——并借此把整套流程打磨出来。
带文件树的多路复用器
第一个版本是一个终端多路复用器,Claude Code 就在它的窗口里运行。但光有窗口还不够。图形化 IDE 里有两样东西我想保留,没有它们工作就转不起来:眼前的文件树,以及能看清改了什么、方便组织提交的 git。
有一段时间,这还只是尝试:既没有决定继续做下去,也没有清晰的设想。等到决定下来,项目在 2025 年 11 月 20 日进入第一次提交时,已经能用了——终端、文件管理器、带语法高亮的编辑器、git 状态。九天后发布了 0.1.0 版。
那时我向人工智能的转变已经在进行中。Termide 从第一行起就是由智能体编写的——迭代式地,从规格说明到实现。它既是工具,也是我检验这种工作方式的试验场。
编辑器周围的一切
此后,环境随着一个个任务成长。有了带自动补全和跳转到定义的 LSP,可以通过 SFTP、FTP 和 SMB 处理服务器上的文件,可以查看数据库。长时间的会话不再需要 tmux。Android 构建让我可以在平板上工作。
项目的定位也随之改变。起初它是“终端里的 IDE”。后来我意识到,编辑器已经够多了,不缺我这一个,Termide 的价值在于编辑器周围的东西:远程机器上的文件、git、数据库、长期运行的 shell、智能体。这一切都装在一个二进制文件里,无需配置,就能在笔记本、服务器和平板上运行。
当它不再只是我需要的东西
Termide 是我为自己做的,但从一开始就是跨平台的,考虑到了其他人。可我没有条件测试:我了解自己的机器,别人的系统却不了解。跨平台更像是一个承诺。
后来有人来了:星标、工单、拉取请求。贡献者成了真正的测试者。他们在自己的系统上指出了应用在哪里能用、在哪里只是承诺能用,并帮助把它打磨到可用的状态。问题比可能出现的要少,我想,选择 Rust 在这里起了不小的作用。
这份关注带来了一种独自工作时不会有的动力:这说明需要它的不只是我。
自己的运行框架
很长一段时间里,Termide 里的智能体都是别人的:窗口里运行的是 Claude Code、Codex、Gemini CLI。和它们打交道时,同一种感觉反复出现:底层有什么东西变了——智能体的行为不一样了——但究竟变了什么,无从知晓,想施加影响也几乎不可能。对日常工作来说,这让人不快。对研究和实验来说,这无法接受:无法复现的实验什么也证明不了。
我需要的是可复现、清晰、透明和可控。自己的智能体运行框架(harness)——智能体在其中生存和工作的环境——是一项大工程,我拖了很久。2026 年秋天,我有了时间和精力扩展这个实验,于是动手做了。
运行框架就建立在这些要求之上。系统提示词没有藏起来:我能看到它的全貌,也能调整它。MCP 工具可以逐个开启和关闭。没有脆弱、不透明的临时补丁。智能体的记忆依托于项目里本来就有的东西:文件、过去的会话、git 历史。
事实证明,可控性在日常工作中也很有用。与服务商的连接设计成可以在会话内部直接切换。任务做到一半订阅额度用完了——我切换到另一家服务商,从原处继续。电脑突然重启了——启动界面上立刻能看到工作参数和过去会话的目录,我选中需要的那个,接着做。
这个运行框架已经回本了:如今在日常工作中,它替代了我以前用过的 Claude Code、Codex、Gemini CLI 和其他智能体。
我不再写代码
一年从手工开发向人工智能的转变,随后又是几个月基于规格说明的迭代式智能体开发,结果是现在我完全不写代码了。我以对话的方式推进项目:表述任务,关注产出物和输出,测试用户体验。
变的是我思考的内容。过去,相当一部分注意力花在格式上,花在选择这种或那种语法结构上。现在,注意力花在产品本身:它应该做什么,用起来手感如何,哪些地方它承诺的还多于它能做到的。
Termide 在这里既是手段,也是例子。说它是手段,因为这场对话就发生在它里面。说它是例子,因为它本身也是这样做出来的。
实验还在继续
十一个月,约 2100 次提交,版本从 0.1.0 到 0.45.0,64 个 Rust crate。Linux、macOS、Windows 和 Android。GitHub 上 180 颗星,还有提交自己代码的贡献者。
但实验并没有结束:自己的运行框架开启了它的下一个阶段——现在我可以改变条件,看看会得到什么。
如果你在终端里工作,试试 Termide,告诉我对你来说它还缺什么。
这篇文章也是在 Termide 里写的。