OpenRewrite
openrewrite.org
What it is
OpenRewrite is an open-source ecosystem for automated code refactoring, aimed at updating code and reducing technical debt. It represents code as Lossless Semantic Trees, applies transformations, and prints the result back into source code for review. Its recipes cover framework migrations, security fixes, and style consistency, and can be written in YAML, Refaster templates, or Java. Maven and Gradle plugins run recipes locally as part of builds, one repository at a time. The Maven plugin offers a dry run that reports potential changes and writes diff files; recipes run only when explicitly activated by name. Documented support includes Java, Kotlin, and Groovy, plus formats such as HCL, JSON, Properties, Protobuf, TOML, XML, and YAML. Framework coverage includes Spring, Quarkus, and Micronaut. The recipe index lists 4,183 recipes across modules. Core and language libraries use Apache License 2.0, but some recipes have other licensing terms. Core is free; some artifacts require authenticated repository access, and some recipes require a Moderne subscription.
Spec sheet
- Purpose
- OpenRewrite is an open-source automated refactoring ecosystem for eliminating technical debt in code repositories.Read 5 Oct 2026 · docs.openrewrite.org
- Integrations
- The Moderne platform page describes native GitHub, GitLab, and Bitbucket integrations for coordinated pull requests.Read 5 Oct 2026 · moderne.ai
- Security
- Moderne's press kit states that Moderne is SOC 2 Type 2 compliant.Read 5 Oct 2026 · moderne.ai
- Support
- The OpenRewrite documentation invites users to ask questions in Slack or Discord and lists [email protected].Read 5 Oct 2026 · docs.openrewrite.org
- Company
- Moderne's press kit lists Miami, Florida as its headquarters and says OpenRewrite originated as a project Jonathan Schneider started at Netflix.Read 5 Oct 2026 · moderne.ai
- Access limitation
- OpenRewrite artifacts are distributed through the Code Genome Project repository, which requires authentication; some source-available and proprietary recipes require a Moderne subscription.Read 4 Oct 2026 · docs.openrewrite.org
- Build integrations
- The project provides Maven and Gradle plugins for running recipes on one repository at a time.Read 5 Oct 2026 · docs.openrewrite.org
- Build tools
- OpenRewrite provides Maven and Gradle plugins for running recipes as part of a build.Read 4 Oct 2026 · docs.openrewrite.org
- Framework coverage
- The documentation names Spring, Quarkus, and Micronaut among supported frameworks.Read 4 Oct 2026 · docs.openrewrite.org
- How it works
- Recipes modify Lossless Semantic Trees and print the modified trees back to source code while honoring original formatting.Read 5 Oct 2026 · docs.openrewrite.org
- Integration
- The recipe development guide says IntelliJ IDEA 2024.1 or later has built-in OpenRewrite support and recommends enabling the OpenRewrite IntelliJ plugin.Read 4 Oct 2026 · docs.openrewrite.org
- Languages
- The OpenRewrite project describes Java as its original focus and says language and framework coverage is expanding.Read 5 Oct 2026 · docs.openrewrite.org
- Learning and support
- The documentation points users to a free self-paced introductory course and offers community help through Slack or Discord.Read 4 Oct 2026 · docs.openrewrite.org
- Licensing
- The core framework is Apache licensed, while some recipe modules use the Moderne Source Available License or a proprietary license.Read 5 Oct 2026 · docs.openrewrite.org
- Local execution
- The Maven and Gradle plugins run locally without connecting to Moderne or OpenRewrite, aside from accessing configured artifact repositories.Read 4 Oct 2026 · docs.openrewrite.org
- Open source usage
- Open source projects can use Apache-licensed and Moderne Source Available recipes through the OpenRewrite Maven and Gradle plugins or Moderne CLI without a license for those repositories.Read 5 Oct 2026 · docs.openrewrite.org
- Recipe activation
- The Maven plugin runs no recipe unless it is explicitly activated by name.Read 4 Oct 2026 · docs.openrewrite.org
- Recipe catalog
- The recipe index lists 4,183 recipes across modules.Read 4 Oct 2026 · docs.openrewrite.org
- Recipe formats
- Recipes can be authored as declarative YAML, Refaster templates, or imperative Java.Read 5 Oct 2026 · moderne.ai
- Recipe uses
- Recipes support framework migrations, security fixes, and stylistic consistency tasks.Read 4 Oct 2026 · docs.openrewrite.org
- Recipes
- Recipes automate framework migrations, security fixes, and stylistic consistency tasks.Read 5 Oct 2026 · docs.openrewrite.org
- Review before applying
- The Maven plugin offers a dry-run goal that reports recipes that would make changes and writes diff files in module target folders.Read 4 Oct 2026 · docs.openrewrite.org
- Scale limit
- OpenRewrite by itself runs a recipe against one repository at a time; Moderne provides multi-repository execution.Read 5 Oct 2026 · moderne.ai
- Source available limits
- Source available software may not be commercialized or provided to others as a managed service, though companies may apply it to their own code.Read 5 Oct 2026 · docs.openrewrite.org
- Supported code and formats
- The documentation lists Java, Kotlin, and Groovy programming languages, plus HCL, JSON, Properties, Protobuf, TOML, XML, and YAML data formats.Read 4 Oct 2026 · docs.openrewrite.org
Plans and prices
Strong points and limits
Strong points
- Maven and Gradle plugins run recipes locally
- Dry-run goal reports proposed changes
- Recipes must be explicitly activated
- Supports Java, Kotlin, and Groovy
Limits
- Runs against one repository at a time
- Artifacts require authenticated repository access
- Some recipes require a Moderne subscription
- Some recipes use source-available or proprietary licenses
Who it suits
It suits developers and teams using Maven or Gradle who want to apply code changes one repository at a time. Teams should review recipe licensing and artifact access requirements before adopting particular recipes.
Verdict
OpenRewrite provides build-integrated recipes and a dry-run path for reviewing proposed edits. Its repository-by-repository scope and differing access or license terms among recipes are important selection factors.
Where Specifiction places it
- Code Refactoring Tools#6 of 228.2