Skip to main content

Verdog runtime

The Python runtime and command-line client for Verdog. It provides workflow declarations, the interpreter, agent adapters, durable run resumption, and the verdog command. Project generation and verification use the hosted backend; this package contains no backend or compiler implementation. Requires Python 3.12 or newer.

Install or update the command-line client with Python 3.12 or newer:

uv tool install --upgrade 'verdog-runtime>=0.1.1'
verdog --help

The client uses https://157.180.79.112 by default. Use verdog --backend-origin URL ... to select another backend. Saved terminal sessions retain the backend used when signing in.

Generated projects also declare verdog-runtime as a dependency. For local development, install this checkout with uv pip install ..

Development

uv sync --locked --no-editable
uv run --no-sync ruff check .
uv run --no-sync ruff format --check .
uv run --no-sync pyright
uv run --no-sync pytest
uv build

The tests and type-checking configuration are self-contained in this repository. Use a regular installation (--no-editable) because verdog sync copies the installed distribution into workflow environments.

Code quality

Follow the Google Python style guide. Ruff enforces 80-column formatting, absolute imports, import sorting, Google-style docstrings, and common correctness and simplification checks. Import modules rather than their members, except for typing names and deliberate public re-exports. Keep error messages, checkpoint formats, and public APIs stable when refactoring. Documentation should explain contracts and non-obvious constraints.

Run uv run --no-sync ruff format . to format changes. Both pull requests and releases check formatting, lint, types, and tests. The existing strict Pyright configuration remains the authority for types; no type errors are suppressed to satisfy a formatter.

For a deeper review, use the pinned analysis tools:

uv run --no-sync pylint verdog_runtime --reports=no
uv run --no-sync radon cc verdog_runtime -s -n C
uv run --no-sync radon mi verdog_runtime -s

Pylint and Radon are review aids, not score targets. Prioritize functions that combine validation, mutation, and recovery; split them at those boundaries rather than adding helpers just to meet a numeric threshold. Keep rollback and trust-boundary checks intact. Cyclomatic complexity counts independent control-flow paths; inspect both the largest function and any helpers extracted from it.

Compatibility exceptions are narrow: public package facades retain re-exports; TypeVar and type-alias syntax remains where runtime introspection and checkpoint compatibility depend on it; dynamic dataclass access uses getattr explicitly. Tests use descriptive names and assertions instead of mandatory API docstrings. Delayed imports in the CLI resolve its existing command/environment dependencies.

The September 2026 pass was measured against commit e457564, using the same Ruff settings for both versions:

Measure Before After
Ruff diagnostics 2,323 0
Highest function cyclomatic complexity 107 32
Functions above complexity 20 11 9
Mean function cyclomatic complexity 4.64 4.56
Function and nested-function count 767 780

The largest changes separate dependency-removal validation from graph/file edits, projection staging from rollback, and checkpoint validation from resource setup. The extra functions represent those responsibilities; they do not change the checkpoint or wire formats. Physical line counts rise with 80-column wrapping, qualified names, and documentation, so line count alone is not the improvement criterion.

See the workflow declarations, interpreter, and user documentation.

Release

release.yml runs when a v* tag is pushed, like v0.1.1. It checks that the tag matches project.version, runs style, tests, and type checks on Python 3.12, builds the wheel and source distribution, checks the installed wheel, and publishes both distributions to PyPI.

Configure this once before the first release:

  1. Create the GitHub environment pypi in this repository's settings.
  2. Add a PyPI Trusted Publisher: project verdog-runtime, owner verdog-ai, repository verdog-runtime, workflow filename release.yml, environment pypi. For a new PyPI project, add it as a pending publisher under your account's Publishing settings. For an existing project, use its Publishing settings. No API-token secret is needed.

Commit and push the repository contents, including this workflow. For each release, update project.version in pyproject.toml, run uv lock, and commit those changes. Then push the matching tag:

git push origin main
git tag v0.1.1
git push origin v0.1.1

Use a new version and matching tag for each subsequent release.

License

Verdog runtime and its command-line client are licensed under the GNU Affero General Public License, version 3 only (AGPL-3.0-only). See LICENSE.

Release files for verdog-runtime 0.1.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 verdog-runtime 0.1.1
File Size Uploaded
verdog_runtime-0.1.1.tar.gz 256.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for verdog-runtime 0.1.1
File Interpreter ABI Platform
verdog_runtime-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 461.2 kB

Release files / verdog_runtime-0.1.1.tar.gz

Download URL verdog_runtime-0.1.1.tar.gz
Size 256.8 kB
Tags Source
SHA-256 checksum
How to use checksums
6e4f2c45fddf2a21e700fe3fea2c01c580a147ed2e67c2f7ee076507fc7b6b3e
BLAKE2b-256 checksum
How to use checksums
0d6253b8e6cafcc7e396334895b75c2ccbcf939adfe9c05750dd1956525c0f2e
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 Sep 25, 2026.

Transparency log

Release files / verdog_runtime-0.1.1-py3-none-any.whl

Download URL verdog_runtime-0.1.1-py3-none-any.whl
Size 204.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
eafccd49464037f3f0a1202158ea75c278dcaaa5f028e62536faccd23eba2a71
BLAKE2b-256 checksum
How to use checksums
a96671382a4de8ede2f060151b0a6a8ad1eef8fe693495c6c7bcb0d3a94e3e28
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 Sep 25, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

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