How I stopped context-switching between Claude Code, Codex, and GLM
For the past few months I've been juggling three AI coding agents — Claude Code for architecture, Codex for implementation, GLM for review. The pain wasn't any single one of them. It was the switching cost.
Every time I switched engines I had to re-explain the project: which framework, which conventions, where the old conversation left off. None of them remembered what the others knew. I'd waste 10–15 minutes per switch re-loading context, and half the time I'd just give up and stay on whatever I opened first.
So I started building a small thing for myself. Local desktop app. Lets me run all three engines from one window, with a shared memory layer underneath.
The thing I underestimated: persistent memory is the whole game. Once Claude and Codex can both see "this project uses SwiftData + strict concurrency + @Model on iOS 18+," switching becomes free. I stopped caring which engine I was on and started picking per-task.
Still rough around the edges. Town View (isometric map of conversations as villagers) sounds like a gimmick but it actually changed how I think about parallel runs. MCP bridge for moving work between machines was an accidental unlock.
Few things I'd love to hear from people actually doing this:
For those running multiple agents — is the memory/switching problem real, or am I solving a me-specific issue?
Has anyone found a workflow where the "let three models race, judge the output" thing actually beats just picking one?
Anyone tried making their agents share persistent state? What broke?
Happy to go deep on the memory architecture if anyone's curious. Not selling anything — just trying to figure out if this is a real itch or a me-thing.
Replies