上个月我在一块ESP32开发板上调一个外设驱动,电脑放在工位上,人蹲在测试台旁边,一遍改menuconfig一遍烧录。旁边没有 IDE,只有一个开了三个标签页的终端:一个跑着串口监视器,一个是ssh到服务器看日志,还有一个就是我想写代码却不知道从哪儿下手的地方。当时我就想,如果有一个 AI 编程助手能直接活在终端里,不用切窗口、不用鼠标点按钮,就蹲在命令行里听我说话,那该多好。后来我试到 Super Code,这个想法成了现实,而且它解决的不止是"在终端里能用 AI"这一件事。
Super Code 是一款原生跑在终端里的 AI 编程助手,支持自然语言生成命令、代码解释、仓库级问答、自动修复报错。它特别适合三种人:第一种是常年在 SSH 远程机器上干活、没有图形界面的运维和后端;第二种是搞嵌入式、单片机,天天跟串口终端和交叉编译链打交道的人;第三种是已经用惯了tmux终端复用,不想要再开一个重型 IDE 占内存的开发者。这篇文章我不打算写成官方的 README 复述,而是从我实际折腾了两周的经验出发,讲讲 Super Code 到底解决了哪些真实痛点、怎么把它接入自己的工作流,以及它跟 Cursor、Copilot 这些主流助手比,谁更适合什么场景。
1. 为什么一个"终端里的 AI 助手"是刚需,而不是锦上添花
1.1 GUI 助手在三个场景里真的会让人抓狂
我最早用的也是 VSCode 加 Copilot,或者 Cursor,说实话在纯前端、后端 Web 开发里它们体验确实好:有上下文,能跳转,能直接在代码里给你补全。但一旦离开图形界面,它们的短板就暴露得非常干脆。
第一个场景是远程开发。你ssh进一台云服务器或者公司的堡垒机,上面没有桌面环境,只有一堆命令行工具。你总不能为了用 AI 再装一个 X Server 转发图形界面。这时候你需要的不是"在 IDE 里帮你补全的 Copilot",而是"在终端里能读懂你正在敲什么命令、能看穿你当前工作目录和 git 状态的助手"。Super Code 的设计原点就在这儿:它就是为纯命令行环境生的。
第二个场景是嵌入式开发。ESP32、STM32,这些项目经常要跟idf.py menuconfig、openocd、arm-none-eabi-gcc打交道。这些工具的交互全在终端里完成。你在写CMakeLists.txt时想让 AI 解释一下某个target_compile_definitions的写法,或者想让它帮你生成一段初始化 I2C 的代码,如果每次都要复制到网页聊天框里,来回切换的效率实在太低了。
第三个场景是终端的惯性使用者。我身边有些老程序员,工作流就是tmux+vim+git,他们已经习惯了鼠标只用来复制粘贴。对他们来说,为了一个 AI 功能,被迫去打开带有 AI 插件的 IDE,是很别扭的一件事。他们需要的不是一个"有终端的 IDE",而是一个"长在终端里、可以随时召唤的 AI 同事"。
1.2 终端形态带来的不可替代的上下文优势
Super Code 和网页版 ChatGPT 最大的区别,就是它天然把你的终端上下文作为对话的"参考书"。
官方虽然没有吹得太玄乎,但我实际用下来,它会自动读取这么几样东西:
- 当前 shell 的历史记录和当前输入的未提交命令;
- 当前工作目录下的
.git状态,包括分支、改动文件、最近 commit 信息; - 系统的环境变量和 shell 类型(bash/zsh);
- 你最近执行的几条命令及其输出(特别是报错信息)。
这意味着什么?举个例子,你在终端里跑pytest,有一堆测试挂了,终端里飘着红色的 traceback。你只需要在 Super Code 的对话行里输入"帮我看看这个报错怎么回事",它不需要你手动贴报错信息,因为它已经从上一条命令的输出里拿到了。它会直接告诉你问题出在哪个模块的哪一行,大概率原因是什么,甚至已经帮你写好了修复命令。这就是"活在你的终端里"最实在的价值——它不用问你要上下文,因为它自己看得见。
我在用 Cursor 的时候,经常需要自己 Cmd+C / Cmd+V 把报错贴给 AI;但是在 Super Code 里,这个动作被削掉了。别小看这一个动作,一天下来省下来的时间至少二十分钟,更重要的是,你不会因为懒得复制而放弃求助 AI。
2. Super Code 的核心能力拆解:先把底牌看清楚
2.1 自然语言到命令的中转站:解决"命令记不全"的问题
这年头没人能记住所有命令的拼写,尤其是那些很长又低频的。比如ffmpeg的滤镜参数、openssl的证书转换语法,我每次都要翻文档。Super Code 的第一个基础能力就是把自然语言翻译成命令。
我实测了一个非常典型的场景:我需要把当前目录下所有.wav文件转成 16kHz 单声道的.mp3,还要保持文件名不变。我直接输入:
把当前目录下所有 wav 文件转成 16kHz 单声道的 mp3,文件名保持不变Super Code 在消息区域回显了一条命令:
for f in *.wav; do ffmpeg -i "$f" -ar 16000 -ac 1 "${f%.wav}.mp3"; done它不仅仅是把这句话翻译成了命令,还考虑了三个细节:-ar 16000音频采样率、-ac 1声道数、${f%.wav}文件名后缀替换。这些细节恰恰是新手最容易漏掉的。如果你直接去问搜索引擎,大概率会得到一个非常朴素的ffmpeg -i input.wav output.mp3,然后你发现码率、声道全都不对。
但这有一个前提:它会先把命令回显给你看,而不是直接执行。你需要按回车确认,或者直接拒绝。这种设计很关键——AI 的命令理解能力再强,也不能跳过人工确认。尤其是那些会rm -rf、会覆盖文件的命令,我建议你养成先看再跑的习惯。
2.2 仓库级代码问答:它认识你的整个项目
Super Code 不只是一个命令翻译器,它能读取你当前项目目录里的代码结构。这就意味着你可以问它一些很"上下文相关"的问题,比如:
这个项目里是怎么处理用户登录鉴权的?把相关的文件和函数列出来。它不会给你一个空泛的"常见的 JWT 鉴权流程是……"的废话,而是会基于当前仓库的实际代码,告诉你src/auth/login.go里用了gin的 middleware,utils/token.go里有个GenerateToken函数,config/config.yaml里有jwt_secret的配置项。并且它会在回答里标注引用的文件路径,方便你直接查看。
这种能力的原理类似于"代码库索引":Super Code 会为当前 git 仓库构建一个轻量索引,把文件结构、函数签名、关键注释提取出来。它不需要把整个仓库塞进模型上下文,而是按需读取相关文件片段。所以它的响应速度很快,就算仓库里有几万个文件,也不会卡到没法用。
我跟它做了一次比较有意思的对话:我在一个用platformio管理的 ESP32 项目里问它"现在的分区表是怎么配的,Flash 够不够用?"。它读了partitions.csv和platformio.ini之后,告诉我当前配置中有 4MB Flash,app0 分区 1.5MB,spiffs 分区 0.5MB,并且提示我如果启用了CONFIG_ESP32_SPIRAM,项目实际占用的内存会更大,建议调整。这个回答不是背知识点,是真真切切地基于我的项目现状做的判断。这比那种"什么都懂但不了解你项目"的通用 AI 有价值太多。
2.3 自动修复报错:把"复制报错-问 AI-拿答案"压缩成一条指令
这里我要重点讲一下它的报错自动抓取机制。Super Code 启动后会在后台监听当前 shell 进程的输出,注意它只监听你当前的那个终端会话,不是系统全局的。当你运行一条命令并失败时,它可以自动将最后一段错误输出提取出来,作为上下文附加到你下一次提问中。
比如我在 WSL2 里编译一个 Linux 内核模块,make报了一个头文件找不到的错误。这个报错信息非常长,路径嵌套了三层。我直接在 Super Code 里输入:
这个头文件路径问题咋解决?它在回答里先复述了我刚才报错的关键片段,再给出解决方案。我觉得这个复述动作很关键,说明它确实读到了这段报错,而不是在猜。
然后它给出的建议是:在Makefile里加一句ccflags-y += -I$(src)/include,还解释了为什么$(src)比$(PWD)更可靠。这句话正好点到了内核模块编译的一个经典坑:直接用PWD会被 make 的-C参数影响,导致路径指向错误。这些细节说明它不是只做报错文本匹配,而是真的理解了这个错误在特定构建系统里的成因。
2.4 可以当作 Shell 脚本生成器:批量任务的好帮手
除了上述三个被官方列为卖点的能力,我用得最频繁的其实是它帮我写一次性脚本。比如我下载了一批数据集,有train/和test/两个目录,我想统计每个类别的样本数量,还想把类别不均匀的文件列出来。这种需求如果想自己写,会花几分钟查 API 文档;但是用 Super Code 直接描述需求,它生成的 Python 脚本能在大部分情况下直接跑通。
更让我好感的是它生成的脚本里会包含异常处理和注释。有一次我让它写一段批量重命名文件的脚本,它自动加了pathlib的.exists()检查和try/except,还会对重命名前后做一个预检查,防止from和to指向同一个文件。这种"防御性编程"的自觉源于它对常见失败模式的了解,而不是简单地堆代码。当然我依然会一行一行读它生成的脚本,AI 写的代码没有人兜底是不负责任的,但至少在初稿层面,它帮我把大量"脚手架"工作做完了。
3. 安装与配置:从零到跑通的完整细节
3.1 支持的平台与安装方式
Super Code 官方支持 macOS(Intel 和 Apple Silicon)、Linux(x86_64 和 aarch64)、Windows 10/11(原生终端和 WSL2 均可用)。这点我拉满好感,因为多数终端 AI 工具对 Windows 原生环境的支持都像后妈养的,Super Code 至少做到了开箱可用。
安装方式非常简单,两条路可选:
方式一:用包管理器安装。macOS 上用 Homebrew:
brew install super-codeDebian/Ubuntu 上建议直接下载
.deb包,或者用官方脚本:curl -fsSL https://get.supercode.dev | bash方式二:用原生二进制安装。官方在 GitHub Releases 里提供各平台编译好的二进制,下载解压后把可执行文件放到
PATH里就行。如果你对安全要求高,也可以自己从源码编译,但那不是一般用户需要的。
我在一台最老旧的 Ubuntu 18.04 服务器上也试过,直接拷贝静态编译的二进制进去就能跑,不需要额外动态库,这点对远程服务器相当友好。
3.2 配置文件:第一次启动该填什么
启动 Super Code 之后,它会自动生成配置文件~/.supercode/config.json。打开看一下,核心配置项并不多:
| 配置项 | 作用 | 我的建议 |
|---|---|---|
model | 指定底层模型标识 | 官方默认是deepseek-v3,但我个人更常用claude-sonnet-4,因为代码感更好 |
api_base | 设置兼容接口的模型服务地址 | 如果你想接本地部署的模型或第三方中转,改这里 |
api_key | 模型服务的密钥 | 建议用环境变量SUPERCODE_API_KEY注入,不要硬写进配置文件 |
context_mode | 控制自动读取上下文的层级 | full/repo/shell三档,默认repo,我觉得这是性价比最高的档位 |
confirm_before_run | 是否需要确认后执行命令 | 默认true,强烈建议保持 |
history_limit | 读取 shell 历史的最大条数 | 默认 50,如果想让它更懂你的习惯可以调高到 200 |
我第一次配置时踩了个小坑:因为是在远程服务器上安装,我习惯性把api_key直接写进了配置文件,结果这个文件是644权限,同事都能读。后来我改成用环境变量注入,权限这块就安心了。如果你用的是 zsh,可以在~/.zshrc里加一行:
export SUPERCODE_API_KEY="你的密钥"然后在 Super Code 的配置里把api_key字段留空,它启动时会优先读取环境变量。这样密钥不会落到磁盘上的明文字段里,至少多一层保险。
3.3 启动方式与快捷键:怎么把它召唤出来
Super Code 通常有两种启动形态:
独立对话模式:在终端里输入
supercode,它会进入一个全屏的交互式 TUI 界面,风格类似htop,左侧是对话历史,右侧是当前回答的 Markdown 渲染区。这个模式适合长对话、需要浏览大量代码的场景。内联助手模式:在任意 shell 会话里,你可以通过快捷键唤醒一个浮层窗口。例如我在 zsh 里设置
Ctrl+Space呼出输入框,直接在浮层里输入问题,回答会以内联的方式插入到当前终端缓存区,不需要打断正在运行的前台任务。这么设计的好处是:你正在跑一个长任务时,不想中断它,但又想顺手问个问题。你可以完全并行地进行,任务继续在后台跑,Super Code 的浮层浮在终端上面,两不打扰。
第二种形态是我日常使用率最高的。我用tmux开多个窗口,在一个窗口里跑开发服务器,另一个窗口开 Super Code 浮层,查问题查资料完全不影响第一个窗口的输出。如果你也习惯终端复用,这个形态会很顺手。
3.4 对接本地模型:零成本方案和离线兜底
前面提到api_base是可配置的,这意味着 Super Code 不仅能连接官方托管的模型,也可以对接本地大模型服务。我在一台有 24GB 显存的机器上跑过Qwen2.5-Coder-14B,用vllm起一个 OpenAI 兼容的服务:
vllm serve Qwen/Qwen2.5-Coder-14B-Instruct --port 8000然后修改配置:
{ "api_base": "http://localhost:8000/v1", "model": "Qwen/Qwen2.5-Coder-14B-Instruct" }实测下来,14B 的模型对终端命令的理解能力稍弱,复杂一点的仓库级问答会答得比较模糊,但简单的命令翻译、报错小结是没问题的。如果你只是在没有外网的环境里用一用,本地模型兜底绝对够。这也让 Super Code 多了一层"可离线化"的价值,对数据敏感的团队来说,这个自由度很重要。
4. 真实场景实测:从 ESP32 调试到 WSL2 排障
4.1 嵌入式场景:ESP32 终端开发的"外挂"
我前面提到过在 ESP32 项目里测试 Super Code 的仓库问答。这里讲一个更具体的操作链路。
我需要在 ESP32 项目里实现一个简单的 NTP 时间同步,但是记不住esp_netif_sntp这套 API 在 IDF 5.x 之后的改名规则。我没有切到浏览器,直接在项目目录下问:
这个项目里如果要用 SNTP 获取时间,该调用哪些 API?注意 IDF 版本是 v5.2。它给出的回答直接引用了当前项目managed_components里某个依赖的头文件路径,指出在 v5.2 中esp_netif_sntp.h替代了旧的esp_sntp.h,并给出了初始化代码片段:
esp_netif_sntp_init(&sntp_config); esp_netif_sntp_start();这个答案如果让没有 AI 的人去翻文档,可能要花上十几分钟去搜索 IDF 的版本迁移指南。而 Super Code 因为能同时看到"项目依赖版本 + 头文件路径 + 编译环境",它给出的代码天然契合当前项目。
更重要的是,它还能帮你生成针对这个项目的sdkconfig.defaults修改建议,比如启用CONFIG_SNTP_TIME_SYNC_METHOD什么的。这些配置项在不同 IDF 版本里叫法不一样,容易踩坑,它帮你省去了试错的成本。
4.2 WSL2 里的中文乱码问题:一个顺手解决的意外
另一个让我印象深刻的例子是在 WSL2 环境下。我因为工作需要装了 Ubuntu 发行版,进入终端后跑ls,中文文件名显示成乱码的一大片。这种问题通常跟 locale 环境有关,但我一直懒得深入排查。
某次我在 WSL2 终端里运行locale时看到大大小小的POSIX设置,就顺手在 Super Code 里问了一句:"为什么 WSL2 终端里中文文件名乱码?"
它先是解释了原理:WSL2 的环境变量LANG没有设置为 UTF-8,然后直接给出了修复命令:
sudo sed -i '/^LANG/d' /etc/default/locale echo 'LANG=en_US.UTF-8' | sudo tee -a /etc/default/locale sudo locale-gen关键是它没有把那句LANG=zh_CN.UTF-8塞给我,而是用了en_US.UTF-8,因为它知道这是大多数 Linux 服务器的默认选择,且能覆盖中文显示。我执行之后,重新打开的终端里中文文件名就正常了。
这不算什么高深的功能,但这种"推己及人"的细节真的很加好感。很多终端工具只会机械回答你输入的问题,不会主动考虑到你的真实环境配置和最佳实践。这一点让我觉得 Super Code 真的有在揣摩用户意图。
4.3 远程服务器上排查 Python 依赖冲突
我在ssh到一台服务器部署一个 Flask 应用时,启动后总是报错:
ImportError: cannot import name 'Flask' from 'flask'我知道这是依赖环境混乱导致的,但是不知道具体是哪一个包路径出了问题。Super Code 根据我这边的输入,自动把报错信息带进对话,然后它给了一条诊断命令:
python3 -c "import flask; print(flask.__file__)"我执行后发现路径指向了/usr/local/lib/python3.8/dist-packages,而不是当前虚拟环境的路径。它接着建议我删除当前的虚拟环境重建,并激活后再安装依赖。整个排查过程是引导式的,不需要我自己像搜索引擎那样来回试探。这其实是终端 AI 助手比 IDE 插件更强的地方:IDE 插件通常只关注代码编辑,很少帮你指挥终端命令;而 Super Code 把命令执行、结果读取、下一步建议串成了一个闭环。
5. 和主流 AI 编程助手横向对比:选谁不只看性能
5.1 竞品功能对比表
现在市面上的 AI 编程助手大致分三类:IDE 内置型、终端命令型和浏览器型。Super Code 属于终端命令型,但它在功能覆盖上已经触到了 IDE 型的一部分界限。我拉了一张表做个直接对比:
| 工具 | 核心形态 | 代码补全 | 终端命令执行 | 仓库级问答 | 自动读取报错 | 适合场景 |
|---|---|---|---|---|---|---|
| Cursor | 独立 IDE | 极强 | 内置终端但 AI 不直接操作 | 很强 | 需要手动粘贴 | 前端/全栈开发,重度重构 |
| VSCode Copilot | IDE 插件 | 极强 | 不涉及 | 强 | 需要手动粘贴 | 日常编码,补全为主 |
| Windsurf | 独立 IDE | 强 | 内置终端,可执行命令 | 强 | 部分自动 | 团队协作,多文件修改 |
| Trae | 独立 IDE | 强 | 内置终端 | 强 | 需要手动 | 习惯国内生态的开发者 |
| Cline | VSCode 插件 | 中 | 可以执行终端命令(需授权) | 中 | 部分自动 | 需要插件式 Agent 工作流 |
| Super Code | 原生终端 | 中等 | 原生支持,确认后执行 | 强 | 自动读取 | 远程/嵌入式/终端重度用户 |
需要说明的是,我没有贬低 IDE 型助手的意思。Cursor 的代码补全和联想能力依然是我见过的天花板,尤其当你同时编辑多个文件、跨文件重构时,它的上下文窗口和大模型调度机制确实高效。但 Cursor 是一个完整的 IDE,意味着你必须在它的环境里写代码,你没法在vim里享受它的能力。
5.2 Super Code 的优势与明显短板
先聊优势。终端形态带来的最大优势,就是它可以覆盖 IDE 触及不到的"系统级"任务。比如你可以让它帮你修改 crontab 计划任务,它可以先运行crontab -l看当前已有任务,再给出新增任务的具体命令,然后等你确认后执行。这种"查看-分析-操作"的循环,在 IDE 型助手里是很难实现的,因为它们和系统 shell 是隔离的。
另一个优势是资源占用。我用 Cursor 开一个中型项目,内存占用经常超过 2GB,而 Super Code 就是一个 TUI 程序,加上后端的语言模型服务,本地资源占用可以忽略不计。在一台只有 4GB 内存的云服务器上,这个差距是决定性的。
再说短板。第一,Super Code 的代码补全能力很弱。它本质上不是一个"按一下 Tab 就续写"的工具,它更擅长的是"你描述需求,它给你整段代码或命令"。所以如果你指望它像 Copilot 一样在你敲代码过程中实时补全,那你会失望。第二,它的多文件同时编辑能力目前还比较有限,当你需要跨五个文件同步修改某个接口时,它还做不到像 Cursor 那样生成一个多文件 patch 然后让你一键接受。第三,TUI 界面对纯鼠标用户不太友好,你得习惯键盘操作。
5.3 我的选择逻辑:工具是环境的仆人
这里我想给一个自己的判断标准:不是 AI 助手越强越好,而是越贴合你的工作环境越好。
- 如果你每天大部分时间都在 VSCode 或者 JetBrains 里写业务代码,Copilot 或者 Cursor 插件仍然是最合适的。你的工作流里代码编辑是核心,终端只是配角。
- 如果你像我一样,一半时间在远程服务器上操作,一半时间在本地终端里编译调试,那 Super Code 这种原生终端助手的收益会远大于 IDE 插件。因为它不需要你打开 IDE,不需要你上传项目到某个云服务,也没有"离开 IDE 就没法用"的尴尬。
- 如果你是运维工程师,日常工作主要就是 SSH 到各种服务器上改配置、看日志、执行脚本,那你只需要 Super Code,甚至不需要 Cursor。因为你的"代码"不是主程序,而是命令和脚本。
我自己现在的搭配是:本地写需要重构的复杂功能时用 Cursor,日常服务器维护、嵌入式编译、快速查命令时用 Super Code,两个工具井水不犯河水。它们不冲突,因为各自守住了自己的阵地。
6. 实战中积累的配置技巧与避坑经验
6.1 上下文模式怎么选
我前面说过context_mode有三种分档,这里展开讲一下怎么选。
shell模式:只读取当前命令和最近的输出。内存占用低,私密性好,适合你在服务器上处理一些与代码仓库无关的系统管理任务。在这个模式下,Super Code 不会扫描你的代码仓库,也就不会回答"这个仓库里 xxx 函数在哪里"这类问题。repo模式:默认模式,会扫描当前 git 仓库的文件索引和关键片段,但不读取垃圾文件。回答代码问题时用的就是这种模式。它的优点是能回答仓库级问题,缺点是如果你操作的是一个大仓库,初始索引需要几秒钟,且会占用一点 CPU。full模式:会把当前工作目录下所有文件的内容(包括二进制文件的文本化信息)塞进上下文。理论上回答最准,但基本只适合小型项目。我在一个有 3000 多个文件的 monorepo 里开过一次,直接导致响应变慢。最后我还是老老实实用repo模式。
我的经验是:日常开发用repo,远程服务器上临时处理文件用shell,只有明确知道仓库很小才用full。不建议一开始就开full,否则你会被它的迟钝劝退。
6.2 模型选择的玄学:不是越贵越好
Super Code 支持多种模型后端,官方配置里默认给了一个性价比不错的模型,但我自己测过的几个模型有很明显的性格差异:
claude-sonnet-4:代码逻辑最稳,解释问题最通透,复杂问答首选,但生成速度中等。deepseek-v3:速度飞快,命令翻译和脚本生成都很准,仓库级问答稍弱,日常轻量任务很合适。qwen2.5-coder-14b(本地):离线可用,隐私性好,但只建议用来做简单的命令翻译和报错概括,别指望它做深刻的重构建议。gpt-4o(如果通过兼容接口接入):综合能力平衡,但在终端场景下没有明显优势,反而因为响应偏慢让我不愿意用。
我的建议是:默认用deepseek-v3跑日常,遇到复杂的代码逻辑问题再/model切换成claude-sonnet-4。Super Code 支持在会话中动态切换模型,不需要重启。这个功能非常实用,相当于你在一个工具里同时雇了两个不同性格的助手。
6.3 常见坑:权限确认与危险命令
前面强调的"确认后执行"机制,我实际使用中也踩过一次坑。有次我让它帮我清理一些临时文件,它给出的命令是rm -rf /tmp/supercode_cache_*,我瞄了一眼路径发现以/tmp开头,觉得应该安全,就按了确认。结果它执行的时候,因为 shell 的通配符展开方式和我预想不一致,把/tmp/supercode_cache_old目录里的一个正在被占用的日志文件也删了。还好只是日志,但如果那是一个正在运行的进程的数据库文件,后果就严重了。
因此我给自己定下几条纪律,也建议所有使用终端 AI 助手的朋友遵守:
- 涉及
rm、mv、覆盖写入的命令,一定要逐字检查,尤其是通配符部分的路径。 - 让 AI 先输出命令,你复制到另外的终端窗口里执行,而不是直接在 Super Code 里按确认。虽然这样麻烦一点,但多一层隔离就多一层安全。
- 不要在配置里写明文密钥;不要在开放目录下存放包含个人信息的对话记录。
另外,Super Code 的对话历史默认存在~/.supercode/history/下,如果你在共享服务器上使用,记得定期清理,或者把权限设为700。这些细节虽然琐碎,但对一个长期使用的终端工具来说,关系到你的账号安全和隐私边界,值得花十分钟处理。
6.4 和 tmux 搭配的高效工作流
最后分享一下我现在最稳定的工作流。
我打开终端后会先启动一个名为dev的 tmux 会话,然后在这个会话里开三个窗口:
- 窗口一:跑开发服务器或实时编译,输出大量日志。
- 窗口二:普通 shell,用来执行 git 操作、运行测试脚本。
- 窗口三:运行 Super Code 的 TUI 模式,专门用来进行对话式问答。
当窗口二的命令报错时,我不用切到窗口三手动输入问题上下文,因为 Super Code 已经监听到同一个 shell 环境的输出。我只需要在窗口三说出"看一下刚才的报错",它就知道指的是窗口二里的那一次失败。这个跨窗口的上下文关联,靠的是它监听当前 tmux 会话内的 shell 输出,而不是简单的剪贴板共享。实际用下来,这个配合让我的排错速度提升了一大截。
如果你用的是screen而不是tmux,Super Code 也支持,但官方文档里明确建议优先使用tmux,因为它的 pane ID 更稳定,上下文关联更可靠。这是个真实的兼容性差异,建议直接用 tmux。
7. 它还需要补足的短板:我对 Super Code 的保留意见
虽然我在前面给了不少好评,但它的不成熟之处也很明显。
第一是多文件编辑能力。你让它给一个跨模块的重构思路,它能说得头头是道,但你要它一次性生成一个涉及五个文件的 diff 补丁,它就露怯了。它会逐个文件给你代码块,但你得手动打开每个文件去粘贴。相比之下,Cursor 的Apply按钮可以直接把改动应用到指定文件。这块体验差了不止一个身位。
第二是上下文窗口的调度策略。当仓库比较大的时候,它虽然不会把所有文件都加载进来,但在回答"某个函数在哪里被调用"这类问题时,它偶尔会漏掉部分文件,给出的答案不够全面。这应该是索引精度的问题,希望后续版本能修复。
第三是TUI 的易用性。虽然 TUI 本身就是键盘党的福音,但如果你是一个习惯用鼠标选中、滚动、点击的普通人,Super Code 的学习成本会有点高。特别是它的长文本 Markdown 渲染,在大段输出时快速跳转不是特别顺滑。我遇到过一次回答特别长的情况,想从上往下找某个关键词,没有类似/搜索的功能,只能慢慢翻页。
好在开发者的迭代速度很快,我关注到的几个 Issue 都已经在路上了。比如"支持多文件 patch 预览"和"TUI 内搜索"这两个功能,官方的项目看板里都已经标了 In Progress。作为用户,我选择相信这个方向是对的。
8. 写在最后:从"能用"到"好用"的一段脚程
如果你问我 Super Code 值不值得梭哈,我的回答是:先分清你的主场在不在终端。如果你是那种电脑前永远挂着 Cursor 或者 VSCode 的人,那你可能用不到它。但如果你和我一样,住在终端里,每天有大量时间在服务器、嵌入式工具链、tmux 之间腾挪,Super Code 很可能是今年让你生产力提升最明显的工具。
我给它加进日常工具链之后,最直观的感受不是"省了百分之多少的时间",而是"我几乎不再因为记不住命令而切到浏览器搜索了"。那种沉浸式地在终端里完成所有事的体验,会让人上瘾。它像一个从来不嫌你烦、随时在线、并且对你的 shell 世界一清二楚的助手坐在旁边,你说一句,它动一下,错了再改,改了再试。
当然,工具终归是工具。它帮你写命令,但最终要不要执行、代码能不能上生产,责任还是在你。这也是我为什么一直强调"确认后执行"和"人工审查生成代码"这两件事。用 AI 的前提是你比 AI 更清楚自己在做什么,而不是把决策权整个让渡出去。
如果你也在用 Super Code,或者准备尝试,欢迎在评论区交流你的工作流。尤其是那些在嵌入式、运维、数据分析场景里玩出新花样的朋友,我很想听听你的故事。毕竟终端的世界那么深,一个人踩的路,不如一群人踩得明白。