Skip to main content
Framework, library, and SDK builders use codemods to move users to new releases without carrying long-term backward compatibility. Building and maintaining codemods is hard. It does not scale well, adoption is hard to measure, and feedback is limited. Codemod gives maintainers an easy way to publish official codemods with each release, accept community contributions, and see how codemods are actually used. Codemod is already used by projects like React, Node.js, ESLint, Express, Nuxt, and many more.

Node.js logoNode.js logo

React logoReact logo

ESLint logoESLint logo

Webpack logoWebpack logo

Nuxt logoNuxt logo

pnpm logopnpm logo

MSW logoMSW logo

React Router logoReact Router logo

Get started

1

Create a dedicated repo to host your codemods

  • We recommend creating a dedicated repository under your project’s GitHub org to host codemods using this repo template.
  • Using the included GitHub action, you can easily publish official codemods under your org scope, collaborate with trusted community members without giving access to your main repo, and keep migration logic cleanly separated from product code.
  • See the ESLint codemods repo for an example.
2

Secure your official scope

3

Build and publish codemods

At this point, your repo is fully set up for collaboration and publishing.
  • You or your community can open PRs to add or improve codemods.
  • Once merged, you can use the GitHub Action to publish the codemod to the registry under your org scope. Make sure codemod names start with your scope (@your-github-org-name/codemod-name, for example @eslint/v8-to-v9-config).
If you do not know how to build or publish codemods yet, check out the following guides:

Getting help

Next steps