← Writing
AICoding

My Multi-Agent Coding Workflow: Gemini Plans, Claude Builds, Codex Reviews

2025-12-30 · Kevin Ma

I want to share my current development workflow. I mainly use Claude Code, Codex CLI, and Gemini CLI together, almost like a small engineering team.

Why use multiple models

Claude Code writes code quickly. For small tasks, I can usually let it run straight through.

But once the task gets larger, bugs become much more likely. If I ask Claude to fix its own mistakes, it can sometimes circle around the same problem.

So I use Codex for review.

Now I cross-check both technical plans and code changes. It feels closer to how a human engineering team works: someone writes the code, someone else reviews it, and the final decision still belongs to a person.

The division of labor

My usual flow is:

  1. Gemini writes the plan and design notes.
  2. Claude Code reviews that plan and implements the changes.
  3. Codex reviews the implementation against the plan, then suggests fixes or improvements.

This setup has worked well for me. Several recent refactors went through in one pass and saved a lot of back-and-forth debugging.

For UI adjustments, I keep it simpler. Claude Code can usually handle those directly without the full multi-model loop.

Why Gemini does the planning

I use Gemini for planning mostly because I like its writing style for this job.

Codex output can feel dense to read. Claude Code tends to write long and heavy planning documents. Gemini is easier for me to talk to when I want to shape a plan before implementation.

That is not a universal rule. It is just the split that fits my own reading and decision style.

Working like a human team

For now, these three models are enough for an AI development team:

  • Gemini for planning.
  • Claude Code for implementation.
  • Codex for review.

They discuss, check, and challenge each other. I still own the technical direction and make the final call.

That last part matters. The workflow is useful because the models create different forms of pressure on the work, not because I hand over judgment completely.

The terminal setup

I keep all of this in one terminal window.

With tmux, I can switch between three agent panes, nvim, and a running dev server. If I want to ask a different model, I just jump to that pane.

Sharing context is still a little clunky. Sometimes I copy and paste. Sometimes I write a short document and let the next agent read it. It is not elegant, but it is good enough.

The important part is that the plan, the implementation, and the review do not all come from the same model. That separation catches more mistakes than asking one agent to do everything alone.