字数 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在写新功能,互不干扰。

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。

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才开始动手。

这个模式还自动开启了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.md和AGENTS.md也支持,agent会自动读取项目里的记忆文件。Skills和Slash 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 build,bun 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 key和subscription,但交互体验从终端变成了现代化的桌面App。
21st.dev这团队之前在21st.dev上做UI组件市场,积累了设计品味。1Code的UI看得出来,不是程序员随便糊的Electron壳。
免费,Apache 2.0,GitHub上star涨得很快。
GitHub地址:
https://github.com/21st-dev/1code
夜雨聆风