Skip to main content

The fastest CI/CD system for agentic engineering.

Project description

Verploy

PyPI version Python versions License

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.

Rationale:

  • Local-first workflows significantly reduce per-prompt latency compared to using remote agents and GitHub's CI/CD
  • Manual verification should be programmatically defined on a per-project basis
  • Worktree support enables agents to work independently
  • Rebase conflict handling discourages agents from modifying git
  • Docker containers are necessary to sandbox autonomous agents
  • Agents should not have access to on-device 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 interaction: Automated worktree rebase 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.12.tar.gz (9.3 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.12-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: verploy-0.0.12.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

Hashes for verploy-0.0.12.tar.gz
Algorithm Hash digest
SHA256 14b9a30e48a57f62127b37938bf4c64e95b62ab3ee86d7df51a4fa6c74cd741f
MD5 b4f6897d919b3e1a35dda12e28c781ae
BLAKE2b-256 f1d0f8314047cd7bb654f646cab7139c5aa019b1d985041e41300d76e93f7507

See more details on using hashes here.

File details

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

File metadata

  • Download URL: verploy-0.0.12-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

Hashes for verploy-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 7a549bde937c5b6d22b7984dd267be65332d36e1544add7524762ca36941e93e
MD5 72f10f5afe9335706e689f3340e3551f
BLAKE2b-256 f19332409835f857f32baab3f83b81e1bd84f8c9252c7e5be56598051627a51c

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