veyzl-cli
Command-line client for Veyzl hosted audits: sign in, list projects and runs, start an audit and gate on its result, and download signed evidence packs.
pipx install veyzl-cli # or: pip install veyzl-cli
veyzl login
veyzl projects
veyzl audit <project-id> --wait
git push && veyzl watch <project-id> # follow the audit the push started
Commands
| Command | What it does |
|---|---|
veyzl login |
Opens veyzl.ai in your browser; approve there and the CLI is signed in as you. |
veyzl logout |
Deletes the stored sign-in from this computer. |
veyzl whoami |
Shows the signed-in account and plan. |
veyzl projects |
Lists the projects you can open, with their latest result and pass rate. |
veyzl runs <project> |
Lists hosted audit runs, newest first (--limit N). |
veyzl audit <project> |
Starts a hosted audit (--branch). With --wait, shows progress and exits 0 only if the audit passes, 1 otherwise. |
veyzl watch <project> |
Follows the audit GitHub started for a push or PR and exits like audit --wait. Matches --commit SHA, --pr N or --branch B; with none of them inside a git repo it follows HEAD, otherwise the newest run. Waits for the run to appear (--timeout, default 1800s). |
veyzl export <project> |
Writes the project's signed evidence pack (-o FILE, --force to overwrite). Startup plan feature. |
whoami, projects, runs, audit and watch take --json for the raw API response.
In a terminal, audit --wait and watch draw a live bar with the elapsed time. While the run
reports progress the bar fills by percent and shows the current step (e.g. 42% running tests 21/50);
otherwise it moves a run stage at a time (queued, running, finished). When output isn't a terminal
(CI logs, pipes, AI coding agents) it prints one plain line per stage instead.
Sign-in
veyzl login listens on a random port on 127.0.0.1 and opens https://veyzl.ai/cli-login.
When you approve there (any sign-in method works: email, Google or GitHub), the page posts your
session back to that listener, guarded by a one-time state value. The CLI stores it in
~/.config/veyzl/credentials.json (or $XDG_CONFIG_HOME/veyzl/), readable only by you, and renews
its short-lived tokens on its own. veyzl logout deletes that file.
Sign-in needs a browser on the same machine as the CLI; it doesn't work over plain SSH. For those places, use a CI token.
CI and cloud agents: VEYZL_TOKEN
CI pipelines and cloud coding agents have no browser, so they use a CI token instead. The
anyone on the project creates one in the project's Settings → CI tokens (Startup plan). It is
shown once, works only on that project, acts as the person who created it (and stops if they leave
the project), and expires after 90 days.
When VEYZL_TOKEN is set, the CLI uses it instead of the stored sign-in.
# GitHub Actions: wait for the audit of this commit before deploying
- run: pipx install veyzl-cli
- run: veyzl watch <project-id> --commit "$GITHUB_SHA"
env:
VEYZL_TOKEN: ${{ secrets.VEYZL_TOKEN }}
A CI token can run runs, audit, watch, export and whoami for its project. projects
needs a signed-in account. Revoke a token in the same settings card; it stops working at once.
Environment
| Variable | Default |
|---|---|
VEYZL_TOKEN |
unset; a project CI token to use instead of veyzl login |
VEYZL_API_URL |
https://api.veyzl.ai |
VEYZL_WEB_URL |
https://veyzl.ai (where login sends the browser) |
Requirements
Python 3.9 or newer, and a Veyzl account. The only dependency is certifi, for HTTPS certificate checks.
Development
From the CLI's source folder:
pip install -e .
python3 -m unittest discover tests
Releasing a new version: see RELEASING.md in the source folder.
License
MIT. This covers the CLI only; using the Veyzl service is subject to its own terms.
Metadata
Release files for veyzl-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| veyzl_cli-0.1.0.tar.gz | 20.1 kB | Without provenance | Details for veyzl_cli-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| veyzl_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for veyzl_cli-0.1.0-py3-none-any.whl |
Total release size: 35.7 kB
Release files / veyzl_cli-0.1.0.tar.gz
| Download URL | veyzl_cli-0.1.0.tar.gz |
|---|---|
| Size | 20.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
50f10a481132949fa972bcda5d708799ed82d4d0d1b413c1e7c4d6befe7fb374
|
|
BLAKE2b-256 checksum How to use checksums |
ded9cf117f4e168de6ceee5f0d6451c18346594e47708909d0c35d25e80f4239
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.17
|
Release files / veyzl_cli-0.1.0-py3-none-any.whl
| Download URL | veyzl_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 15.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
65f8c5c186b87e23b8221fbbb70b528846e1f5aee232b84ae1f9c8bdce7aa8d4
|
|
BLAKE2b-256 checksum How to use checksums |
9f3f259aea3a2cd0dda39f8a5c64edc2df3f4a8e5ecd73064fc3bba914e19fd9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.17
|
Security for veyzl-cli 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.