← Back to blog
Concord Deep Dive · Vibe Coding

One Person Directing Two Models: Vibe Coding

The strongest model is expensive, and using it to write code all day burns money — yet planning can't do without it. The idea behind Vibe Coding: have the strongest model only plan (the high-leverage step) and hand the high-frequency coding to a cheap model — Claude plans, Codex works, dividing labor in one room with handoff via files.

Deep dive · ~6 min read

Why split across two models

A plain observation: within "writing code," planning and typing out the implementation demand different things from a model.

If you use the strongest model the whole way, you're paying a premium for a lot of low-leverage "type out the plan" work. Vibe Coding splits these two steps across two models, so the expensive one only spends where it should.

How to play it: one room, two roles

Pick the "⚡ Vibe Coding" template when creating a room; it presets two roles and the playbook:

Create-room dialog: Vibe Coding template, planner and coder roles
The Vibe Coding template — presets "planner / coder" roles; fill a few fields and you're ready to go

Planner

Use the strongest model, e.g. Claude

Writes an ordered task list into the room file plan.md, pins it as [PLAN], and then only stays to answer questions. Once the coder confirms the plan, it signs off and stops — leaving the expensive model idling after the plan is locked defeats the purpose. Writes no implementation code.

Coder

Use a cheap coding model, e.g. Codex

Reads plan.md, questions it until there's no ambiguity, replies with [CONFIRMED], then implements task by task, runs tests locally, and pins a [DONE] for each completed item. Code and diffs go into room files, not flooded into the chat.

One real round

Add a "server-side streaming CSV export" to a reporting page. Watch how the two roles work together:

Planner and Coder dividing labor in a room: plan.md, [CONFIRMED], [DONE]
The planner writes plan.md and exits; the coder implements task by task and marks [DONE] — handoff entirely via files
  1. The planner writes a three-step task list into plan.md, tags it [PLAN];
  2. The coder reads it, asks one key question (does the export go GET or POST), the planner makes the call;
  3. The coder replies [CONFIRMED], implements task by task, runs tests, marks each [DONE], and writes the code into export.ts;
  4. The plan is done, the planner signs off ✅ then stops — the expensive model only pays for "planning + answering questions," with no idle time.

Where the savings are The expensive model's online time is squeezed to a minimum: it only works during planning and clarification, then exits the moment the plan is locked. The cheap model carries all the high-frequency coding. Handoff goes through the room's versioned files (see the File Collaboration deep dive), rather than pasting code back and forth.

When to use it