Skip to main content

The fastest CI/CD system for agentic engineering.

Project description

Verploy

PyPI version Python versions License Coverage

The fastest CI/CD system for agentic engineering.

Users run verploy, which runs manual verification, fast-forward merges worktrees, pushes, and deploys.

Features

  • Uses a local-first workflow to significantly reduce per-prompt latency compared to using remote agents and GitHub's CI/CD
  • Manual verification is programmatically defined on a per-project basis
  • Worktree support enables agents to work independently
  • Works with Docker to sandbox agent execution and isolate deployment credentials

Installation

Verploy is available as verploy on PyPI.

Because Verploy uses other tools you have installed, it's recommended to install it per-project instead of globally:

uv add --dev verploy

Setup

Stop hook

Verploy expects changes to be committed and worktrees to be rebased onto main before it runs. Add verploy-hook as a Claude Code Stop hook to enforce this automatically.

.claude/settings.json:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "uv run verploy-hook",
            "timeout": 600
          }
        ]
      }
    ]
  }
}

The hook checks that there are no uncommitted changes, the branch is rebased onto main (in worktrees), and runs the verify script if one exists.

Scripts

Add a .verploy/ directory to your project with any of these executable scripts:

  • verify (optional) -- runs automated quality checks on Stop (e.g. linting, type checking, tests)
  • manual -- runs manual checks (e.g. human review, expensive tests)
  • deploy -- runs after pushing (e.g. publishing to PyPI)

Example .verploy/ scripts

.verploy/verify:

#!/bin/bash
set -euo pipefail

uv run ruff format .
uv run ruff check --fix .
uv run pyright
uv run pytest --cov --cov-fail-under=100

.verploy/deploy:

#!/bin/bash
set -euo pipefail

uv build --no-sources
uv publish

.verploy/manual:

#!/bin/sh
read -p "Review the code. Is it acceptable? (y/n) " answer
[ "$answer" = "y" ]

Usage

uv run verploy

License

Licensed under the Apache License 2.0. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

verploy-0.0.21.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

verploy-0.0.21-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

File details

Details for the file verploy-0.0.21.tar.gz.

File metadata

  • Download URL: verploy-0.0.21.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for verploy-0.0.21.tar.gz
Algorithm Hash digest
SHA256 ea45815a9c17d0d50acdfd243f7bba3e5dae8600c0546646569ec4a3f7cac84a
MD5 60d92a7c131d5b3b247e23ca8a0c6282
BLAKE2b-256 cebaaea908cf5b9246149a8962da8d89ec1340da17bf3455d425d76ea508fb6f

See more details on using hashes here.

File details

Details for the file verploy-0.0.21-py3-none-any.whl.

File metadata

  • Download URL: verploy-0.0.21-py3-none-any.whl
  • Upload date:
  • Size: 9.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for verploy-0.0.21-py3-none-any.whl
Algorithm Hash digest
SHA256 350c8e89dc38edb1ece826334b01562f78a6afb45caf01c16d651f7d14547289
MD5 63e74464665ad827d44b1949b80a92ea
BLAKE2b-256 84c2bf9aa15f58b244215a58706bedeb78147ea9037cb8f2e3f0f90153d9dd64

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page