Use cases
Route by route, all at once.
Express to Fastify, JavaScript to TypeScript, the major version bump you keep deferring. The Conductor splits the migration into a DAG, runs six Claude Code sessions in parallel, and verifies each piece as it lands.
Patterns
Migrations that split cleanly.
Express to Fastify
Server bootstrap and shared plugins land first, then route groups are ported in parallel, then a final sweep removes the old framework and updates scripts.
JavaScript to TypeScript
One session per directory converts files and tightens types while another owns the shared definitions everyone else imports. The seams stay clean because the DAG orders them.
Major version bumps
React, Node, or a breaking ORM release: each item in the migration guide becomes a task, split per package. For multi-dependency sweeps, see dependency upgrades.
The brief
One goal in, a plan out.
You type the goal. The Conductor sequences shared plumbing before the parallel fan-out, answers permission prompts, and recovers stalls and rate limits so the run keeps moving. The auto-detected web preview lets you click through the app as routes come back up.
# the goal you type
$ Migrate this Express app to Fastify
# roughly how the Conductor plans it
# 1. bootstrap fastify, port shared plugins
# 2-5. port route groups: auth, billing, admin, public
# 6. remove express, update scripts and docsWhy it holds together
Parallel without chaos.
Ordered by the DAG
Shared plumbing lands before the routes that need it. The mission DAG sequences what must be ordered and parallelizes the rest, with live activity strips per terminal.
Verified as it lands
Each ported piece is re-checked before its task counts as done, so a half-migrated handler cannot hide in the noise of a big diff.
Reviewed before it ships
The source control panel and full git graph show exactly what each session changed. Review the fleet's work, then push when you are satisfied.
Hand it the work.
Walk away.
macOS, Linux, and Windows. Around 13 MB. Free and open source.