Semantic Release Config Builder

Build semantic-release configuration visually. Select plugins, configure branches and release rules, then export in your preferred format.

About This Tool

The Semantic Release Config Builder is a free browser-based tool that helps you create semantic-release configuration files through a visual interface instead of writing JSON or YAML by hand. Configure branches, select plugins, set plugin-specific options, and define custom release rules — all from a single form.

The tool supports the full semantic-release plugin ecosystem including @semantic-release/commit-analyzer for determining release types, @semantic-release/release-notes-generator for creating release notes, @semantic-release/changelog for maintaining CHANGELOG.md, @semantic-release/npm for publishing to the npm registry, @semantic-release/github for GitHub releases and issue comments, @semantic-release/git for committing artifacts back to the repository, and @semantic-release/exec for running custom shell commands during the release lifecycle. Each plugin can be individually configured with its specific options.

You can export your configuration in three popular formats: .releaserc.json, .releaserc.yml, and release.config.js. If you need to convert between JSON and YAML for other configuration files, check out the JSON to YAML converter. For formatting your JSON config files, try the JSON Formatter. And if you want to validate your YAML output, the YAML Formatter can help catch syntax errors.

All processing runs entirely in your browser. No configuration data, plugin settings, or branch names are ever sent to any server. Your CI/CD configuration stays private and secure.

How to Use

  1. Configure your release branches by adding branch names (e.g., main, next, beta). Set optional channel and prerelease tags for non-default branches.
  2. Enable the plugins you need by checking the boxes next to each plugin name. The most common plugins (commit-analyzer, release-notes-generator, npm, github) are enabled by default.
  3. Expand each enabled plugin to configure its specific options like preset, changelog file path, npm publish settings, or GitHub release assets.
  4. Add release rules to override the default commit-to-release mapping. For example, map docs commits to patch releases or refactor to no release.
  5. Choose your preferred output format: .releaserc.json, .releaserc.yml, or release.config.js.
  6. Review the generated configuration in the output panel on the right.
  7. Click Copy or press Ctrl+Shift+C to copy the config to your clipboard, or click Download to save it as a file.

Popular Semantic Release Config Examples

View all semantic-release examples →

FAQ

What is semantic-release?

Semantic-release is a fully automated version management and package publishing tool. It determines the next version number based on commit messages following the Conventional Commits specification, generates release notes, and publishes the package. It removes the human decision-making from the versioning process, ensuring that version numbers accurately reflect the changes made.

Which output format should I use?

All three formats (.releaserc.json, .releaserc.yml, release.config.js) are equally supported by semantic-release. Use .releaserc.json if your project already uses JSON for configuration. Choose .releaserc.yml if you prefer YAML's readability. Use release.config.js if you need dynamic configuration or want to add comments. The JSON format is the most common choice.

What are prerelease branches?

Prerelease branches (like beta, alpha, or next) allow you to publish prerelease versions of your package. For example, commits to a 'beta' branch with prerelease set to 'beta' will create versions like 1.2.0-beta.1. This lets users opt in to testing new features before they reach the main release channel.

How do release rules work?

Release rules override the default mapping between commit types and release types. By default, 'feat' commits trigger a minor release and 'fix' commits trigger a patch release. You can add rules to change this behavior — for example, making 'perf' commits trigger a minor release, or making 'docs' commits trigger no release at all by setting the release type to 'false'.

Do I need all the plugins?

No. The only required plugin is @semantic-release/commit-analyzer. However, most projects use at least commit-analyzer, release-notes-generator, and either npm or github. The changelog and git plugins are optional but popular for maintaining a CHANGELOG.md file and committing release artifacts back to the repository.

Is my data safe?

Yes. All configuration generation runs entirely in your browser using JavaScript. No data — including branch names, plugin settings, or any configuration values — is ever sent to any server. You can verify this by checking the Network tab in your browser's developer tools while using the tool.

Can I use this for monorepo setups?

Yes. For monorepos, you typically need a separate semantic-release configuration per package. Use the @semantic-release/npm plugin with the pkgRoot option set to each package's directory. You can also use @semantic-release/exec to run custom build scripts for each package before publishing.

Related Tools