SOVR Patch is a rule-driven TypeScript migration engine. It finds every reference, generates safe patches, verifies with tsc, and only writes when the compiler says yes.
Your IDE's "Rename Symbol" misses string literals, shorthand properties, destructuring patterns, and this. chains. Find-and-replace breaks things. Manual review takes hours.
For a 22-file TypeScript project, renaming config.baseUrl to config.apiBaseUrl requires touching 13 references across 3 files — including type definitions, property access, this. chains, and destructuring.
One missed reference = runtime crash in production.
Every rule follows the same contract: Locate → Classify → Transform → Verify. The engine orchestrates. Rules focus on domain logic.
AST-powered scanning finds every reference to the target field across your entire codebase. Value refs, property keys, type fields, this. chains, destructuring patterns.
Each hit is classified as safe, ambiguous, or unsafe. Assignment LHS targets are blocked. Shorthand properties are expanded. No guessing.
Safe hits get precise text-level patches. Character offsets, not line-level. Overlap detection prevents conflicting edits.
Patches are applied to a temp copy. tsc --noEmit runs on the result. If it fails, nothing touches your real repo. Zero risk.
Not synthetic benchmarks. These numbers come from running SOVR Patch on production TypeScript codebases across 5 trial runs.
| Trial | Repository | Rule | Hits | Patches | Verify |
|---|---|---|---|---|---|
| #003a | sovr-mcp-server | field-rename | 13 | 13 | PASS |
| #003b | sovr-mcp-server | nullish-fallback | 3 | 3 | PASS |
| #004a | sovr-mcp-server | field-rename | 13 | 13 | PASS |
| #004b | sovr-mcp-server | nullish-fallback | 3 | 3 | PASS |
| #005a | SOVR-MCP-PROXY | field-rename | 8 | 8 | PASS* |
| #005b | SOVR-MCP-PROXY | nullish-fallback | 3 | 3 | PASS |
Every rule implements the same RuleDefinition<TConfig> interface. Rules ship in focused packs — install what you need.
Core refactoring primitives for TypeScript codebases. Rename fields across every reference type. Inject nullish guards with chain and precedence awareness.
Safe TypeScript field rename across value refs, property keys, type fields, this. chains, destructuring, and shorthand properties.
Inject ?? fallback for repeated property access targets. Chain-aware: wraps entire optional chain. Operator-precedence-aware: adds parens in binary expressions.
Design system migration rules with dual-mode support. Audit mode discovers all hardcoded colors and inline styles zero-config. Run mode applies precise replacements using presets (sovr-core, tailwind-common) or custom maps.
Replace hardcoded hex color values with CSS custom property references. Supports shorthand hex, uppercase normalization, and template literals.
Convert JSX inline style objects to className strings. Full-match → safe replace. Partial-match → ambiguous skip.
Safe TypeScript field rename across value refs, property keys, type fields, this. chains, destructuring, and shorthand properties.
Inject ?? fallback for repeated property access targets. Chain-aware: wraps entire optional chain. Operator-precedence-aware: adds parens in binary expressions.
Replace hardcoded hex color values with CSS custom property references. Supports shorthand hex, uppercase normalization, and template literals.
Convert JSX inline style objects to className strings. Full-match → safe replace. Partial-match → ambiguous skip.
SOVR Patch never writes directly to your source files. Every patch is first applied to a temporary copy. The TypeScript compiler runs on that copy. Only when tsc --noEmit returns zero errors does the engine copy the changes back.
This is the core safety guarantee. In Trial #005a, safe-apply correctly blocked a write when the rename left a string literal "url" in a required array inconsistent with the renamed property. A human would have missed it.

Every case study shows actual engine output — not mockups. Click through to see the full diff, stats, and verification results.
No signup required. Dry-run is free forever. See every hit, every diff, every risk — before you commit.
SOVR Patch scans your codebase, finds every reference, and shows you a complete diff — without touching any files.
See exactly which files are affected, how many hits are safe vs. ambiguous, and what the patches look like.
Upgrade to a paid plan to unlock safe-apply. Patches are verified with tsc before writing — zero risk.
SOVR Patch is priced around what you actually value: seeing the impact of a migration, applying it safely, and reducing review and rollout risk.
Inspect migrations before you commit to them. See every hit, every diff, every risk.
Safely migrate TypeScript field and expression changes across a real codebase.
Migrate design tokens and inline styles to modern CSS and utility classes.
For teams that need both migration packs. All rules, one price.
Migration workflows, CI enforcement, and custom rules for teams with real delivery risk.
Users see the full migration scope before paying. This is the conversion point.
Everything you need to know about licensing, installation, and using SOVR Patch.
Install globally via npm: npm install -g sovr-patch. Or use without installing: npx sovr-patch --help. Requires Node.js 18 or higher.
Yes. SOVR Patch is a standard CLI tool that works with Cursor, Claude Code, Copilot, and any AI agent that can execute shell commands. The AI agent runs npx sovr-patch run --rule ... --apply directly. Just ensure the license is activated in the environment where the agent runs.
No. All scanning, patching, and verification runs entirely on your machine. The license file is Ed25519-signed and verified offline — no phone-home, no telemetry, no network calls.
SOVR Patch uses your project's own tsconfig.json and TypeScript installation for verification. It works with TypeScript 4.x and 5.x. The AST parsing is version-independent.
Free users get full access to scanning, dry-run migrations, diff previews, and audit reports. You can see exactly what SOVR Patch would change — every hit, every diff, every risk — before paying anything. The --apply flag (which writes changes to your files) requires a license.
After purchase, you download a license.json file. Activate it with sovr-patch activate license.json. The license is cryptographically signed (Ed25519) and verified locally — no server calls needed. Check your status anytime with sovr-patch status.
Licenses are per-user. Each developer on your team needs their own license. For team purchases (5+ seats), contact us through the Design Partner program for volume pricing.
Licenses are valid for 1 year. After expiry, you keep the version you have — it still works for scanning and dry-run. The --apply flag stops working until you renew. Run sovr-patch status to check your expiry date.
Yes. The sovr-patch ci-gate command is designed for CI integration. Set SOVR_LICENSE_PATH env var to point to your license file in CI. CI gate is available with Full Engine and Enterprise plans.
We offer a 14-day money-back guarantee. If SOVR Patch doesn't work for your use case, email us and we'll process a full refund — no questions asked.
No. SOVR Patch runs 100% locally on your machine. Your source code never leaves your filesystem. There is no cloud processing, no code upload, no remote AST analysis. The entire pipeline — scanning, classification, patching, and verification — executes in your local Node.js process.
No. SOVR Patch collects zero telemetry. No usage analytics, no crash reports, no anonymous metrics. The only network call is an optional version check against the npm registry (which you can disable with SOVR_NO_UPDATE_CHECK=1). We believe developer tools should be silent and respectful.
Your license file contains an Ed25519 digital signature. The CLI embeds the public key and verifies the signature locally — the same cryptographic approach used by SSH keys and package signing. No license server, no token refresh, no network dependency. If your machine is air-gapped, it still works.
All payments are processed by Stripe, a PCI-DSS Level 1 certified payment processor. We never see, store, or have access to your credit card details. Your card information goes directly to Stripe's secure infrastructure.
Yes. SOVR Patch is source-available under the BSL-1.1 license. You can inspect every line of code on GitHub. The rule engine, AST analysis, and patch generation are fully transparent. Enterprise customers can request a security audit.
The license file contains: your email, plan name, licensed rules, issue date, and expiry date — plus the Ed25519 signature. No passwords, no API keys, no sensitive credentials. You can open license.json in any text editor to verify its contents.
We're looking for 5 engineering teams with active TypeScript migration work. You bring the codebase. We bring the engine. Together we validate SOVR Patch on real-world scale.