03of 12 · Features

Ask the second question without losing the first.

Branch from any message. The parent thread stays exactly as it was, and the branch runs on its own. Try a risky rewrite, a second opinion, a different model, all from the same point in the conversation.

overwatch · branches
Parent session
Rewrite the checkout flow so the retry path is idempotent.
Branch A · Opus
Full refactor with an idempotency key on the order table.
Branch B · Gemini
Minimal change: dedupe at the handler, no schema migration.
Branch C · Codex
Second opinion on the failure modes before either lands.

The parent is never touched. Keep one branch, throw the rest away.

What people actually say
“It rebuilt the whole component when only a font colour was requested.”

A pattern filed repeatedly against Claude Code, alongside the documented premature-stop bug where it finishes part of a plan and summarises "as if the entire task is complete."
View the source ›

Demand rank #3 Demand score 88/100 Overwatch mitigates it Full research ledger ›
What Overwatch does about it

One linear thread means one bad turn poisons everything after it, and your only undo is starting over. Branching makes a wrong answer cheap instead of destructive: fork before the risky ask, keep the good branch, throw the other away. The parent is never touched.

What that gets you

03 / Open Branches
01

Fork from any message

Not just the end. Pick the exact turn where things were still good and start a new line from there.

02

Run branches side by side

Open two branches in a split and watch both answers arrive. Compare, then keep one.

03

Different model per branch

Same question, one branch on a reasoning model, one on a fast one. See which is actually worth the tokens.

How it works

In the app

A safety net for expensive turns

Before you hand it a refactor that could touch forty files, branch. If it overreaches, you are one click from the thread as it was, with your context intact and nothing to re-explain.

  • Parent thread is never mutated
  • Branch inherits full context up to the fork
  • Abandon a branch without any cleanup
fork from any message
YouJust change the font colour on the header.
OverwatchI rebuilt the component and moved the layout.
Branch from hereRetryEdit

Pick the turn where it was still right and start a new line from there.

Branches are sessions too

Every branch is a real session: it syncs, it queues, it shows up on your phone. Start a branch at your desk and read the result on the train.

  • Synced like any other session
  • Nameable, so you know which is which
  • Shows up in the folder it came from
two branches, side by side
Branch A · Opus
Branch B · Gemini

Same question, two engines, one window. Compare, then keep one.

Get Overwatch

Try it on your own machine.

Free to download. Bring your own key.