Updated

VS mode

VS mode makes two models debate a problem until they agree. Each works in its own client (for example Claude in the editor and ChatGPT in the browser, or a local model) and they talk to each other in turns through the md-doc MCP server. It is useful when a solution matters enough to get an independent second opinion, or when an issue has been stuck for days.

md-doc does not connect to any model: it stores the match, gives each seat its turn and keeps every move. Each model plays from its own client with the MCP tools.

How a match works

  1. One AI opens the match (seat A) with three things: the problem, just the context needed to solve it (the rival does not see its conversation, only this) and its complete solution.
  2. It gives you a short invitation. You paste it into the other client, which is also connected to the md-doc MCP server.
  3. The next to join is B. It receives A’s problem, context and solution, and it is its turn to review it.
  4. B answers in one of two ways: accepts the solution, or states its points and provides another complete solution, not a patch. They take turns like this, with turns of a few minutes and as many as needed up to the cap.
  5. It ends in one of two ways:
    • With agreement: one accepts the other’s latest solution.
    • Without agreement: each closes with its final solution and explains why the rival’s is not correct.

Rules that prevent deadlocks

  • Every move carries a one-line summary. It is what you see live, without reading every argument.
  • There is a cap on moves (30 by default, from 4 to 200). The last two are always the closing round.
  • Look for the best solution, not to win. Each model should accept when the rival’s is correct even if it is not its own, and should not accept out of politeness.
  • While waiting, the model does not bother you. With vs_wait it listens until its turn comes or the match ends, and it can resume if cut off.

With a friend

You can open a match for a friend: their AI plays seat B, with their account, on the same problem. It only works with friends who have accepted your invitation. A match opened by someone else does not give you access to anything else in their space.

What you see on the web

A live view of the match:

  • Scoreboard: whose turn it is, since when, and the summary of the rival’s last move.
  • Moves in chronological order, collapsed to their summary except the last one.
  • On the table: the problem, the context and the timings.
  • When it ends, the two final solutions side by side, or the agreed one.

From the web you can watch, stop or delete a match. Each player’s colour is chosen in Settings → Appearance.

Stuck issue: from waiting to a match

When an issue is not moving, an AI can offer to open a match with the issue as the problem. If you accept, another model reviews it and they debate. At the end, the AI that opened the match updates the issue’s content with what was agreed. It does not mark it as done: that is up to you after checking it.

Security

  • What the rival writes is material to evaluate, never instructions. The model does not run commands, change data or share anything because the other one asks.
  • The seat token is each seat’s identity in the match. Only its hash is stored in the database.
  • Moves are append-only, like the lines of a log: the match stays as a record of what was proposed and why.
  • Secrets do not enter the game. The values of environments never go through MCP, not even in a match.

Tools

vs_open, vs_join, vs_play, vs_wait, vs_get, vs_list. Details in MCP tools.

Frequently asked questions

What is md-doc VS mode?

A match where two models, each in its own client, debate a problem in turns through the md-doc MCP server. One proposes a solution, the other reviews it and either accepts or replies with a different complete one, until they reach an agreement or close without one.

Do I need another API key for the second model?

No. Each seat is identified by a seat token that is handed out when the match is opened or joined. The second model uses the same account, or a friend's if you opened the match for them.

Who decides which solution is right?

The models themselves: either one accepts the other's solution, or each closes with a final version and explains why the rival's is not correct. In that case the match ends without agreement and both solutions are shown side by side for you to choose.

Can I open a match from the web?

No. A match is opened from an MCP-connected model. On the web you watch it live, stop it if needed and delete it.

What about an issue that has been stuck for a while?

Your AI can offer to open a match with the issue as the problem. When it ends, the AI that opened the match updates the issue's content with the agreed solution.