乐于分享
好东西不私藏

某知名终端源码又又又泄漏了

某知名终端源码又又又泄漏了


最近圈内又热闹起来了——某知名编程终端的源码又又又泄漏了。

先别急着激动,我得先说清楚一件事:这个源码泄漏,跟大模型本身泄漏,是两码事

你看到的,是它的”壳”——CLI 框架、工具调度、终端渲染这些。真正的大模型参数、训练数据,还在人家服务器里待着呢。

但这个”壳”依然很有看头。

它就像把一辆特斯拉拆开给你看——电池电机你造不出来,但它的整车架构、线束布局、软件逻辑,你都能学。

接下来的日子,我会带大家把这个终端拆开看一遍,看看它是怎么把”帮我写个功能”这种自然语言,变成一行行代码、一个个 git commit 的。

这是系列第一篇,先看整体架构。


先搞清楚:它到底是个什么

某知名编程终端,本质上是一个智能体终端

什么意思?传统的终端是”你敲命令,它执行”,它是”你说话,它理解、规划、执行”。

举个栗子:

传统终端git commit -m "fix bug",你得自己知道用 git、知道要 commit

智能体终端:”帮我修一下这个 bug”,它自己读代码、理解问题、改代码、提交

差别在哪?它有脑子


技术栈:一套”熟面孔”

这个终端的技术选型挺有意思:

这套组合不是我随便说的,源码里就是这么写的。

选 Bun 而不是 Node,图的就是快——CLI 工具启动慢了很烦人。

用 React 写终端,这操作挺骚的,但确实好用——组件化思维,写起来舒服。


架构:一个”洋葱”模型

把这个终端剥开,大概是这样的:

每一层各司其职:

  • • 外皮:你打字的地方,React 渲染的终端 UI
  • • 皮层:解析你输入的命令
  • • 肉层:跟 AI 沟通,决定要干什么
  • • 核层:干活的工具们——文件操作、Shell 执行、网页抓取
  • • 芯层:状态管理,保证数据一致性

启动:为什么这么快?

这个终端启动只要 100 多毫秒。

怎么做到的?

并行

普通程序启动是串行的:读配置 → 读凭据 → 加载模块 → 启动,每步等上一步。

它的做法:读配置、读凭据这两个慢活,同时后台跑,主线程加载模块的同时,凭据已经准备好了。

这就是工程优化的艺术——不是靠魔法,是靠精心设计。


核心引擎:一个”翻译官”

整个终端最核心的部分,是一个查询引擎

它的角色就像一个翻译官:

  1. 1. 你说:”帮我重构这个组件”
  2. 2. 它翻译成 AI 能懂的格式
  3. 3. AI 返回一个计划:”先读文件、再分析结构、然后改代码”
  4. 4. 它按计划执行工具
  5. 5. 把结果翻译回给你

这个过程是流式的——你能看到它在”思考”、”执行中”,不用干等。


工具系统:一把”瑞士军刀”

这个终端能干很多事,靠的是它的工具系统:

  • • 文件读写
  • • Shell 命令执行
  • • 网页抓取
  • • 子智能体调用
  • • …

聪明的是,它不会把所有工具都加载——只加载你环境需要的。


MCP:一个”外挂”接口

这个终端支持 MCP 协议(Model Context Protocol)。

通俗点说:任何人都能给它写插件

你想让它能调你的私有 API?写个 MCP 服务就行。

你想让它能操作你的内部工具?写个 MCP 服务就行。

这就是开源的好处——可扩展性拉满


安全:不是你想干啥就干啥

它有权限控制:

  • • 危险操作要你确认
  • • 有白名单机制
  • • 所有操作有日志

毕竟让 AI 操作你的电脑,还是得有个刹车。


小结:不只是个工具

看完这堆东西,我的感受是:

这玩意儿不只是一个 CLI 工具,它更像AI 时代的终端操作系统

传统终端是”命令行界面”,它是”智能体界面”。

它证明了:当传统系统工具遇上现代 AI,能产生怎样的化学反应。


下一篇,我会拆开它的工具系统,看看这把”瑞士军刀”是怎么设计的。

要是觉得这系列有用,点个关注,后续持续更新。

吃瓜结束,干活去了 🍉