Verploy
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.
Metadata
Release files for verploy 0.0.33
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| verploy-0.0.33.tar.gz | 8.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| verploy-0.0.33-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.1 kB
Release files / verploy-0.0.33.tar.gz
| Download URL | verploy-0.0.33.tar.gz |
|---|---|
| Size | 8.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3ce87834318548a0e72f1ebe1dadafbc4aef286c91483ab25bb78105b3cf17d5
|
|
BLAKE2b-256 checksum How to use checksums |
5591fcb71157b1d661a4a16ff8e2233dbb1398eb329663e86f87a589e0836163
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / verploy-0.0.33-py3-none-any.whl
| Download URL | verploy-0.0.33-py3-none-any.whl |
|---|---|
| Size | 10.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9d2e9e6e0442ffaf0e32dbaa2e72bae01a497e2741b4765e4c33e019b8383676
|
|
BLAKE2b-256 checksum How to use checksums |
791680a56623c63b80c35284ae8cf4d8d2ef60bfb177f63aeab0c9bb7a1c5ded
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|