7,380 open-source and SaaS tools, with GitHub stats refreshed every day.

semantic-release

Open source

A Node.js tool that fully automates package releases by choosing the next version number from commit messages, writing release notes and publishing the package.

semantic-release.org
semantic-release homepage screenshot
GitHub stars
24k
Last commit
yesterday
Repository age
12 years
Version
v25.0.9
Licence
MIT
Self-hosted
Yes

About semantic-release

semantic-release automates the entire release workflow for a software package: it decides the next version number, generates release notes and publishes the package. By deriving versions from the content of commits, it removes human guesswork and mood from numbering and follows the Semantic Versioning specification so consumers can tell how big a change is.

It relies on a structured commit message convention that records what changed in the codebase, so each merge to a release branch can trigger a new release automatically. Features and fixes become available to users immediately, maintainers and users can be notified of new versions, and releases can be published on different distribution channels, for example npm dist-tags, depending on the branch. It plugs into continuous integration systems, which avoids the errors of manual releases.

Plugins let it support any package manager and language, and configuration is simple and reusable through shareable configs. semantic-release is written in JavaScript, MIT licensed and runs in your own CI environment, so there is no service to host. It suits open-source maintainers and teams that ship libraries frequently.

Key features

  • Automatic next-version calculation
  • Generated release notes and changelogs
  • Publishing to package registries
  • Commit message convention for versioning
  • Plugin system for other languages and package managers
  • Shareable configurations and CI integration

Good fit for

  • →Automating npm package releases
  • →Enforcing semantic versioning across a team
  • →Publishing pre-release channels from branches
Built with
JavaScript
Tags
release-automation
semantic-versioning
changelog
ci-cd
npm
javascript
publishing
devops

semantic-release: questions and answers

What is semantic-release used for?
semantic-release is a Node.js tool that fully automates package releases by choosing the next version number from commit messages, writing release notes and publishing the package. It is a good fit for automating npm package releases, enforcing semantic versioning across a team and publishing pre-release channels from branches.
Is semantic-release open source?
Yes. semantic-release is open source under the MIT licence. Its source code is on GitHub at semantic-release/semantic-release and is written mainly in JavaScript.
Is semantic-release free?
Yes. semantic-release is open source, so the software itself is free to use.
What are some alternatives to semantic-release?
Similar open-source tools in the CI/CD & DevOps category include Changie, Ship.js and release-plz. SaaS products in the same category include AWS CodePipeline, Azure DevOps and Bitbucket.
Is semantic-release actively maintained?
Yes. The most recent commit to semantic-release was on 1 October 2026, and the latest release is v25.0.9, published on 5 August 2026. The project has 24k stars on GitHub.

Open-source alternatives to semantic-release

See all

SaaS alternatives to semantic-release

See all