Relay CLI (rly): Apache 2.0 control surface for the Relay agent reliability OS.
Project description
epochly-relay-cli
The rly command-line interface for the Relay agent reliability OS.
This package ships the public Apache 2.0 control surface declared in spec
section P (CLI inventory + contract). The W5 milestone (sub-features w5.1
through w5.5) wires the CLI onto the Python SDK (epochly-relay), the
canonical schemas (epochly-relay-schemas), and the local sidecar
(epochly-relay-sidecar).
Installation (development)
uv sync --all-packages
uv pip install -e packages/cli
After install, rly --version prints version JSON to a piped stdout and a
human-readable form to a TTY. Exit code is always 0 on success.
Why JSON-by-default
Relay is a control-plane CLI consumed by CI runners, gate engines,
auditors, and other automation. Spec section P pins the rule that piped
stdout is machine-parsable JSON; TTY stdout is permitted to render
human-readable text. This package implements the rule via
sys.stdout.isatty() detection at output emit time.
Why Typer + Click pinned to exact versions
Per VAL-W5-002 (eng plan CQ3), Typer and Click are pinned with the exact
operator (==) rather than a range. The CLI's stdout-JSON contract and
cross-shell snapshot fixtures depend on Typer's command dispatch and
--help rendering; an upstream version bump would invalidate the
snapshots. Bumping Typer or Click is a deliberate W5 maintenance feature,
not an unattended dependency upgrade.
Process safety
Per CLAUDE.md keystone invariant #3 and .ops/manifest.yaml, sidecar
lifecycle commands (rly sidecar start|stop|restart|status) read PID and
port from ~/.relay/sidecar.lock and never invoke kill-by-name primitives
(pkill, killall). The full lifecycle implementation lands in W5.2.
Banned product copy
This package and every customer-facing surface produced by its
distribution pipeline (PyPI long_description, npm description, release
notes, embedded sidecar binary string resources) is scrubbed of the
banned tokens enumerated in CLAUDE.md (banned pattern #9, spec J.5).
The scripts/lint-banned-product-copy.py lint runs in tier-1 plumbing
and fails CI on any match.
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 epochly_relay_cli-0.1.18.tar.gz.
File metadata
- Download URL: epochly_relay_cli-0.1.18.tar.gz
- Upload date:
- Size: 130.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7e41c137aab8031b354b45489333c33ae90d51a252ccfd59fa695b567b1bc449
|
|
| MD5 |
8000f0d603c9d6870ef035275f5fca1d
|
|
| BLAKE2b-256 |
b27622eec3ab92c84b3326a69d7582a02d3afd38834bba881d67a0000307e772
|
Provenance
The following attestation bundles were made for epochly_relay_cli-0.1.18.tar.gz:
Publisher:
release-pypi.yml on epochly-inc/relay
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
epochly_relay_cli-0.1.18.tar.gz -
Subject digest:
7e41c137aab8031b354b45489333c33ae90d51a252ccfd59fa695b567b1bc449 - Sigstore transparency entry: 1656920894
- Sigstore integration time:
-
Permalink:
epochly-inc/relay@2e940510fabc395d2bfa6a7ff82bba4446b9608e -
Branch / Tag:
refs/tags/v0.1.18 - Owner: https://github.com/epochly-inc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@2e940510fabc395d2bfa6a7ff82bba4446b9608e -
Trigger Event:
push
-
Statement type:
File details
Details for the file epochly_relay_cli-0.1.18-py3-none-any.whl.
File metadata
- Download URL: epochly_relay_cli-0.1.18-py3-none-any.whl
- Upload date:
- Size: 158.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3c2515a5b00810388b80afeb6173e7d69e3ad101a99fb0f2e2689e95ebce14ff
|
|
| MD5 |
0a1c889f5a1281ac25d7cff368e42a9b
|
|
| BLAKE2b-256 |
fd75513639e538c228f97f33822551d0e4fc12359393238cbda661e8e888aae0
|
Provenance
The following attestation bundles were made for epochly_relay_cli-0.1.18-py3-none-any.whl:
Publisher:
release-pypi.yml on epochly-inc/relay
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
epochly_relay_cli-0.1.18-py3-none-any.whl -
Subject digest:
3c2515a5b00810388b80afeb6173e7d69e3ad101a99fb0f2e2689e95ebce14ff - Sigstore transparency entry: 1656920980
- Sigstore integration time:
-
Permalink:
epochly-inc/relay@2e940510fabc395d2bfa6a7ff82bba4446b9608e -
Branch / Tag:
refs/tags/v0.1.18 - Owner: https://github.com/epochly-inc
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-pypi.yml@2e940510fabc395d2bfa6a7ff82bba4446b9608e -
Trigger Event:
push
-
Statement type: