Skip to main content

The fastest CI/CD system for agentic engineering.

Project description

Verploy

PyPI version Python versions License Coverage

Verploy is an opinionated Claude Code orchestration tool aiming to maximize developer productivity. Verploy treats manual verification, such as code review, as the primary bottleneck of development.

Quickstart

"Claude, set up https://github.com/Peter-Lavigne/verploy for my project, and explain how to use it."

Features

Verploy allows defining deploy-gating and fine-grained manual checks on a per-project basis. Manual checks are more effective when developers commit more working memory to them, so Verploy aims to minimize the number of agents running in parallel by making the CI/CD process as fast as possible.

To that end, additional features include:

  • Everything is local-first to minimize latency compared to remote agents and CI/CD systems
  • Multi-agent support, so the developer is never waiting for an agent to finish
  • A fast-forward-only workflow prevents silent merge conflicts
  • Worktree support enables agents to work independently
  • Works with Docker to sandbox agent execution and isolate deployment credentials

Installation and setup

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

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.33.tar.gz (8.9 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.33-py3-none-any.whl (10.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: verploy-0.0.33.tar.gz
  • Upload date:
  • Size: 8.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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.33.tar.gz
Algorithm Hash digest
SHA256 3ce87834318548a0e72f1ebe1dadafbc4aef286c91483ab25bb78105b3cf17d5
MD5 558f8d3d77362343065b5ce335605859
BLAKE2b-256 5591fcb71157b1d661a4a16ff8e2233dbb1398eb329663e86f87a589e0836163

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verploy-0.0.33-py3-none-any.whl
  • Upload date:
  • Size: 10.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","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.33-py3-none-any.whl
Algorithm Hash digest
SHA256 9d2e9e6e0442ffaf0e32dbaa2e72bae01a497e2741b4765e4c33e019b8383676
MD5 0e108d734c2d89c27bab6095d09812ee
BLAKE2b-256 791680a56623c63b80c35284ae8cf4d8d2ef60bfb177f63aeab0c9bb7a1c5ded

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