Features
Automatic Semantic Versioning
Detects version bumps from conventional commit messages
Auto Changelog
Generates and maintains CHANGELOG.md automatically
Configurable Tag Prefix
Customise git tag format via .vnxtrc.json
Pre-flight Checks
Verifies working directory before making changes
Dry Run Mode
Preview changes without committing anything
Configurable
Project-level configuration via .vnxtrc.json
Colored Output
Beautiful terminal colors for better readability
Quiet Mode
Minimal output perfect for CI/CD pipelines
Automated npm Publishing
Trigger npm releases via GitHub Actions Trusted Publishing
Installation
npm (all platforms)
After installation, you can use either vnxt or the shorthand vx
Scoop (Windows)
Requires Scoop and Node.js (scoop install nodejs)
Chocolatey (Windows)
⏳ Pending moderation — will be available on the Chocolatey community repository shortly.
Requires Chocolatey and Node.js (choco install nodejs)
Homebrew (macOS/Linux)
Requires Homebrew. Node.js will be installed automatically as a dependency.
Install from Source
Quick Start
Usage
Command Line Options
Automatic Version Detection
vnxt automatically detects the version bump type from your commit message:
You can override auto-detection with the -t flag.
Custom Versions
Set specific version numbers for pre-releases:
Changelog Generation
Automatically update CHANGELOG.md:
Creates/updates CHANGELOG.md:
# Changelog
## [1.2.0] - 2024-02-10
- feat: add user authentication
## [1.1.0] - 2024-02-09
- feat: add dashboard
Release Notes
Generate formatted release notes file:
Creates release-notes/v1.2.0.md (respects your tagPrefix config). You'll be prompted to add optional context. --publish also auto-generates release notes.
Configuration
Create a .vnxtrc.json file in your project root:
{
"autoChangelog": true,
"defaultType": "patch",
"requireCleanWorkingDir": false,
"autoPush": true,
"defaultStageMode": "tracked",
"tagPrefix": "v",
"colors": true
}
Configuration Options
autoChangelog
boolean
default: true
Automatically update CHANGELOG.md on every bump
defaultType
string
default: "patch"
Default version bump type if not auto-detected
requireCleanWorkingDir
boolean
default: false
Require clean git working directory before bumping
autoPush
boolean
default: true
Automatically push to remote after bumping
defaultStageMode
string
default: "tracked"
Default staging mode when using -a flag (tracked, all, interactive, patch)
tagPrefix
string
default: "v"
Prefix for git tags. Use "v" for v1.2.3, "" for 1.2.3, or "release-" for release-1.2.3
colors
boolean
default: true
Enable colored terminal output (disable for logging systems)
Workflow Examples
Quick Fix
Feature Release
Major Release with Documentation
Dry Run (Preview Changes)
Interactive Mode
Complete Workflow
Quiet Mode (CI/CD)
Publish to npm
Check Version
Pre-flight Checks
vnxt performs several checks before making changes:
- ✅ Verifies no uncommitted changes (unless using
-a) - ✅ Warns if not on main/master branch
- ✅ Checks for remote repository (if pushing)
Troubleshooting
Not a Git Repository
If you see this error:
Initialize git in your project directory:
Uncommitted Changes Error
Either commit your changes first, or use the -a flag to stage all changes:
Permission Denied (Windows PowerShell)
If you get execution policy errors:
Command Not Found After Installation
Make sure npm's global bin directory is in your PATH:
Requirements
- Node.js 12.x or higher
- npm 6.x or higher
- Git installed and configured
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.