Semver Checker

Parse, compare, and validate Semantic Versioning strings. Check ranges, bump versions, sort lists. 100% client-side.

✅ Valid semver (spec 2.0.0)
Major
1
Minor
2
Patch
3
Pre-release
alpha.1
Build metadata
build.42
Status
🚧 Pre-release (not the final version)
🔒 100% private: All parsing and comparison happens in your browser. Follows the official semver 2.0.0 spec.

About Semver Checker

Semantic Versioning (semver) is a widely-adopted convention for versioning software: MAJOR.MINOR.PATCH. Major bumps mean breaking changes, minor bumps add functionality backward-compatibly, patch bumps fix bugs. Pre-release and build metadata add extra context (1.2.3-alpha.1+build.42). Semver is used by npm, yarn, pnpm, Cargo, pip, and most modern package managers. Working with semver manually is tricky: does "1.0.0" satisfy "^1.0.0"? Is "1.2.3-alpha" less than "1.2.3"? What comes after "1.2.3-rc.1"? This tool parses any version, compares two versions, checks range satisfaction, bumps versions, and sorts lists — all according to the official semver 2.0.0 spec.

How It Works

  1. Parse: enter a version (e.g., 1.2.3-alpha.1+build.5) to see its components.
  2. Compare: enter two versions to see which is higher.
  3. Satisfies: enter a version and a range (e.g., ^1.2.0) to check.
  4. Bump: enter a version and choose major/minor/patch/prerelease.
  5. Sort: paste a list of versions to sort them correctly.

✨ Key Features

  • ✓Parse version into major, minor, patch, prerelease, build
  • ✓Validate version against the semver 2.0.0 spec
  • ✓Compare two versions (<, =, >)
  • ✓Check if a version satisfies a range
  • ✓Support all range operators: ^, ~, >, >=, <, <=, =, x, *, -, ||
  • ✓Bump version (major, minor, patch, prerelease)
  • ✓Sort a list of versions (ascending/descending)
  • ✓Detailed error messages for invalid versions
  • ✓Support for pre-release comparison rules
  • ✓100% client-side — no data sent to any server

🎯 Common Use Cases

  • →Checking whether a version satisfies a dependency range
  • →Deciding whether to bump major, minor, or patch
  • →Understanding npm/yarn range syntax (^, ~, etc.)
  • →Comparing two versions of a library
  • →Sorting a CHANGELOG list of versions
  • →Debugging "peer dependency" errors from npm
  • →Validating a version string from a user input
  • →Learning semver rules with instant feedback

💡 Advanced Tips & Pro Insights

  • ▸^1.2.3 (caret): allows changes that do not modify the left-most non-zero digit. So ^1.2.3 = >=1.2.3 <2.0.0. For 0.x.y, ^0.2.3 = >=0.2.3 <0.3.0 (since 0.x means the minor version is the breaking boundary).
  • ▸~1.2.3 (tilde): allows patch-level changes only. ~1.2.3 = >=1.2.3 <1.3.0. ~1.2 = >=1.2.0 <1.3.0. ~1 = >=1.0.0 <2.0.0.
  • ▸Pre-release comparison: 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-beta < 1.0.0-rc.1 < 1.0.0.
  • ▸Build metadata (1.2.3+build.5) is ignored in comparisons — 1.2.3+abc = 1.2.3+xyz.
  • ▸X-ranges: 1.2.x = 1.2.* = >=1.2.0 <1.3.0. 1.x = 1.* = >=1.0.0 <2.0.0.
  • ▸|| means OR: ">=1.2.3 <2.0.0 || >=3.0.0" matches either range.

Frequently Asked Questions

Is this semver checker free?▾
Yes, this semver checker is completely free with no signup, email, or usage limits.
Is my data safe?▾
Yes, 100% safe. All parsing and comparison happens in your browser. No data is sent to any server.
What is Semantic Versioning?▾
Semantic Versioning (semver) is a versioning scheme MAJOR.MINOR.PATCH. Major = breaking changes, minor = new features (backward-compatible), patch = bug fixes. Pre-release and build metadata add extra context.
What is the difference between ^ and ~?▾
^1.2.3 (caret) allows changes that do not modify the left-most non-zero digit — usually up to the next major version. ~1.2.3 (tilde) allows patch-level changes only — up to the next minor version.
Why does 1.0.0-alpha come before 1.0.0?▾
Semver treats pre-release versions as lower than the release itself. 1.0.0-alpha < 1.0.0-beta < 1.0.0-rc.1 < 1.0.0. This lets you publish test versions before the final release.
Are build metadata (1.2.3+abc) compared?▾
No. Build metadata is ignored in comparisons. 1.2.3+abc and 1.2.3+xyz are considered equal versions. Build metadata is for build identification, not versioning.
What does a version like 0.1.0 mean?▾
Versions with major version 0 (0.x.y) indicate initial development. The API is not yet stable, so any minor bump can be a breaking change. In ^0.1.0 ranges, npm treats 0.1.x as the safe range.
Can I use this for other versioning schemes?▾
This tool follows semver 2.0.0 strictly. For date-based versioning (20240101) or calendar versioning (CalVer), the rules differ. This tool will reject non-semver formats.