This release is a pre-release and may not be stable for production use.
Pyplines CLI
Deliver prepared automation and operate it through the public v1alpha1 Server API. The CLI needs neither Docker access nor the Action SDK.
pip install pyplines-cli
pyplines --server https://pyplines.example.com auth login --email you@example.com
pyplines --workspace operations install ./maintenance.tar.gz --config-file production.yaml
pyplines --workspace operations run restart-payments --input service=payments
pyplines --workspace operations logs restart-payments
For a fresh local development appliance, run from the repository root:
pyplines --server http://127.0.0.1:18085 bootstrap \
--bootstrap-token-file .local/docker/pyplines-bootstrap-token
pyplines auth whoami
pyplines list
Bootstrap prompts for a Workspace, administrator email, and confirmed password,
then saves the session and selects that Workspace. The CLI reads only the token
file, never .local/docker/pyplines.env or other appliance settings. Supply the
Server address with --server or PYPLINES_SERVER_URL. Bootstrap checks its
status before prompting: if already complete, it reports that no changes were
made and exits successfully. It never resets an existing installation.
For other installations, supply the token using --bootstrap-token-file or
PYPLINES_BOOTSTRAP_TOKEN, or enter it at the hidden prompt. No token/password
value flags are provided. For noninteractive use:
pyplines --server https://pyplines.example.com bootstrap \
--email you@example.com --workspace operations \
--bootstrap-token-file /secure/bootstrap-token \
--password-file /secure/admin-password --json
Keep these input files private (for example, mode 0600 on Unix). Only the
session is saved locally, not the bootstrap token or password. A lost connection
can occur after bootstrap commits: try login before retrying. Successful
initialization is not rolled back if saving the local session fails.
Password login
creates a managed session under ~/.pyplines/credentials/. Passwords are not saved.
Use PYPLINES_ACCESS_TOKEN for ServiceAccount automation, --json for structured
output, and run -d for detached execution. auth logout revokes the saved session.
Requires the Docker v1alpha1 Server with migrations through 20260910001000.
It does not support the retired Core/Project API. Upgrading the package replaces
the old command surface; legacy credentials are not imported automatically.
pyplines version reports the installed CLI package version (including editable
development suffixes) without connecting to the Server. Use pyplines version --json for structured output; this is the client version, not the Server version.
Commands: version, bootstrap, inspect, config, install, update, upgrade, uninstall, list,
status, run, logs, runs list|wait|cancel, and auth login|whoami|logout.
Configuration files use JSON-compatible YAML. Human-readable static text is the
default; automation never encounters implicit prompts. Explicit login requires a
terminal. Approvals and missing inputs are handled through authorized Page/API
interactions, not CLI prompts.
See operation details for delivery semantics, limits,
authentication, and qualification. The old cli/ sources are historical reference
only and are excluded from both wheel and source distribution.
Shared CLI behavior
Human mode is the default: Typer help and readable results, with Rich tables on
interactive terminals. AUTOMATION_MODE=enabled or --json enables structured
JSON output and disables prompts. Results go to stdout; errors and progress go
to stderr. Streaming logs use newline-delimited JSON in automation mode.
Use version or --version without a Server connection. Diagnostic exception
types are available through --verbose-errors or PYPLINES_VERBOSE_ERRORS=true.
Fresh installations and saved sessions
Bootstrap defaults to Workspace default. Interactive password validation retries
in place; automation must supply email, a password file, and a bootstrap token
source. AUTOMATION_MODE=enabled never prompts and produces JSON output.
Sessions are bound to the Server URL and its database-backed installation ID. After a successful bootstrap/sign-in, the CLI atomically saves the verified session. Reinstalling at the same URL does not attempt to revoke a session from the previous installation. Sessions without an installation ID are not assumed to belong to the new installation. Failed sign-ins and concurrent session replacements preserve existing credentials. No automatic global credential pruning is performed.
Install from an OCI registry
pyplines inspect oci://ghcr.io/acme/maintenance:1.2.0
pyplines config oci://ghcr.io/acme/maintenance:1.2.0 > production.yaml
pyplines install oci://ghcr.io/acme/maintenance:1.2.0 --config-file production.yaml
pyplines upgrade restart-payments --dist oci://ghcr.io/acme/maintenance:1.3.0 --config-file production.yaml
All these commands also accept local archives. Registry references require an
explicit tag or digest. Tags are resolved once per command; use the digest from
inspect across commands when you need a fixed publication throughout review.
The CLI verifies registry payload integrity; the Server independently verifies
publisher trust before installing. Inspection does not imply publisher approval.
Registry downloads use direct HTTP APIs, not Docker. Credentials come from
PYPLINES_REGISTRY_CONFIG_FILE or Docker-compatible configuration and helpers.
Platform sessions and Action image-pull credentials remain separate. TLS is
required; PYPLINES_REGISTRY_ALLOW_HTTP=localhost:5000 is an explicit local-test
exception. Registry transport does not read .netrc or implicit proxy settings.
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 pyplines_cli-2026.9.4a1.tar.gz.
File metadata
- Download URL: pyplines_cli-2026.9.4a1.tar.gz
- Upload date:
- Size: 108.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b596930f9114e0d5a21d0062ff518d00a328122d6b4191307d0d7080f70f3e8
|
|
| MD5 |
9e3c2cf9d475e639ceaff81898f4f593
|
|
| BLAKE2b-256 |
7eed444d92dc9762659abe9aec615bd401a769ab2708054a3f2968863a31525a
|
Provenance
The following attestation bundles were made for pyplines_cli-2026.9.4a1.tar.gz:
Publisher:
publish-release.yml on pyplines/pyplines
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyplines_cli-2026.9.4a1.tar.gz -
Subject digest:
8b596930f9114e0d5a21d0062ff518d00a328122d6b4191307d0d7080f70f3e8 - Sigstore transparency entry: 2788791145
- Sigstore integration time:
-
Permalink:
pyplines/pyplines@9e8048175688d498bbf997dffdfa996bc3a070ec -
Branch / Tag:
refs/tags/v2026.9.4a1 - Owner: https://github.com/pyplines
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-release.yml@9e8048175688d498bbf997dffdfa996bc3a070ec -
Trigger Event:
push
-
Statement type:
File details
Details for the file pyplines_cli-2026.9.4a1-py3-none-any.whl.
File metadata
- Download URL: pyplines_cli-2026.9.4a1-py3-none-any.whl
- Upload date:
- Size: 28.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01002bdfd47289592c6a27410effb816ae022d41c847ead8f84c30585c077672
|
|
| MD5 |
06469da640bf9385ce83006f088ba463
|
|
| BLAKE2b-256 |
1c0db47d672c02e09e7be691d20b43d364ff7e502631251789ad4ac93ab8d272
|
Provenance
The following attestation bundles were made for pyplines_cli-2026.9.4a1-py3-none-any.whl:
Publisher:
publish-release.yml on pyplines/pyplines
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pyplines_cli-2026.9.4a1-py3-none-any.whl -
Subject digest:
01002bdfd47289592c6a27410effb816ae022d41c847ead8f84c30585c077672 - Sigstore transparency entry: 2788791165
- Sigstore integration time:
-
Permalink:
pyplines/pyplines@9e8048175688d498bbf997dffdfa996bc3a070ec -
Branch / Tag:
refs/tags/v2026.9.4a1 - Owner: https://github.com/pyplines
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-release.yml@9e8048175688d498bbf997dffdfa996bc3a070ec -
Trigger Event:
push
-
Statement type: