โ— runs entirely in your browser

Semver Calculator & Comparator

Compare two versions, bump a version, or check if a version satisfies a range. Follows the official semver.org precedence rules.

Compare
Bump
Range check

Supports exact versions, comparators (>, >=, <, <=, =), caret (^) and tilde (~) ranges, space-separated AND, and || OR.

How it works

Compare walks major, then minor, then patch numerically, and only falls back to comparing pre-release identifiers dot-by-dot if all three match โ€” a version with no pre-release tag always outranks the same version with one, per the semver.org spec; build metadata after a "+" is ignored entirely. Bump increments the requested field and zeroes everything to its right. Range check parses each comparator's operator, evaluating "^" as allowing any change that doesn't touch the left-most non-zero digit and "~" as allowing patch-level changes only within the given minor version, with space-separated comparators ANDed together and "||" groups ORed.

FAQ

Why does 1.5.0-beta.1 count as lower than 1.5.0 in the Compare tool?
Per the semver spec, a version with a pre-release tag always has lower precedence than the same version without one โ€” 1.5.0 is considered a more finished release than any 1.5.0-beta.x, no matter what the prerelease label is.
What's the difference between ^1.2.0 and ~1.2.0 in a range check?
^1.2.0 allows any change that doesn't touch the leftmost non-zero digit, so it accepts up to (but not including) 2.0.0; ~1.2.0 is stricter and only allows patch-level updates within 1.2.x, rejecting even a minor bump like 1.3.0.

Free, unlimited, no account. If this saved you a paid tool, a small thanks is appreciated.

Say thanks โ€” $3