[{"data":1,"prerenderedAt":22},["ShallowReactive",2],{"article-claude-code-and-codex-side-by-side":3},{"slug":4,"date":5,"read_time":6,"image":7,"cta":8,"en":10,"zh":16},"claude-code-and-codex-side-by-side","2026-09-11",6,"/og.svg",{"link":9},"https://devok-1256047633.cos.na-siliconvalley.myqcloud.com/clootee/clootee-2.1.1.zip",{"title":11,"tag":12,"excerpt":13,"keywords":14,"content":15},"Running Claude Code and Codex side by side, in one place","Workflow","Two engines, several projects, tasks that take an hour. The hard part is not calling a model — it is keeping track of what is running, what it touched, and what broke.","claude code and codex, run codex and claude code together, multi session coding agent, agent task queue, self hosted coding agent, clootee","\u003Ch2>The problem with one terminal per agent\u003C/h2>\u003Cp>Once you use coding agents seriously, you stop having one of them. You have Claude Code on one repository and Codex on another; a refactor running in the background while you review a diff; three things queued for after lunch. A terminal tab per agent handles this badly: scroll back far enough and the history is gone, closing the tab kills the work, and nothing tells you which of the four tabs is the one that died.\u003C/p>\u003Ch2>One workbench, many sessions\u003C/h2>\u003Cp>Clootee treats a session as the unit of work. Each session has its own workspace, its own engine and its own history, and they run at the same time.\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>A queue per session.\u003C/strong> Line up several tasks and let them run in order instead of babysitting them one at a time.\u003C/li>\u003Cli>\u003Cstrong>Interject without losing the run.\u003C/strong> Pause, reorder, or drop a message into a task that is already running.\u003C/li>\u003Cli>\u003Cstrong>Switching sessions stops nothing.\u003C/strong> Looking at session B does not interrupt session A.\u003C/li>\u003Cli>\u003Cstrong>Both engines, same UI.\u003C/strong> Claude Code and Codex are installed from the same screen and driven with the same controls, so choosing between them is a per-session decision, not a change of tooling.\u003C/li>\u003C/ul>\u003Ch2>Why transparency matters more as the work gets longer\u003C/h2>\u003Cp>When an agent edits your files for forty minutes, “done” is not enough information. Clootee keeps the full trace of what happened:\u003C/p>\u003Cul>\u003Cli>Reasoning, streamed as it is produced, collapsible once read.\u003C/li>\u003Cli>Every tool call with its complete input and output — the exact command, the exact diff, the exact path. Nothing is compressed into a reassuring sentence.\u003C/li>\u003Cli>Timings and token counts per step, which is how you find out that one retry loop cost more than the rest of the task combined.\u003C/li>\u003Cli>A file manager per workspace, so you can read and edit the files being changed right next to the session changing them.\u003C/li>\u003C/ul>\u003Ch2>And when it goes wrong\u003C/h2>\u003Cp>Long runs fail in ways short ones do not: the engine process dies, the engine returns nothing at all, or everything looks alive but nothing has happened for far longer than this task should take. Clootee surfaces each of those as its own state, with a reason and a next step. That is the difference between a task you can leave running and one you have to sit and watch.\u003C/p>\u003Ch2>Where your data lives\u003C/h2>\u003Cp>Everything runs on your machine. API keys, engine settings, session history and traces are written to the \u003Ccode>data/\u003C/code> folder next to the program. There is no Clootee account and no telemetry, so there is nothing to opt out of. The trade is the one you would expect from a local tool: you are responsible for the machine it runs on — and because Clootee runs the agent with permission prompts bypassed, keep it bound to \u003Ccode>127.0.0.1\u003C/code> and reach it over an SSH tunnel or VPN rather than exposing it.\u003C/p>\u003Ch2>Try it on one project first\u003C/h2>\u003Cp>The install costs nothing and touches nothing: a portable Node inside its own folder, no changes to your PATH or your system Node. Point one session at a real repository, queue two small tasks, and watch the tool calls go by. That is the honest way to tell whether this fits how you work.\u003C/p>",{"title":17,"tag":18,"excerpt":19,"keywords":20,"content":21},"把 Claude Code 和 Codex 并排跑在一个地方","工作流","两个引擎、好几个项目、动辄一小时的任务。难的从来不是调用模型，而是搞清楚现在什么在跑、它动了什么、以及哪一个坏了。","Claude Code 和 Codex, Codex 与 Claude Code 同时用, 多会话 编程智能体, 智能体任务队列, 自托管, Clootee","\u003Ch2>「一个智能体一个终端」的问题\u003C/h2>\u003Cp>一旦你认真用起编程智能体，就不会只有一个：一个仓库上跑 Claude Code，另一个上跑 Codex；一边后台跑重构，一边看 diff；还有三件事排着等午饭后跑。一个智能体开一个终端标签页，这事处理得很糟：往上翻久了历史就没了，关掉标签页活就死了，而且没人告诉你四个标签页里死掉的是哪一个。\u003C/p>\u003Ch2>一个工作台，多个会话\u003C/h2>\u003Cp>Clootee 把「会话」当作工作的基本单位。每个会话有自己的工作区、自己的引擎、自己的历史，而且同时在跑。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>每个会话一条队列。\u003C/strong>一次排好几个任务让它按顺序跑，而不是一个一个守着。\u003C/li>\u003Cli>\u003Cstrong>中途插话不打断整轮。\u003C/strong>可以暂停、调整顺序，也可以往正在跑的任务里丢一句话。\u003C/li>\u003Cli>\u003Cstrong>切会话不会停掉任何东西。\u003C/strong>去看会话 B，不会打断会话 A。\u003C/li>\u003Cli>\u003Cstrong>两个引擎，同一套界面。\u003C/strong>Claude Code 与 Codex 在同一个界面里安装、用同一套控件驱动，所以选哪个只是这个会话的选择，而不是换一套工具链。\u003C/li>\u003C/ul>\u003Ch2>任务越长，透明越重要\u003C/h2>\u003Cp>当智能体改了你四十分钟的文件，「搞定了」不是足够的信息。Clootee 把发生过什么完整留下：\u003C/p>\u003Cul>\u003Cli>思考过程，边产生边流式显示，读完可折叠。\u003C/li>\u003Cli>每一次工具调用的完整入参与返回——具体哪条命令、具体哪个 diff、具体哪个路径，不会被压缩成一句让人安心的话。\u003C/li>\u003Cli>每一步的耗时与 token 数。你就是靠它发现某个重试循环比整个任务的其余部分加起来还贵。\u003C/li>\u003Cli>每个工作区一个文件管理器，可以就在改它们的那个会话旁边读和改这些文件。\u003C/li>\u003C/ul>\u003Ch2>出问题的时候\u003C/h2>\u003Cp>长任务的失败方式和短任务不一样：引擎进程死了、引擎什么都没返回、或者看着一切都活着但远超预期时间毫无动静。Clootee 把这几种分别作为独立状态报出来，并带上原因和下一步。这就是「可以放着跑的任务」和「必须坐在旁边盯着的任务」之间的区别。\u003C/p>\u003Ch2>你的数据在哪\u003C/h2>\u003Cp>全部跑在你自己的机器上。API Key、引擎设置、会话记录与调用轨迹都写在程序旁边的 \u003Ccode>data/\u003C/code> 目录里。没有 Clootee 账号、没有埋点，所以也没有什么需要你去「关掉」。代价是本地工具应有的那一条：运行它的机器由你负责——而且因为 Clootee 绕过了权限确认，请让它只绑 \u003Ccode>127.0.0.1\u003C/code>，需要远程就走 SSH 隧道或 VPN，不要直接暴露出去。\u003C/p>\u003Ch2>先拿一个项目试\u003C/h2>\u003Cp>安装本身没有代价、也不动你的环境：一份便携 Node 放在它自己的文件夹里，不改你的 PATH、不动系统 Node。让一个会话指向一个真实仓库，排两个小任务，看着工具调用一条条过去——这是判断它是否适合你工作方式的诚实办法。\u003C/p>",1789097955072]