Verso

CLI reference

Commands and options available in the Verso command-line interface.

Release command

Running verso without a subcommand starts a release:

verso [OPTIONS]
OptionDefaultDescription
--dry-runfalsePreview the release without writing files or running mutating Git commands
--jsonfalsePrint dry-run output as JSON; must be used with --dry-run
--version <SEMVER>NoneUse an exact target version without interactive selection
--config <PATH>verso.tomlRead a different config file
--yesfalseSkip confirmation prompts; does not choose a version
-V, --tool-versionNonePrint the Verso CLI version and exit
--helpNonePrint command help

Common examples:

verso --dry-run
verso --dry-run --json
verso --version 0.26.0
verso --version 0.26.0-beta.1 --yes
verso --config config/release.toml
verso --tool-version

Without --version, the interactive menu offers patch, minor, major, alpha, beta, rc, and custom semantic versions. When the current version is a prerelease, it also offers the corresponding stable version. Prerelease channels prompt for a base version.

When stdin or stdout is not a terminal, Verso keeps a plain-text prompt fallback. Scripted input can choose by name, such as beta followed by minor.

verso init

Creates a starter verso.toml:

verso init [--single | --workspace] [--force]
OptionDescription
--singleGenerate a single-package config
--workspaceGenerate a workspace config
--forceReplace an existing config

Without an explicit mode, the command detects a packages/* workspace and otherwise creates a single-package config.

verso doctor

Validates release readiness without starting a release:

verso doctor [--json]

The checks cover config parsing, package discovery, version consistency, changelog and Cargo paths, plus the current branch's Git upstream. --json produces structured output for CI.

Package-manager scripts

When Verso is installed as a dev dependency, remember the argument separator used by the package manager:

pnpm release -- --dry-run
pnpm release -- doctor --json

On this page