Built on the Lossless Semantic Tree
Every transformation runs against a compiler-accurate model that preserves comments, formatting, and type bindings. Recipes don't manipulate text. They navigate the tree.
Deterministic search, transformation, and migration for your codebase, built on the Lossless Semantic Tree and maintained by Moderne. Run OpenRewrite on a single repository; scale the same recipes across thousands with Moderne.
The open-source engine
OpenRewrite is an open-source project for semantic analysis and automated refactoring, using search and transformation recipes. Recipes are expert, rules-based programs that make accurate, automated code change precise and repeatable against a compiler-accurate model of your source. It natively covers Java, Kotlin, and Groovy plus dozens of formats and frameworks, keeping code continuously updated and secure. Maintained by Moderne.
Every transformation runs against a compiler-accurate model that preserves comments, formatting, and type bindings. Recipes don't manipulate text. They navigate the tree.
Recipes understand types, variables, and literals as the compiler does, so the same recipe produces the same output every time. No regex guesswork, no LLM nondeterminism, no regressions on re-run.
The engine and foundational Java recipes are open source under Apache 2.0. Source-available recipes are for consumers to read and run, not for building commercial products. Proprietary recipes and additional languages are available to Moderne customers.
A recipe is a deterministic program that traverses the LST and applies an identical change every run, across one repository or a hundred thousand. Recipes are composable, testable, and format-preserving, authored as declarative YAML, Refaster templates, or imperative Java.
Apply dozens of static-analysis fixes in one pass. Formatting, null checks, code style, modernization patterns.
Open the recipeUpgrade a Java codebase to 25 with full language and standard-library migration support.
Open the recipeMulti-step upgrade to Spring Boot 4: modular starters, deprecated APIs, and configuration changes.
Open the recipeMove JUnit 5 tests to JUnit 6: dependency upgrades, configuration changes, and API migrations.
Open the recipeMove javax namespaces to jakarta across dozens of sub-recipes. The migration that blocks most Spring Boot upgrades.
Open the recipeOpenRewrite is Kotlin-aware. Order imports, rename type aliases, and run Kotlin static analysis and formatting.
Browse the recipesBrowse the open-source recipes at docs.openrewrite.org/recipes, and the full catalog, including source-available and proprietary recipes, in the Moderne docs.
The ecosystem
OpenRewrite is open source under Apache 2.0 at its core and maintained by Moderne. A large community runs recipes every day, and framework authors and recipe consumers alike contribute upgrade paths, fixes, and improvements back.
Moderne engineers are the primary maintainers. The LST, the recipe engine, and the catalog ship from Moderne, keeping the project current, tested, and secure.
Framework and library authors ship official upgrade paths as recipes, turning a major version's migration into something teams run instead of read. Micronaut is one example, reducing support burden and helping users adopt faster.
Recipe consumers and developers across the community contribute fixes, improvements, and new recipes back to the catalog, and that work ships to everyone who runs OpenRewrite.
"For any framework or Java library creator, it's a great way of creating an upgrade path for your framework, and forcing you to create an upgradable implementation as well."
Learn more and get started
Try the quickstart guide Read the OpenRewrite docs Free live training Browse the project on GitHubOpenRewrite natively covers Java, Kotlin, and Groovy. Moderne extends the same engine to every other language plus the frameworks, build tools, and platforms real codebases depend on, keeping them current, compatible, and secure.
See the full language and framework catalog in the Moderne docs, or the open-source recipes at docs.openrewrite.org/recipes.
From one repo to the whole estate
On its own, OpenRewrite runs a recipe against one repository at a time. Moderne, built by the same team, pre-computes Lossless Semantic Trees across every repo in your codebase and runs recipes against them in parallel. One semantic model of your whole codebase is what makes both scale and agents possible.
Run one recipe across thousands of repositories at once, not one at a time. A Java 25 migration runs as a single campaign, not thousands of individual jobs.
One campaign opens reviewable pull requests across every affected repo, native to GitHub, GitLab, and Bitbucket, tracked and merged from a single dashboard.
Every change in every repo, recorded. DevCenter shows portfolio-wide status and Changelog tracks every PR across SCMs, with a full trail for review.
See what will change before it changes. Data tables surface CVE exposure, visualizations show dependency patterns, and dry-run mode previews a campaign before a single PR opens.
Coding agents run the same deterministic recipes humans do, through Trigrep, Prethink, and the Moderne MCP.
Explore the agent toolsOpenRewrite is natively Java, Kotlin, and Groovy. Moderne extends recipe coverage to JavaScript, TypeScript, C#, Python, Go, Ruby, and COBOL.
OpenRewrite is the open-source engine for automated code refactoring. Moderne is the enterprise platform that operationalizes and extends OpenRewrite for large, multi-repo codebases: collaboration, agent tooling, app security, core migrations, governance, more languages.
| Capability | Moderne platform | OpenRewrite open source |
|---|---|---|
| Lossless Semantic TreeCompiler-accurate code model used for deterministic search & transformation | ||
| Multi-repo support | ||
| Collaboration platformOrganizations, Activity View, Recipe Marketplace, DevCenter, Changelog | ||
| DevCenter dashboardVisualize progress of key projects and security priorities | ||
| ChangelogUnified, actionable view of PRs across SCM | ||
| Deterministic agent toolsUsable by any coding agent via MCP · Trigrep, Prethink, Recipes, Changelog | ||
| Security remediation recipesSAST, SCA, OWASP Top 10, PQC readiness, and more · Moderne Proprietary License | Customers only | Not available |
| Technology insights recipesSQL & API usage and more · Moderne Proprietary License | Customers only | Not available |
| Major migration recipesSpring Boot 3.4/3.5/4.0, Java, .NET, Node.js, and more · Moderne Proprietary License | Customers only | Not available |
| Open-source recipesApache License 2.0 | ||
| Source-available recipesModerne Source Available License | ||
| Operational reportingPlatform health and profiling | ||
| Audit logs | ||
| Recipe building experience | Recipe Builder | |
| Supported languages | Java, Kotlin, Groovy, JS/TS, Python, C#/.NET, Scala, Go, COBOL | Java, Kotlin, Groovy |
| Horizontal scalabilityRun recipes across multiple LSTs simultaneously | ||
| MTTRMean time to remediate | Minutes across many repositories | Days to weeks, one repo at a time |
| Time to value | Immediate at scale | Gradual, one repo at a time |
The agent toolset
Streamline tech-stack strategy, maintenance, and security by collaborating on large codebases across every level of the organization.
Fast, accurate code transformations across many repositories at once, so developers ship value instead of toiling through migrations by hand.
Automatic intelligence about your entire codebase: understand impact, make critical decisions, and optimize your tech stack and architecture.
"Your code quality is going to get much, much better, and you are going to have fun upgrading to the next version instead of fearing it."
Run by the teams with the largest codebases on earth. See who modernizes with Moderne, or book a demo.
OpenRewrite is the open-source refactoring framework and recipe ecosystem: the visitors, the Lossless Semantic Tree, and the recipe catalog. Moderne is the commercial platform that runs OpenRewrite across enterprise codebases. The same recipes that run on a single repository with OpenRewrite run across your entire codebase on Moderne, with coordinated PRs, full audit trail, and impact analysis.
On its own, OpenRewrite runs recipes one repository at a time. Scaling means running recipes across thousands of repositories simultaneously, opening coordinated pull requests, tracking every change in an audit trail, and previewing impact before changes ship. Moderne is the platform built for this: orchestration, multi-repo PR management, dashboards, and recipe execution at codebase-wide scope.
Teams automate large-scale modernization across the whole codebase: Java and language version upgrades, Spring Boot and framework migrations, CVE and security remediation, dependency management, and internal standardization, all executed through OpenRewrite recipes and delivered as reviewable pull requests.
Yes. Recipes operate on the Lossless Semantic Tree, so every transformation is deterministic and semantically accurate rather than regex or AI guesswork. Every change is delivered as a clean, reviewable pull request so teams validate before merging, using your team's normal review workflow.
When a new CVE is disclosed, Moderne applies the relevant OpenRewrite fix recipe across your entire codebase in a single campaign. Instead of triaging and patching repositories one by one, security and engineering teams see exposure across every repo and push remediation pull requests organization-wide. What used to take months takes days.
Work that traditionally takes months of manual engineering can land in days or weeks. Because recipes run across thousands of repositories in parallel and deliver changes as ready-to-review PRs, teams spend their time reviewing and merging rather than writing migration scripts or hunting deprecated patterns one file at a time.
Yes. Custom recipe authoring is a first-class capability. Teams encode internal standards, migration patterns, and modernization workflows as custom recipes, then run them at the same scale as the thousands of community recipes across the entire repository estate. The Moderne CLI supports custom recipe development locally and against the platform.
Native integration with GitHub, GitLab, and Bitbucket. Moderne opens PRs in your existing repositories using your team's normal review workflow, and CI integration is standard. Recipes can run in your pipelines, or campaigns can be triggered from the platform with results landing as PRs ready for review.
No. Many enterprise teams come to Moderne without prior OpenRewrite experience. The community recipe catalog covers the most common modernization, migration, and security work, and the platform previews changes before any ship. OpenRewrite expertise helps for custom recipe authoring but is not required to deliver migrations or remediation campaigns.
Agents reach for recipes the way they reach for any tool, through the Moderne MCP server. Instead of hand-editing files and hoping, an agent calls a deterministic recipe that makes the same correct, type-aware change every time, and when no recipe exists yet, it can author a new one. Trigrep gives agents structured search and Prethink gives them codebase context, so the agent plans while OpenRewrite does the structural work. See the agent tools.
Run a recipe today. Scale it tomorrow.
OpenRewrite is open source and free to start on a single repository. Moderne runs the same recipes across your entire codebase, with coordinated pull requests, full audit trail, and impact analysis before anything ships.