Skip to main content

verkit

Polyglot project version inspector, promoter, tagger, and release workflow engine.

verkit provides a unified Python API and CLI tool to manage version releases across multi-language projects (pyproject.toml, package.json, Cargo.toml, *.csproj, pom.xml, build.gradle).


Supported Ecosystems

Project Type Version File Parser / Bump Engine
Python pyproject.toml Regex & bump-my-version
Node.js package.json JSON parser & npm version
Rust Cargo.toml Regex (^version = "...")
.NET *.csproj XML Regex (<Version>...</Version>)
Java (Maven) pom.xml XML Regex (<version>...</version>)
Java (Gradle) build.gradle / .kts Regex (version = "...")

Installation

pip install verkit
# or using uv
uv add verkit

CLI Usage

Inspect version info

Inspect current working tree and HEAD committed versions:

verkit inspect

Promote version

Bump version (major, minor, or patch) and automatically commit or amend local release commit:

verkit promote minor

Tag and push release

Verify HEAD is in sync, create vX.Y.Z git tag, and push branch + tag:

verkit tag

One-shot atomic release

Combine promote, tag, and push in a single step:

verkit release patch

Python API Usage

import verkit

# 1. Inspect version info
info = verkit.inspect_project()
print(f"Working version: {info.version} (from {info.source})")

committed = verkit.inspect_committed()
print(f"HEAD committed version: {committed.version}")

# 2. Promote version
new_version = verkit.promote_version("minor")

# 3. Tag and push release
tag_name = verkit.tag_version(push=True)

# 4. Atomic release
verkit.release_version("patch", push=True)

Shared Terminal Theme

verkit publishes the canonical Rich theme used across this developer's CLIs (task-agent, multi-agent-registry, ...). It is opt-in — verkit never applies the theme for you; consumers import it and apply it to their own Table/Panel objects:

from rich.console import Console
from rich.table import Table
from verkit.theme import DEFAULT as theme

console = Console()
table = Table(
    title="Portfolio",
    box=theme.table_box,          # borderless
    header_style=theme.header_style,  # "on grey23"
    padding=theme.table_padding,  # (0, 2, 0, 0)
)
console.print(table)

The theme is a frozen dataclass (verkit.theme.Theme); DEFAULT is the canonical instance. Non-Python consumers (e.g. PowerShell scripts) read the machine-readable mirror, which stays in sync via tests/test_theme.py:

$theme = Invoke-RestMethod `
  https://raw.githubusercontent.com/bizkite-co/verkit/main/src/verkit/theme.json
# $theme.theme.header_style               -> "on grey23"
# $theme.theme.header_background_ansi     -> ANSI 256 index 237 background escape
# $theme.theme.header_background_rgb_hex  -> "#3a3a3a"

For AI Agents

Projects that depend on verkit should follow its conventions: vim-style navigation (from verkit.keys import VIM_BINDINGS), the shared theme, and a mise-only local dev override (PyPI release everywhere else).

verkit conventions          # print the guide (add --json for structured output)
verkit init-agent --mise    # add pointer to AGENTS.md and a mise.toml template

See also AGENTS.md and llms.txt in this repo.

Metadata

Release files for verkit 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for verkit 0.3.0
File Size Uploaded
verkit-0.3.0.tar.gz 15.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for verkit 0.3.0
File Interpreter ABI Platform
verkit-0.3.0-py3-none-any.whl Python 3 none any Details

Total release size: 31.2 kB

Release files / verkit-0.3.0.tar.gz

Download URL verkit-0.3.0.tar.gz
Size 15.2 kB
Tags Source
SHA-256 checksum
How to use checksums
14664dded30394e1cf920a88ea27d4b64b6684445aca423453769793abc8672c
BLAKE2b-256 checksum
How to use checksums
92069b9329a9f4f450de5405c48e939571395faf0840538cb51142362e37d181
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / verkit-0.3.0-py3-none-any.whl

Download URL verkit-0.3.0-py3-none-any.whl
Size 16.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8351ee9a25cb1cb979b7a949f5b16a7bb94293a6c44875c4952d9fd4b6c73e9b
BLAKE2b-256 checksum
How to use checksums
49fc528ec23a89b67a85ab3b3721d5385a9a07e64204a43a2c7d964a9e9a7411
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.1

2 release files

This release

0.3.0 This release

2 release files

0.2.1

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page