OpenSquirrel:用Rust+GPUI写的IDE编程智能体控制台


OpenSquirrel 是一个用 Rust + GPUI 写的本地控制台,用来同时运行和管理多个 AI 编程智能体(Claude Code、Codex、Cursor、OpenCode)。

OpenSquirrel是用Rust+GPUI写的AI编程智能体控制台,让Claude Code、Codex、Cursor、OpenCode同屏运行统一管理。

OpenSquirrel完全用 Rust 编写,并利用了 GPU-UI(与 Zed 相同),但以智能体而非文件作为核心单元。它支持 Claude Code、Codex、OpenCode 和 Cursor(命令行)。这迫使我从根本上重新思考 UI/UX,而不是依赖常见的 Electron 垃圾。

既然开发者会同时用多个 AI 编程工具,那就干脆做一个统一控制台。
IDE时代已经结束, 现实情况是:我们需要一个更大的集成开发环境(IDE)。


架构:

OpenSquirrel
     │
     ├─ Agent Manager
     │
     ├─ Claude Code adapter
     ├─ Codex adapter
     ├─ Cursor adapter
     └─ OpenCode adapter

它本身不实现 agent,只是调用现有 CLI。类似:tmux + AI agents ,但有图形界面。

啥是Control Plane?就是那个在后台运筹帷幄的“隐形大手”

说到control plane,咱们得稍微扯远一点点,用一个特别简单的例子来讲清楚。

你玩过那种多人在线的网络游戏吧?比如你是个英勇的骑士,在前线砍怪。你砍的每一刀,放出的每一个技能,都是实实在在的“数据”,在游戏世界里产生了效果。这部分,就叫做 data plane,也就是真正干活的“业务层”。

但是,你有没有想过,是谁让你能看到其他玩家?是谁保证了你和队友在一个服务器里?是谁在你掉线之后帮你保存角色数据?是游戏背后那些看不见摸不着的“服务器大佬”。他们不直接参与你砍怪,但他们管着你能不能砍怪,跟谁一起砍,砍完东西归谁。这一部分,就叫做 control plane,也就是运筹帷幄的“管理层”。

Kubernetes,就是那个字母巨多的容器管理平台,就是这个道理。它底下跑着好多好多的应用程序(data plane),而它自己(control plane)就负责告诉这些程序:“你,去这台机器上跑!”“你,流量太大了,多复制几个自己!”“你,那个谁,别偷懒,起来干活!”

所以,你明白了吗?OpenSquirrel就是AI编程工具界的这个“隐形大手”,这个“control plane”。它自己不下场写代码,它没那个技术,也没那个体力。它的工作是:
指挥调度:它说,“Claude Code,你,去把这个问题给我分析透彻点!”“Codex CLI,你,按照Claude的思路,开始干活!”“Cursor,你在旁边辅助,随时准备自动补全!”切换频道:你想看谁的工作进度,轻轻一点,就能切换到谁的“直播间”,不用再满桌面找窗口了。

并排比较:它甚至能让这几个AI并排坐着,就像选秀节目的评委席一样。你把同一个问题甩给它们,然后翘着二郎腿,看它们四个谁能给出最棒的答案。这种感觉,是不是像极了“皇帝选妃”?统一管理:每个AI都有自己的小本本(也就是session,记录了聊天的历史)。OpenSquirrel把这些小本本都收上来,统一放在一个大柜子里。你随时可以翻看任何一个AI之前跟你聊了什么,不用再担心关错窗口,导致“朕的历史记录”烟消云散。

简单来说,OpenSquirrel就是你电脑里的“AI任务管理器”,一个专门管AI的AI。它不是帮你写代码的,它是帮你管那些帮你写代码的AI的。这叫什么?这叫“套娃式管理”,高级!

OpenSquirrel到底有啥本事?它凭啥能当这个“大内总管”?

这个OpenSquirrel到底有啥核心能力,能镇得住那四位大爷。

第一,也是最重要的,就是“多Agent同时运行”。

这绝对是它的看家本领。它就像一个拥有多个分屏的豪华监控室。左边屏幕显示的是Claude Code,它正在那里咬文嚼字,分析你的需求;右边屏幕是Codex CLI,它已经开始噼里啪啦地自动执行任务了;下面那个小窗口是OpenCode,它正不紧不慢地整合着各路模型的意见。而你,就坐在这面监控墙前,喝着咖啡,看着这四位大爷同时为你一个人服务。这场面,光是想想就觉得很爽,对吧?

以前你要看他们的进度,你得在四个窗口之间疯狂“Alt+Tab”,切得自己眼花缭乱,甚至可能因为手速太快,把自己正在写的论文给切出来了。现在,所有的信息都在一个窗口里,一览无余。你想重点关注谁,就把谁的窗口放大。这种“一切尽在掌控”的感觉,简直就是强迫症的福音。

第二,“Agent对比”,这功能简直是为“选择困难症患者”量身定制的。

咱们程序员写代码,经常会遇到一个情况:有个功能不知道怎么实现最好。以前咱们会去百度,去谷歌,去Stack Overflow上跪求大神。现在有了AI,咱们可以问它们。但问题是,不同AI给的答案可能不一样啊!

比如,你想写一个能连接到Redis数据库的客户端程序。你把这个问题同时丢给Claude Code和Codex CLI。Claude Code可能给你一个非常经典、健壮、但代码量稍微有点多的版本。而Codex CLI呢?它可能直接给你一个最简洁、最粗暴、但性能爆表的版本。现在,OpenSquirrel让你可以并排运行这两个Agent,让它们同时开始写,然后你就像个阅卷老师一样,左边看看Claude的卷子,右边看看Codex的卷子。你甚至还可以让Cursor在你原来的代码基础上,照着这两个新答案分别改一改,最后OpenCode再过来做个总结陈词。

这感觉,就像你点奶茶的时候,不用再纠结是选波霸还是珍珠,因为你可以同时点四杯,挨个尝一口,选出最好喝的那一杯。这,就是钞能力,哦不,是“多Agent”的魅力!

第三,“统一Session管理”,这是对付那些“记性不好”的AI的关键。

和AI聊天,最怕什么?最怕聊着聊着,它忘了刚才说过啥。虽然现在的AI都有上下文记忆,但它们各自为政。更可怕的是,你一不小心手滑,关掉了Claude Code的那个黑窗口,那么你之前和它长达两个小时、充满智慧和火花的对话记录,就全!没!了!

那种感觉,就像你辛辛苦苦写了一本小说,结果电脑死机没保存。你整个人都会从椅子上弹起来,发出灵魂深处的呐喊。

OpenSquirrel就是来拯救你的“数据保险公司”。它会统一管理每个Agent的聊天记录、你输入的指令、AI给你的回复。不管你关掉窗口多少次,不管你重启电脑多少回,只要你再次打开OpenSquirrel,点开Claude Code的聊天记录,你就会发现,它还记得你昨天跟它说的每一句话,甚至记得你当时骂它“笨蛋”的语气。这份安全感,简直比男朋友的承诺还靠谱。

看看OpenSquirrel的“内脏”:它到底是啥做的?

说完了它能干啥,咱们再满足一下好奇心,看看它内部是用什么“黑科技”做的。别怕,不复杂,咱们就当是参观一下它的“内脏”。

首先,它的骨架是 Rust。

Rust,是编程语言界一个出了名的“硬汉”。它性能极高,极其安全,而且特别擅长管理电脑里的各种进程。OpenSquirrel用它来干什么呢?用来干最苦最累的活——管理本地那些AI程序。因为你要同时跑好几个AI,它们每个都是一个独立的进程,会占用你的CPU、内存。Rust就像个高效的调度员,负责协调这些进程,谁该工作了,谁该休息了,谁占用资源太多了,Rust都能安排得明明白白。所以,OpenSquirrel跑起来非常流畅,不会让你的电脑卡成PPT,这全得归功于这位“硬汉”Rust。

然后,它的皮肤是 GPUI。

GPUI,听起来像个品牌的名字,但它其实是个做用户界面的框架。谁做的?是Zed编辑器那帮大神做的。Zed编辑器本身就以快著称,所以这个GPUI框架的核心特点就是:快,极快,用显卡渲染的快乐。

这意味着什么呢?意味着OpenSquirrel的界面不是那种网页套壳的软件,打开慢,切换卡。它是一个真正的、土生土长的桌面应用。你切换窗口,它瞬间响应;你拖动分割线,它丝般顺滑。这种“指哪打哪”的爽快感,就像是开惯了老爷车,突然换上了法拉利。而且,因为是用GPU渲染,它还能做出很多酷炫的视觉效果,让你的“AI监控室”看起来科技感十足。

所以,OpenSquirrel = Rust(硬汉骨架)+ GPUI(炫酷皮肤)= 一个又快又好看的本地桌面应用。它不是你在浏览器里打开的一个网页,而是你电脑上一个独立的、有自己生命力的程序。这意味着它更安全,你的代码和聊天记录都留在你自己的电脑里,不会被偷偷上传到某个你不知道的云端。

一句话总结

OpenSquirrel 本质是:AI 编程智能体的桌面控制台。让 Claude Code、Codex、Cursor、OpenCode 可以同时运行、比较和管理。