Skip to content
M0–M19 · local-first migration control

Know exactly what couples you to your AI vendor — in verified terms.

Migrai scans an AI-powered codebase, cites every point of provider coupling down to file and line, and turns "we should switch models" from a leap of faith into a planned, reversible operation.

Findings
Evidence-cited
Changes
Snapshot + rollback
Events
Closed vocabulary
Verified
450 tests · 15 e2e
acme-support · scan · openai coupling STREAMING
EXECUTION MONITOR — EVENT LOG
11:51:56.102scan.startedacme-support-agent @ main
11:51:56.211finding.createdsdk-import · src/index.ts:1 · HIGH
11:51:56.284finding.createdsdk-instantiation · src/index.ts:5 · HIGH
11:51:56.352finding.createdmodel-invocation · src/index.ts:22 · HIGH
11:51:56.419finding.createdstreaming · src/index.ts:24 · HIGH
finding.created×12 more
11:51:56.697scan.completed17 findings · deterministic
findings17
kindssdk-import · invocation · streaming · tools…
every findingfile : line : snippet
replayableevent-sourced run
01 · The lock-in you can't see

Every AI feature quietly
marries a vendor.

SDK imports, model names, streaming flags, tool schemas, prompt shapes — coupling accumulates across the codebase, and nobody can answer what switching would actually take.

01
Invisible coupling

Provider assumptions hide in imports, client calls, response parsing, and env vars. There is no inventory.

02
Guesswork migrations

"How hard is it to move to Anthropic / a local model?" gets answered by opinion, not evidence.

03
Irreversible edits

Migration attempts mutate code with no snapshot, no diff, no validation, and no honest way back.

04
Unverifiable claims

Tools that "analyze your code" with a chat model can't show their work. Findings without evidence are vibes.

02 · Evidence before claims

A control plane for
the whole migration.

Migrai treats vendor migration as an engineering operation: scan deterministically, assess with evidence, plan the change, apply it reversibly, and watch every step in an event-sourced monitor.

A.
Deterministic scanner

No model in the loop. Every finding cites file, line, and snippet — same input, same output, testable against golden fixtures.

B.
Capability graph + compat check

Findings roll up into provider-neutral capabilities, checked against target providers for real compatibility — not marketing parity.

C.
Reversible by construction

The migration runtime snapshots before touching anything. Every applied change has a diff, a validation, and a rollback path.

D.
An agent that proposes — you approve

The migration copilot reads the evidence and drafts assessments. It never acts alone; the operator stays in command.

— BEFORE
grep -r "openai" →
200 hits, no context →
"should be easy?" →
3-week surprise
— WITH MIGRAI
scan → 17 cited findings →
capability graph →
compat check vs target →
plan → apply + validate →
rollback if not
FINDINGSFILE : LINE : SNIPPET
CHANGESSNAPSHOT → DIFF → VALIDATE
HISTORYEVENT-SOURCED · REPLAYABLE
03 · Workflow

From "who are we coupled to?"
to a verified move.

Every stage emits structured events into the monitor. A migration is a state machine with evidence at each gate — not a heroic branch.

SOURCE
Register

Point a workspace at any local git repository.

ANALYZE
Scan

Deterministic coupling scan; findings with cited evidence.

MODEL
Graph

Findings roll up into provider-neutral capabilities.

ASSESS
Compat

Check capabilities against the target provider.

PLAN
Plan

Scope the migration into ordered, reviewable changes.

EXECUTE
Apply

Snapshot, apply, validate — or roll the whole thing back.

04 · Capabilities

Built like infrastructure,
not a demo.

Nineteen milestones, each closed with specs, ADRs, and a verification report. The console is the projection of an event log — not the other way around.

Deterministic scanner

SDK imports, invocations, streaming, tools, prompts — no LLM in the loop, golden-tested.

Evidence citations

Every finding opens to file, line, snippet, and confidence. Claims are checkable.

Capability graph

Provider-neutral rollup of what the codebase actually uses — the migration's real surface.

Compatibility checks

Capabilities scored against target providers before anyone writes a line of migration code.

Event-sourced monitor

Closed event vocabulary; every run streams live and replays later, byte for byte.

Reversible runtime

Snapshot → apply → diff → validate → rollback. Changes are operations, not accidents.

Migration copilot

Evidence-first agent with a strict settings chain — workspace, global, env, or fully scripted.

Local-first, key-safe

Runs entirely on your machine. Credentials never leave the server process — by doctrine.

05 · The console

Real screens.
Real scan.

Not a mockup — a live scan of an OpenAI-coupled agent codebase: grouped findings, cited evidence, and the event monitor streaming the run.

migrai · /findings
Migrai findings — provider coupling grouped by kind, every finding cited to file and line
Findings — 17 coupling points grouped by kind, filterable, every one cited.
migrai · /findings · evidence
Migrai evidence popover — file, line, snippet and confidence for a finding
Evidence — file : line : snippet, with confidence. Claims you can check.
migrai · /monitor
Migrai execution monitor — event-sourced run history streaming live
Execution monitor — the event log streaming a completed scan.
migrai · /w/acme-support
Migrai workspace — registered repository, operations, and the migration copilot panel
Workspace — repositories, operations, and the copilot that proposes while you approve.
06 · Example output

One scan.
A checkable coupling inventory.

Every scan resolves to grouped, evidence-cited findings — the raw material for the capability graph, the compat check, and the migration plan.

acme-support-agent · openai coupling
scan 2026-07-25T11:51:56Z · deterministic · replayable
● 17 FINDINGS
KINDS
8
CONFIDENCE HIGH
17/17
EVIDENCE CITED
100%
SCAN TIME
< 1s
FINDINGS BY KIND
model-invocation
3
sdk-import
2
tool-definition
2
streaming · structured-output · more
10
RUN METADATA
workspaceacme-support
branchmain
scannerdeterministic
llm in loopnone
eventsscan.* · finding.*
storagelocal sqlite
DOWNSTREAM
findings (17, cited)
capability graph
compat check vs target
plan → apply → rollback
07 · Positioning
Migrai is migration control for AI systems — not a linter, not a chat log, not a leap of faith.

It is the operator layer for teams who refuse to let a vendor choice made in a sprint become a permanent architecture decision.
BUILT FOR · local-first teams
OPTIMIZED FOR · verified reversibility
PROVES OUT · scan → plan → apply → rollback