The fastest CI/CD system for agentic engineering.
Project description
Verploy
The fastest CI/CD system for agentic engineering.
verploy verify rebases worktrees and runs automated verifications. Coding agents run this from worktrees and docker containers.
verploy deploy builds on verploy verify, adding manual verification, fast-forward merging, and automated deployment. Users run this.
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
- Rebase conflict handling discourages agents from modifying git
- 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
Add a .verploy/ directory to your project with any of these executable scripts:
verify-- runs verification checks (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)
Usage
uv run verploy verify
uv run verploy deploy
Example interactions
Automated worktree rebase and verification with Claude Code
❯ Run `uv run verploy verify` to check your changes
● Bash(uv run verploy verify)
⎿ Error: Exit code 1
Committing worktree changes...
Rebasing onto main...
╭───────────────────── Traceback (most recent call last) ──────────────────────╮
│ /home/peter/src/verploy/.claude/worktrees/readme/src/verploy/verploy.py:75 │
│ in verify_cmd │
│ │
│ 72 @app.command("verify") │
│ 73 def verify_cmd(ctx: typer.Context) -> None: # pragma: no cover │
│ 74 │ worktree, repo_dir = ctx.obj │
… +72 lines (ctrl+o to see all)
● Rebase conflict. Let me find and resolve the conflict markers.
Searched for 2 patterns (ctrl+o to expand)
● Main is at version 0.0.8 with the old description. I'll take the latest version from main
and keep our updated description.
Read 1 file (ctrl+o to expand)
● Update(pyproject.toml)
⎿ Removed 5 lines
1 [project]
2 name = "verploy"
3 -<<<<<<< HEAD
3 version = "0.0.8"
5 -description = "A local-first CI/CD tool for agentic engineering."
6 -=======
7 -version = "0.0.6"
4 description = "The fastest CI/CD system for agentic engineering."
9 ->>>>>>> 770fd1f (Commit)
5 readme = "README.md"
6 authors = [{ name = "Peter Lavigne" }]
7 requires-python = ">=3.12"
● Conflict resolved — kept version 0.0.8 from main with our new description. Let me re-run
verify.
● Bash(uv run verploy verify)
⎿ Building verploy @ file:///home/peter/src/verploy/.claude/worktrees/readme
warning: `build_system.requires = ["uv-build>=0.10.4,<0.11.0"]` does not contain
the current uv version 0.11.7
… +20 lines (ctrl+o to expand)
● All checks passed — linting, type checking, and tests (100% coverage). Changes are
verified and ready to deploy.
License
Licensed under the Apache License 2.0. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file verploy-0.0.13.tar.gz.
File metadata
- Download URL: verploy-0.0.13.tar.gz
- Upload date:
- Size: 9.3 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6f3e8bad0d3e2c1d998edf4c221051c4ddef2be775cf8ea28461765f600c847
|
|
| MD5 |
173c5fc600a5d0904f3e81fadf6e4eb0
|
|
| BLAKE2b-256 |
6394b8f8d0703c85a5b676bebaaf45bf00ee84ba0a62a71f18e97646baead374
|
File details
Details for the file verploy-0.0.13-py3-none-any.whl.
File metadata
- Download URL: verploy-0.0.13-py3-none-any.whl
- Upload date:
- Size: 10.8 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
81a64ff7aa7ad81962bc38354a7af5b764a1e282cd3023e89d3af6e27c5ca2d4
|
|
| MD5 |
b67267cf2e66a31f87547afa58d7dd1c
|
|
| BLAKE2b-256 |
8a5f30f032e5d5fd76b0a1bfcb645e9a5bbd66a28f1bc8b9fe5927b981c7359f
|