Semver Range Tester
Semver Range Tester shows the whole accepted window, including the 0.x caret behaviour that catches people out. Runs entirely in your browser with no upload.
🔒 This tool runs entirely in your browser. Your files are never uploaded to a server.
Tools
Semantic Versioning Range Tester
Frontend preview — no upload or external service.
Results
Using Semantic Versioning Range Tester to calculate and analyze your data.
How the Semver Range Tester works
- Enter the range as written in your manifest and a version to test against it.
- Read the full accepted range, which is usually wider than people expect for caret ranges.
- Check prerelease behaviour if you publish or consume them, since prereleases are excluded from ranges by default.
The method
Caret allows changes that do not modify the leftmost non-zero digit; tilde allows patch-level changes.
^1.2.3 means >=1.2.3 <2.0.0; ~1.2.3 means >=1.2.3 <1.3.0
Below 1.0.0 the caret behaves differently: ^0.2.3 allows only >=0.2.3 <0.3.0, because in 0.x the minor version is treated as breaking.
FAQ
What is the difference between caret and tilde?
Caret allows minor and patch updates; tilde allows only patch updates. ^1.2.3 accepts 1.9.0 while ~1.2.3 stops at 1.2.x.
Why does the caret behave differently below 1.0.0?
Because 0.x is considered unstable, so a minor bump is treated as potentially breaking. ^0.2.3 therefore behaves like a tilde and allows only 0.2.x.
Are prereleases included in ranges?
Not by default. ^1.2.3 does not match 1.9.0-beta.1, which surprises people publishing prereleases. Matching them requires an explicit prerelease tag in the range.
How we compare
| Feature | Online Tool Store | A CLI script | An IDE plugin |
|---|---|---|---|
| Shows full accepted range | ✓ | ✗ | ✓ |
| Prerelease handling | ✓ | ✗ | ✓ |
| Nothing uploaded | ✓ | Local | ✗ |
| No install | ✓ | ✗ | ✓ |
Semver Range Tester shows the whole accepted window, including the 0.x caret behaviour that catches people out.