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.31.tar.gz (8.8 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.31-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: verploy-0.0.31.tar.gz
  • Upload date:
  • Size: 8.8 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.31.tar.gz
Algorithm Hash digest
SHA256 0feaeeee325b22ea26a9509a711949912463f3709c04407356edfe11b45cde0e
MD5 2ccc9911453719ebcf548372a8dab584
BLAKE2b-256 fcf04305ce31dfaf8d1d1e3b7ac9b7a2bf3878e9ac256a9f7b89e3ea52b68a8a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verploy-0.0.31-py3-none-any.whl
  • Upload date:
  • Size: 10.2 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.31-py3-none-any.whl
Algorithm Hash digest
SHA256 bef49a2d8dd5d62ad3a7053cdf9c75fd32afe9d95a24dd18085b9e814fe9b79a
MD5 ce09fb975ca0c6c8e0d375b24d74552e
BLAKE2b-256 e5f208fe35e9c37846733cd8a79a27b12bd2d332b1b38bc609665fd4cec6794a

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