ARTICLE · 1156415
别急着卸载 IDEA:7MB 的 AI 终端,5 步接进来
一个后端开发的一天,窗口切换次数可能比写代码次数还多。
IDEA 里改完一个 Mapper,切到终端跑单元测试;测试挂了,切回 IDEA 看堆栈;要查一笔订单的落库情况,再切到数据库工具;想让 AI 帮着看一眼这段逻辑,又得打开浏览器登录某个网页版助手——因为公司的代码不能往公网贴。
这套流程跑久了,最烦的不是哪一步慢,而是上下文被切碎了:每次切窗口都要重新回忆"我刚才是要干嘛"。
所以当我在 GitHub 上刷到一个叫 Terax 的东西时多看了两眼——它说自己是「AI 原生开发环境」(ADE,AI-native development environment),把终端、编辑器、Git、预览和 AI 收进一个窗口,装完只占 7MB,不要账号、不收集遥测。
7MB 这个数字我是不信的。装完用了几天,这篇把实测过程、能用的地方和踩到的坑都记下来。
一、7MB 是怎么来的,代价又是什么
先回答那个数字。它用的是 Tauri 2:Rust 写外壳,界面层 React 19,但不捆绑浏览器运行时,直接调用系统自带的 WebView(Windows 是 WebView2,macOS 是 WKWebView,Linux 是 WebKitGTK)。
Cursor、Windsurf、VS Code 这一挂本质上都是 Electron,得自带一个 Chromium,所以起步就是几百 MB。Terax 把这个最大的包袱甩给了操作系统,于是只剩几 MB。
我查了一下最新 Release(v0.8.6)的实际资产体积:
· Windows exe:4.14 MB(msi 5.17 MB)
· macOS dmg:6.43 MB(M 系列)/ 6.76 MB(Intel)
· Linux deb / rpm:5.7 MB
· Linux AppImage:90.1 MB
注意最后一行。「7MB」在 Windows 和 macOS 上成立,在 Linux 上要用 deb 或 rpm 才成立——AppImage 因为要把运行时一起打进去,足足 90MB。任何拿 7MB 当通用结论的说法都不严谨。
省掉运行时不是白捡的便宜。这意味着:
· 零件一个没省,但都要自己攒:终端接 portable-pty + xterm.js,编辑器接 CodeMirror 6,AI 接 Vercel AI SDK v6,Git 图自己画
· 没有 VS Code 那种插件生态,缺什么只能等官方做
· WebView 行为随系统版本浮动,跨平台一致性得自己兜
一句话:它换到的是轻量和启动速度,付出的是每一块功能都比专门的工具浅一层。
二、装之前,先看清楚这 4 个数
工具介绍文通常只讲优点。我把劝退的部分放前面,你可以据此决定要不要继续往下看。
· 版本号是 v0.8.6——语义化版本小于 1.0,意味着配置格式、快捷键、行为都可能在小版本间不兼容变更。别把它当唯一主力。
· 开放 issue 453 条——项目 2026 年 4 月才开源,还很年轻,毛边免不了。
· Windows 首次启动大概率会被 SmartScreen 拦。官方 README 里写得很明白:因为尚未代码签名,会弹「Windows 已保护你的电脑」,需要点「更多信息 → 仍要运行」。网上有文章说已经签名不会拦,我按 README 和实际体验判断——按"会被拦"做准备。(仓库里的 .sig 文件是更新校验用的,不是 Windows 代码签名。)
· 它不是 IDE 替代品。这条最重要,下面单独讲。
三、实战场景 1:给 Spring Boot 项目写一份「项目记忆」
装完别急着配 API Key。第一件事是在项目根目录放一个 TERAX.md。
它的作用很简单:AI 每次开工前先读这个文件,把项目背景、构建命令、代码约定、禁区都记下来,你不用每轮对话重复交代一遍。这是我用下来收益最大的一个设计,而且思路与工具无关——CLAUDE.md、AGENTS.md 都是同一套逻辑。
我以自己的支付项目为例,模板如下,你可以照着改成自己的:
# 项目记忆:shorts 支付服务
## 1. 项目定位
Spring Boot 单体应用,包路径 com.ant.shorts。
核心职责:对接 PayerMax / UseePay / Payssion 三个支付渠道,
提供下单、回调、退款、订单统计与费率趋势查询。
## 2. 技术栈版本(不要擅自升级)
- JDK 17 / Spring Boot 3.2.x
- PostgreSQL(订单库)/达梦 DM8(迁移中的新库)
- MyBatis(XML 在 resources/mapper)
## 3. 构建与测试命令
- 编译:mvn -pl shorts-pay -am clean compile
- 单测:mvn -pl shorts-pay test
- 本地启动:mvn spring-boot:run -Dspring-boot.run.profiles=local
注意:不要用 mvn install,父 pom 里有 enforcer 会卡住。
## 4. 代码约定
- 渠道接入统一走 YamlPayInfoLookup:优先 Map 分发,未命中走反射 fallback
- 新增渠道:加配置 + 加实现类,不要改 Lookup 的分发逻辑
- 金额一律用 BigDecimal,禁止 double
- 日志用 @Slf4j,禁止 System.out
## 5. 禁区(不要修改)
- resources/mapper/** 由生成器维护的部分
- 数据库迁移脚本 db/migration/**
- 任何 *Mapper.xml 中的 resultMap 节点
## 6. 本项目的特有坑
- 取消状态映射不统一:PayerMax 是 pay_status=6,UseePay 是 pay_status=-1
- 达梦库下空串 '' 与 NULL 不等价,MySQL 迁移过来的 SQL 要逐条核对
- 达梦分页用 ROWNUM / LIMIT 写法与 MySQL 不同,见 db/dm-compat.md
## 7. 提交规范
feat/fix/refactor(scope): 一句话描述,中文即可,不超过 50 字
这份模板里真正值钱的是第 3 条和第 5 条。AI 在真实项目里最常见的两类事故,恰恰就是:
· 执行了不存在的命令——它不知道你用的是 Gradle 还是 Maven、单模块还是多模块,于是瞎猜一个 mvn test,跑出一堆无关模块的报错
· 改了生成出来的代码——它不知道哪个 Mapper 是生成器维护的,改完下次生成就被覆盖,还查不出为什么
把这两条写死在文件里,比事后纠错省事得多。另外第 6 条「特有坑」是公开资料里查不到的东西,也是 AI 最需要你告诉它的——你不说,它一定会按 MySQL 的常识去写达梦的 SQL。
四、实战场景 2:让 AI 加一个支付渠道,但先出计划
有了项目记忆,就可以干点真事了。我给它派了个活:按现有模式新增一个支付渠道。
这里要用到它的计划模式:不直接动手,先把计划写出来,你确认之后它再执行。对支付这种改错了要赔钱的代码,这一步不能省。
我在侧边栏里是这样下指令的:
@src/main/java/com/ant/shorts/pay/channel/
参考 UseePay 的实现,新增一个 Airwallex 渠道。
要求:
1. 走 YamlPayInfoLookup 的 Map 分发,不要改分发逻辑
2. 取消状态映射单独标注出来
3. 先给我计划,不要直接改文件
它读完了目录和 TERAX.md 之后给出的计划,会把「要新建哪几个类、每个类做什么、配置加在哪个 yaml 节点」列清楚。这时候你可以改——改计划的代价比改代码的代价低一个数量级。
确认之后它开始改文件。这里是最让我满意的一点:它不是整个文件覆盖,而是以 diff 形式一块块列出来,逐块 Accept 或 Reject。
以前用别的 AI 工具,最怕的就是「它一改就是一整个文件,我只能全盘撤销」。现在可以只拒掉它自作主张加的那段日志,留下真正想要的逻辑。侧边栏跑 bash 命令之前也会先问一句,批准了才执行——这对会动数据库的命令尤其重要。
改完之后,Git 面板可以直接按块暂存。同样是"不整个文件一把梭"的思路:
· 暂存想要的两块,把它顺手改的格式化留着不提交
· Ctrl+Enter 提交,推送时它自己认上游分支,不用手动指定
· 历史面板画的是带分道的提交图,合并和分叉的走势能看出来,不是把提交排在一条直线上
整个「派活 → 看计划 → 逐块确认 → 按块提交」的过程没离开过这个窗口。这才是 ADE 这类工具真正省下的东西——不是省了敲键盘的时间,是省了上下文重建的时间。
五、代码不出本机:接本地模型
如果公司的代码合规要求不能外发,可以完全走本地。设置 → AI,把端点指向本机 Ollama 就行:
# 本机起一个编码模型
ollama pull qwen2.5-coder:7b
ollama serve
# Terax 设置 -> AI -> Provider 选 Ollama
# Base URL 填 http://localhost:11434/v1
它也支持 LM Studio 和 MLX。断网状态下 AI 功能照常可用,代码不出自己的机器。用云端的话支持 OpenAI / Anthropic / Gemini / Groq / DeepSeek / Mistral 等,外加任意 OpenAI 接口格式的端点——自建的中转或网关也能填。
密钥这块的处理也克制:写进操作系统钥匙串,官方明确写了不落磁盘、不进 localStorage。对一个不要账号、不收集遥测的工具来说,这套组合是说得通的。
六、横向对比与注意事项
按我自己这几天的体感打分(五颗为满):
· 体积与启动速度:⭐⭐⭐⭐⭐(4–7MB,冷启动明显快于 Electron 系)
· 终端体验:⭐⭐⭐⭐⭐(GPU 渲染,几万行日志滚动不卡;输出按块组织,回翻历史能一眼找到分界)
· AI 改动可控性:⭐⭐⭐⭐⭐(diff 逐块确认 + bash 需批准 + 计划模式)
· 隐私与自主:⭐⭐⭐⭐⭐(不要账号、不收遥测、支持本地模型)
· 编辑器能力:⭐⭐⭐(CodeMirror 6 够改代码,但离 IDE 很远)
· 插件生态:⭐⭐(没有,缺什么只能等)
· 成熟度:⭐⭐⭐(v0.8.6,453 个开放 issue)
几个平台相关的注意事项:
· Windows:默认 shell 的检测顺序是 PowerShell 7 → Windows PowerShell 5.1 → cmd,装了 pwsh 的话默认不是 cmd;每个标签页可以单独选跑在本地还是某个 WSL 发行版,WSL 是一等环境不是套壳
· Linux:优先 deb / rpm;AppImage 需要 FUSE,没有就加 --appimage-extract-and-run;Wayland 下花屏加 WEBKIT_DISABLE_DMABUF_RENDERER=1
· macOS:Intel 和 M 系列是两个分开的包,别下错
给 Java 后端的三条提醒:
· 替代不了 IDEA:Spring Bean 依赖分析、MyBatis XML 与接口互跳、断点调试、热部署,这些靠的是 IDE 对项目模型的深度理解
· 语言服务相关能力需要自行确认,跳转定义、诊断、格式化这类功能以你所用版本的实际设置项为准
· 别在它里面改 Mapper XML:没有 XML Schema 校验,写错了只有跑起来才知道
七、总结:它到底该放在工具链的哪一格
经过这几天的使用,我认为它在以下场景中表现尤为出色:
适合使用 Terax 的情况:
· 大部分时间泡在终端里,需要看日志、跑脚本、小改即走
· 想用 AI,但希望改动逐块可审,而不是一把梭覆盖文件
· 代码不能出本机,需要挂本地模型断网可用
· 受够了 AI 工具要注册、要登录、要联网
· 前端开发:起服务、改代码、看预览、提交,一个窗口走完
可能需要其他方案的情况:
· 重度依赖 IDE 的语言(Java / Kotlin / C#),需要断点调试和框架级跳转
· 强依赖插件生态(特定语言的 linter、框架工具链)
· 要求开箱即用零配置,不接受弹窗拦一次
· Linux 且只想要一个绿色免安装的分发包(AppImage 有 90MB)
它让我最满意的地方不是哪个具体功能,是整体够克制:不要账号、不收数据、密钥进钥匙串、AI 用你自己的 key 或本地模型,用完即走。这几条能同时做到,说明作者对开发工具该是什么样有自己的想法。
正如官方给自己的定位 ——「Lightweight (7MB) Terminal-first AI-native dev workspace」。它没说自己要替代 IDE,只是想把终端周边配齐。把它当成终端的增强,而不是 IDE 的对手,体验反而最好。
我的用法是:IDEA 仍是主力写码,Terax 负责跑测试看日志、让 AI 先出方案、小改提交。工具分层清楚了,反而不用纠结"该卸谁"。
你的开发工具是怎么分层的?有没有为了一个功能装一整套 IDE 的经历?评论区聊聊。
注:本文基于 Terax v0.8.6 及官方 README 整理,项目处于活跃开发中(当前开放 issue 453 条),功能与表现可能随版本变化,请以官方仓库 github.com/crynta/terax-ai 为准。
本文来源于互联网,如有侵权,请联系作者删除
谢谢关注!