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.

Coding agents run verploy verify, which rebases worktrees and runs automated verifications.

Users run verploy deploy, which builds on verploy verify, adding manual verification, fast-forward merging, and automated deployment.

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)

Example .verploy/ scripts

.verploy/verify:

#!/bin/bash
set -euo pipefail

uv run ruff check --fix .
uv run pytest

.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 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


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.17.tar.gz (9.5 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.17-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: verploy-0.0.17.tar.gz
  • Upload date:
  • Size: 9.5 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.17.tar.gz
Algorithm Hash digest
SHA256 e7b1fdf730605734f7490235c4bab49ddcdeb1fd99305d8e1b16314c715c67e0
MD5 10bacf2c958c8628c52c8ff263e3b13e
BLAKE2b-256 3895258bb9dec9e2237d48c27ad1fff803a303f7327fdd14af91bb56c9e54284

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verploy-0.0.17-py3-none-any.whl
  • Upload date:
  • Size: 11.0 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.17-py3-none-any.whl
Algorithm Hash digest
SHA256 bf71890b2e8bec8feca9e1608f7f672d9e7aab999faf79d2e1eb793d165bc18f
MD5 20cf7d50408cb4a38fa816ff2dff8ee6
BLAKE2b-256 fc3f093a3f22f6625eb220f2f5789e20453eb27c2a4738cb67f2d9ac93246785

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