Code tool

SemVer Validator and Calculator

Check a version against SemVer 2.0.0, see the next release numbers, compare another version, and test a simple caret or tilde range.

In-browser processingNo account requiredPrivacy details ↗

Example: ^1.4.0 or ~1.4.0.

SemVer 2.0.0 · up to 10,000 characters per field · processed locally

A QUICK WALKTHROUGH

How to use this tool

  1. Enter a complete X.Y.Z version, optionally with a pre-release or build label.
  2. Select Calculate to validate it and see patch, minor, and major increments.
  3. Optionally enter a second version to compare precedence, or a ^ / ~ range to check a version.

SemVer 2.0.0 validation

Requires three numeric core fields without leading zeroes. Supports dot-separated ASCII pre-release and build identifiers; numeric pre-release identifiers cannot have leading zeroes. A leading v is not part of a SemVer version.

Precedence and release increments

Major, minor, and patch fields compare numerically; pre-release identifiers follow SemVer precedence; build metadata is ignored. Each suggested bump increments its core field, resets lower fields to zero, and removes pre-release/build labels.

Caret and tilde ranges

The range checker accepts one complete version prefixed by ^ or ~. It checks the inclusive lower bound and exclusive upper bound; caret follows the first non-zero core field, while tilde advances the minor field. For pre-release candidates, it only matches when the range base is also a pre-release with the same core version. Wildcards, comparator sets, hyphen ranges, and package-manager-specific range syntax are not supported.

Local and bounded

Validation and calculations run in this browser. Version fields are limited to 10,000 characters; no package registry or server is contacted.

GOOD TO KNOW

Common questions

Is 1.2.3 the same precedence as 1.2.3+build.7?

Yes. SemVer build metadata is ignored when versions are ordered.

Does a pre-release version rank above a stable version?

No. For the same major, minor, and patch fields, the pre-release has lower precedence.

Does the range checker implement npm range syntax?

It only supports a single complete version with ^ or ~. It does not parse wildcards, comparator sets, or the full npm range grammar.

Does this tool use a package service?

No. It validates and calculates locally without contacting a registry or server.