乐于分享
好东西不私藏

一个桌面App同时调用Claude Code和Codex:开源AI编程工作台

一个桌面App同时调用Claude Code和Codex:开源AI编程工作台

字数 1997,阅读大约需 10 分钟

我一直想要一个东西:能在一个窗口里跑Claude Code和Codex,能看到diff预览,能把agent丢到后台让它自己跑,能像Cursor那样审阅改动而不是盲等。

然后上周我在GitHub上翻到了21st-dev/1code,这东西把我想要的全做了。

1Code是什么

1Code是21st.dev团队做的开源桌面App,Apache 2.0协议。两个作者Sergey和Serafim,一直在做开发者工具。他们给Claude Code和Codex做了个统一的图形界面,本地优先,代码留在自己机器上。

macOS有原生客户端,Windows和Linux也能跑,还有个Web版。Pro订阅解锁后台Agent和自动化,但核心功能全部免费开源。

功能详情

我不打算列feature list,GitHub README已经写得很全了,挑几个装完后让我觉得「早该有人做这个」的点。

1. Git Worktree隔离:每个聊天跑在自己的分支里,主分支纹丝不动

每次我们新建一个聊天,1Code会自动创建一个Git worktree。agent在里面随便改、随便commit、随便推,主分支干干净净。聊天结束,改动满意了就merge回去,不满意直接删worktree,主分支毫发无伤。

以前我用Claude Code CLI的时候,每次跑之前都得手动切分支,跑完了再手动检查改了什么。偶尔忘了切分支,agent直接往main上commit,能吓一跳。1Code把这个流程全自动化了。

多个worktree还能并行跑,一个agent在修bug,另一个agent在写新功能,互不干扰。

1Code的Git Worktree隔离功能演示:每个聊天会话运行在独立的worktree中,主分支保持干净

2. 可视化UI:不用盯着终端猜agent在干什么

这个UI做得像Cursor。左侧是文件树和聊天列表,中间是对话区,右侧可以展开详情面板。

agent执行每一条命令、每一次文件编辑、每一次网络搜索,全都在界面上实时显示。bash命令跑的是什么,文件改了什么行,diff长什么样,都看得见。git操作(commit、push、开PR)直接显示在对话气泡上,点一下就能看详情。

内置了一个完整的Git客户端。stage、commit、push、开PR、切分支,不用跳出App。还有一个文件预览器,支持Cmd+P搜索和语法高亮,图片也能直接预览。

内置终端也在里面。侧边栏或者底部面板都能打开,Cmd+J切换。

我最常用的一个细节:Chat Forking。从agent的任意一条回复fork出一个子聊天,用来探索替代方案。agent给了一个实现思路,我觉得可能有更好的,fork一下,让另一个agent走不同的方向。两个分支互不干扰,最后挑一个merge。

1Code的主界面:Cursor风格的可视化UI,实时diff预览,内置Git客户端

3. Claude Code和Codex,一键切换

1Code支持Claude Code和Codex两个agent,一个下拉菜单就能切。还能接入自定义模型和提供商,用自己的API key。

Claude Code擅长深度推理和架构级改动,Codex在确定性多步骤任务上更稳。我以前想对比两个工具得开两个终端,现在在同一个界面里切一下就行。同一个项目、同一个worktree、同一个对话上下文,换不同的agent去跑。

消息队列这功能也很实用。agent正在跑的时候,我们可以继续打字,prompt自动排队,agent跑完了接着处理下一条。不用等。

还有一个看板视图,把agent会话可视化成卡片,拖拽管理。项目多了以后这个很有用。

4. Plan Mode:让agent先出方案,别上来就改代码

Claude Code CLI的默认行为是:我们给一个prompt,它直接开始改文件。有时候改到一半发现方向错了,白改一堆代码。

1Code的Plan Mode改变了这个流程。开启后,agent收到任务先问澄清性问题,搞清楚我们到底要什么。然后生成一个结构化的执行计划,markdown格式预览。我们审阅、修改、确认之后,agent才开始动手。

1Code的Plan Mode:Agent先问澄清性问题,生成结构化计划,审阅后再执行

这个模式还自动开启了Extended Thinking,agent的推理过程可视化展示。子任务(sub-agent)在侧边栏里以任务列表形式呈现,跑完一个勾一个。

5. 后台Agent:合上电脑,agent继续干活

这是Pro订阅的功能,但我觉得这个挺有价值的,对很多人付费也值得试试的。

后台Agent跑在云端沙箱里,我们关了电脑它继续工作。每个后台会话有独立的环境,代码clone进去,依赖装好,agent开始跑。跑完自动commit、push、开PR。

还有一个Live Browser Preview,后台agent跑的服务可以直接在浏览器里预览。我们在手机上用PWA就能查看进度。

6. MCP和插件市场:不需要手写配置文件

1Code内置了完整的MCP(Model Context Protocol)服务器管理。在UI里开关、配置、删除MCP服务器,不用去翻JSON配置文件。

插件市场一键浏览安装。MCP工具调用在界面上有格式化的输入输出展示。聊天框里还能@mention MCP服务器,直接引用外部工具。

Claude Code的CLAUDE.mdAGENTS.md也支持,agent会自动读取项目里的记忆文件。SkillsSlash Commands全兼容。

7. 自动化触发器:从GitHub、Linear、Slack唤醒agent

这也是Pro功能,但设计思路值得讲。

GitHub issue或PR里@1code,agent自动启动处理。在Linear任务里@1code,同理。Slack消息也能触发。还可以绑定git事件:push、PR、分支变动,自动触发自动化。

每个自动化有条件和过滤器,控制什么时候触发。执行历史可视化展示,Silent Mode可以关掉响应。

想象一下:

早上起来打开GitHub,发现昨晚CI挂了。还没睡醒呢,1Code的自动化已经修好了,PR都开好了。

8. API:一行命令远程启动agent

1Code提供了REST API,可以程序化地启动agent:

curl -X POST https://1code.dev/api/v1/tasks \  -H "Authorization: Bearer YOUR_API_KEY" \  -d '{    "repository": "https://github.com/your-org/your-repo",    "prompt": "Fix the failing CI tests"  }'

指向一个仓库,给一个任务,agent在远程沙箱里clone、安装依赖、执行任务、commit、push、开PR。异步执行,轮询状态或者等通知。还能给正在跑的任务发follow-up消息调整方向。

怎么安装

两种方式。

编译模式: 从源码构建。需要有Bun、Python 3.11、setuptools。克隆仓库,跑 bun install,下载Claude和Codex的二进制文件,bun run buildbun run package:mac(或win/linux)。免费,完全自控。

懒人模式: 去1code.dev订阅,拿预编译的安装包。Pro和Max套餐解锁后台Agent和自动化。

装完之后,打开App,选一个本地文件夹创建项目,选Claude Code或Codex,开始聊天。就这么简单。

写在最后

市面上给coding agent做UI的工具冒出来不少了。Conductor是最像的竞品,macOS原生,worktree隔离,Linear和GitHub深度集成。但它不开源,也不免费。Cursor Agent模式也类似,但锁在Cursor的编辑器里。

1Code走了一条不同的路:开源、本地优先、不锁定agent。 它不是一个新的coding agent,它是给现有agent(Claude Code、Codex)套了一层好用的壳。你可以继续用Claude Code的能力,继续用你的API keysubscription,但交互体验从终端变成了现代化的桌面App。

21st.dev这团队之前在21st.dev上做UI组件市场,积累了设计品味。1Code的UI看得出来,不是程序员随便糊的Electron壳。

免费,Apache 2.0,GitHub上star涨得很快。

GitHub地址:

https://github.com/21st-dev/1code