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.1

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.1
File Size Uploaded
verkit-0.3.1.tar.gz 15.2 kB Details

Built distribution (wheel)

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

Total release size: 31.2 kB

Release files / verkit-0.3.1.tar.gz

Download URL verkit-0.3.1.tar.gz
Size 15.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9d422955f799b92316d88f6e793144272db24f47d33f109b7dea52f6e9a20ebc
BLAKE2b-256 checksum
How to use checksums
6ddddf1f445a0e6577528314a5e5fc6cb6dfd1fbed51f5a9b414313400f2dd50
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.1-py3-none-any.whl

Download URL verkit-0.3.1-py3-none-any.whl
Size 16.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
00785e895c483441ba25d73f65bc57fbdfad54ddecf472b310598331c8711b19
BLAKE2b-256 checksum
How to use checksums
929178001b3038452ef525ae5a2a3c3fcedc2ced381c8dabec57dbe13c09e1fe
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

This release

0.3.1 This release

2 release files

0.3.0

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