VerBump graphic

VerBump

Version file manager for Windows developers

Keep all your projects' VERSION files in one place. Bump major, minor, or patch with a single keystroke — SemVer, CalVer, or any custom scheme you define.

Windows 10/11 · Installer or portable .exe · Free & open source

Why VerBump?

I work on a lot of projects in parallel and I've tried just about every versioning approach out there. The problem isn't complexity — I know exactly which file to edit. The problem is that by the time you hit git push, you're already on to the next feature.

Being fundamentally lazy, I decided to solve this once and for all — and built VerBump.

Now, before every git push, I open VerBump and see the status of all my repos at a glance — orange means something changed and the version hasn't been bumped yet. It works because it forces a moment of reflection: one glance, all projects, before anything goes out.

Actually, VerBump has since changed my workflow entirely: with the git hook installed, I no longer open it manually at all. The hook fires before each commit and shows me exactly what's stale — I bump right there, or skip if it's just a WIP commit. I haven't forgotten a version bump in months.

It saves me more worry, rework, and time than I spent building it.

Other tools bump one project's version. VerBump shows you the status and puts you in control.

— Michael Baas, creator of VerBump

You're not alone.

Manual version bumping is one of the most reliably forgotten steps in a developer's workflow. The broader tooling world agrees: dozens of GitHub Actions, CLIs, and automation frameworks exist for exactly this problem — from semantic-release to bump, from GitVersion to Conventional Commits. They all solve it in the CI/CD pipeline. VerBump solves it before you push.

"Manual version bumping is tedious and error-prone — someone forgets to update the version, or bumps it incorrectly."

— oneuptime.com, Jan 2026

Screenshots

VerBump main window — orange rows indicate stale VERSION

Main window — orange = VERSION not yet bumped

VerBump Settings dialog

Settings dialog with Git hook integration

Features

Keyboard-driven

Jump to any project with Alt+A–Z or Alt+0–9. Bump version parts with Ctrl+1–4. No mouse required.

📋

Multiple schemes

Supports SemVer, CalVer, and fully custom sequential schemes — configurable per project.

🔍

Staleness detection

Automatically scans your project directories and marks projects where source files are newer than VERSION. For git repos, uses the last commit date as reference to avoid false positives from file timestamps.

Flexible ignore rules

Global ignore lists for directories and file patterns, with per-project overrides using a simple !-prefix exclusion syntax.

🌐

Multilingual

Ships with English and German UI. Additional languages can be added by dropping a lang.xx.json file next to the executable.

📦

Zero dependencies

A single self-contained .exe — choose portable (no install, no registry) or installer-based deployment (with Explorer integration and service scripts).

🪝

Git pre-commit hook

Install a hook directly from the Settings dialog — VerBump blocks the commit if VERSION is stale, opens automatically so you can bump before anything goes out.

🖱

Explorer context menu

Right-click any folder or VERSION file to open VerBump or silently bump Major / Minor / Patch — no window, just a toast notification.

Requires installer. Settings files must be named verbump-settings.json to appear in the context menu.

Automation-ready

Full command-line interface: pass a VERSION path, load a custom settings file, bump silently with --bump=1/2/3, or check staleness with --check — scriptable from any tool or launcher.

Documentation

Getting started

  1. Download VerBump.exe and place it anywhere.
  2. Launch it — a settings.json is created in %APPDATA%\VerBump\ on first run.
  3. Open Settings (Settings button) and add your projects.
  4. Each project needs a plain-text VERSION file in its root directory.

Which workflow fits you?

SituationRecommended approach
A handful of projects you version together Add them all to the default settings.json. One glance shows everything.
Many repos, but you only touch one at a time Right-click any VERSION file → Open in VerBump. No setup needed. Optionally save it to settings via the + toolbar button.
Related project groups (e.g. a backend + mobile + shared lib) Create one verbump-settings.json per group. Use File › Open Settings File to switch between them — the last few are remembered. The verbump-settings.json name also enables the Explorer context menu entry.

Format strings

Each project's version scheme is defined by a single format string. The Settings dialog shows a live preview as you type, and a ? button links here.

TokenMeaningExample result
[sem]SemVer shorthand — expands to [{#major}.{#minor}.{#patch}]1.2.3
{#name}Numeric counter — a bump button increments it by 1{#major}.{#minor} → 1.0
{YYYY} {YY} {MM} {DD}Date tokens — auto-filled on every refresh, no button generated{YYYY}.{MM}.{#build} → 2026.03.0
{val1|val2|val3}Inline list — bump button cycles through the values{alpha|beta|prod} → alpha
{listname}Named list — values defined globally under Settings → Lists{stage}
[*N]Free-text field, max N characters — one bump button[*8]
[…]Reset group — bumping any token resets all subsequent tokens in the group to their default (0 or first list value)[{#major}.{#minor}.{#patch}]

Examples:

Format stringExample versionBump buttons
[sem]1.2.3major+  ·  minor+  ·  patch+
{YYYY}.{MM}.{#build}2026.03.47build+
[{#major}.{#minor}]-{alpha|beta|prod}1.0-alphamajor+  ·  minor+  ·  alpha|beta|prod+
{YYYY}.[{#major}.{#minor}.{#patch}]2026.1.0.0major+  ·  minor+  ·  patch+

Old-style settings (semver, calver, sequential) are automatically migrated on first load — no changes to your settings.json required.

Keyboard shortcuts

KeyAction
Alt+AZJump to project 1–26
Alt+09Jump to project 27–36
Ctrl+14Bump version part 1–4
Ctrl+Home / EndJump to first / last project
/ Navigate projects
EnterSave version
EscapeCancel / discard changes

Git pre-commit hook

VerBump can act as a pre-commit guard: if any source file is newer than VERSION, the commit is blocked and VerBump opens automatically so you can bump before anything goes out.

Setup: open Settings, select a project, click Install Git Hook. VerBump writes a small script into .git/hooks/pre-commit — existing hook content is preserved. Remove it the same way with Remove Git Hook.

The hook calls VerBump with --check. You can also invoke it manually:

VerBump.exe --check          # check project in current directory
VerBump.exe --check C:\my\project

Exit code 0 = VERSION is current  ·  1 = stale (commit blocked).

The hook dialog shows only the stale project (not all projects in your settings). Three buttons are available:

  • ✓ Bump & Commit — bump the version, then let the commit proceed.
  • ↷ Skip This Time — let this commit through without bumping (useful for WIP commits or doc-only changes).
  • ✗ Block Commit — abort the commit (exit 1).

Corporate deployments: to enforce bumping on every commit and remove the Skip This Time option, create C:\ProgramData\VerBump\policy.json:

{ "allowHookBypass": false }

This file is read at machine level; users cannot override it. Deploy it via installer or Group Policy as needed. When allowHookBypass is false, only Bump & Commit and Block Commit are shown.

The hook fits any commit style. Click Skip This Time for WIP commits or doc-only changes — no need for git commit --no-verify. The bump prompt appears whenever a source file is newer than the current VERSION, as a gentle reminder rather than an unconditional blocker. Teams who need to enforce bumping on every commit can disable Skip This Time via the policy file above.

Command-line arguments

ArgumentEffect
VerBump.exe C:\path\to\projectOpen VerBump with that project pre-selected
VerBump.exe C:\path\VERSIONSame — accepts the VERSION file directly
--check [path]Silently exit 0 if current, open UI and exit 1 if stale
--bump=1 / 2 / 3Silently bump part 1/2/3 (SemVer: Major/Minor/Patch) and show a toast
--settings=<path>Load settings from a custom JSON file

Ignore rules

VerBump scans project directories to detect stale versions: if source files are newer than VERSION, or (for git repos) if files changed since the last commit, the project is marked as stale. You can exclude directories and file patterns globally or per project to fine-tune this detection.

Global ignore — set in the Settings dialog, applies to all projects:

Dirs:  .git  node_modules  bin  obj  dist
Files: *.bak  *.tmp  *.log

Per-project override — add entries in the Entry section of Settings. Prefix an entry with ! to re-include something excluded globally:

Dirs:  build        ← also exclude 'build' for this project
       !bin         ← re-include 'bin' (overrides global exclusion)
⬇ Download VerBump now

Contact & Support

Found a bug or have a feature request? Open an issue or contact me directly at verbump@mbaas.de — I'm available for questions, feedback, and the occasional VerBump war story.