PyPI launcher for the ReplyLayer CLI
Project description
rly
rly is the PyPI launcher for the ReplyLayer CLI.
pipx install rly
rly --help
On Debian and Ubuntu systems that enforce PEP 668, plain pip install rly
may fail with externally-managed-environment. Use pipx install rly for a
global CLI install, or install inside a virtual environment:
python3 -m venv .venv
. .venv/bin/activate
pip install rly
The installed rly command delegates to the official npm package
replylayer, pinned exactly to the matching launcher version (see
Strict pin policy below).
Requirements
- Python 3.10+
- Node.js 22+ with npm/npx on
PATH - pipx for the recommended global install path
Examples
rly auth login
rly mailbox list
rly inbox list --mailbox support-bot
For full CLI documentation, see the ReplyLayer repository: https://github.com/replylayer/ReplyLayer
Environment variables
RLY_TIMEOUT_SECONDS
Opt-in subprocess timeout, in seconds. When set, every rly invocation is
bounded by subprocess.run(..., timeout=RLY_TIMEOUT_SECONDS); if the
underlying npx process does not exit in time the launcher prints a
diagnostic to stderr and exits with code 124.
By default there is no timeout, with one narrow exception: the help and
version short-circuits (--help, -h, --version, -V) carry a built-in
10-second timeout. Those commands should never need to touch the network
beyond an initial registry resolve; bounding them lets you diagnose a
restricted-network sandbox without affecting legitimate long-poll commands
like rly inbox wait --timeout 60.
RLY_TIMEOUT_SECONDS=30 rly inbox list --mailbox support-bot
Set the value high enough to cover the slowest command you reasonably expect. Setting it to a non-integer string is treated as "no timeout" (graceful fallback rather than a launcher crash).
RLY_OFFLINE
Set RLY_OFFLINE=1 to force npx to resolve replylayer from the local
cache only. The launcher passes both --offline on the command line and
npm_config_offline=true in the subprocess environment (belt-and-suspenders;
--prefer-offline is NOT a no-network guarantee).
If the pinned replylayer version isn't cached locally, npx exits fast
with its own non-zero exit code (typically 1 with ENOTCACHED); the
wrapper passes that exit code through verbatim — it does NOT normalize it
to 124. Exit code 124 is reserved for the wrapper's own timeout branch.
# Populate the cache once, online:
rly --version
# Subsequent calls can run offline:
RLY_OFFLINE=1 rly --version
RLY_OFFLINE=1 is useful in network-restricted CI sandboxes, air-gapped
deployments, or any environment where you want a hard guarantee that the
launcher will not reach out to the npm registry.
Strict pin policy
rly@X.Y.Z always resolves replylayer@X.Y.Z exactly — there is no
@latest resolution and no semver range. The launcher computes the pinned
package string at runtime via importlib.metadata.version('rly'), so the
two artifacts always move together.
This means:
- A published
rly@X.Y.Zcannot ride a later patch-levelreplylayerrelease; both packages must be republished together. The matched-pair release runbook lives atdocs/runbooks/cli-release.mdin the ReplyLayer repository. - Source installs from the repository between a launcher-only PR and the
paired version bump are intentionally unsupported. Use
pipx install rly(PyPI) ornpm install -g replylayer(npm) as the supported install paths.
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
Built Distributions
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 rly-0.2.0.tar.gz.
File metadata
- Download URL: rly-0.2.0.tar.gz
- Upload date:
- Size: 14.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
51b5bc4aea5ca08fc8f6c30175d52d8595d66ae34e7747adf1b9559deddc2e76
|
|
| MD5 |
a2902c3c23e3d2435e86e4ab2e436ce5
|
|
| BLAKE2b-256 |
5725f76fd7733b1bc288a2203077ec7cb06cf9c2215615a5c1c5d36e5c1e5b3c
|
Provenance
The following attestation bundles were made for rly-0.2.0.tar.gz:
Publisher:
release-cli-binaries.yml on replylayer/ReplyLayer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rly-0.2.0.tar.gz -
Subject digest:
51b5bc4aea5ca08fc8f6c30175d52d8595d66ae34e7747adf1b9559deddc2e76 - Sigstore transparency entry: 1663135104
- Sigstore integration time:
-
Permalink:
replylayer/ReplyLayer@e4d4d79706f90a402f50428ad777056e1d9f1466 -
Branch / Tag:
refs/tags/cli-v0.2.0 - Owner: https://github.com/replylayer
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-cli-binaries.yml@e4d4d79706f90a402f50428ad777056e1d9f1466 -
Trigger Event:
push
-
Statement type:
File details
Details for the file rly-0.2.0-py3-none-win_amd64.whl.
File metadata
- Download URL: rly-0.2.0-py3-none-win_amd64.whl
- Upload date:
- Size: 31.1 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee055bb77599db13d742304c6f5815d9626d19e29fe039e08237f6e7023d366b
|
|
| MD5 |
fd4897c32d91457f9bc5587356c24318
|
|
| BLAKE2b-256 |
9a3f2e1c166d39a83f8f9552c26a6bc686d05d748fd36462d0e45547cc683822
|
Provenance
The following attestation bundles were made for rly-0.2.0-py3-none-win_amd64.whl:
Publisher:
release-cli-binaries.yml on replylayer/ReplyLayer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rly-0.2.0-py3-none-win_amd64.whl -
Subject digest:
ee055bb77599db13d742304c6f5815d9626d19e29fe039e08237f6e7023d366b - Sigstore transparency entry: 1663135187
- Sigstore integration time:
-
Permalink:
replylayer/ReplyLayer@e4d4d79706f90a402f50428ad777056e1d9f1466 -
Branch / Tag:
refs/tags/cli-v0.2.0 - Owner: https://github.com/replylayer
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-cli-binaries.yml@e4d4d79706f90a402f50428ad777056e1d9f1466 -
Trigger Event:
push
-
Statement type:
File details
Details for the file rly-0.2.0-py3-none-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: rly-0.2.0-py3-none-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 39.2 MB
- Tags: Python 3, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6decea03dccc7b9fec079631e838a67f3f35aaee4c7b2c5c6f6d534f5e44e8eb
|
|
| MD5 |
f8ee9088ebf2b3f9d49ef5ad96d6a5ff
|
|
| BLAKE2b-256 |
a63769fc90c694f727185bc311c1b179ec927981ec9182ce81dc6faa2bce2ba3
|
Provenance
The following attestation bundles were made for rly-0.2.0-py3-none-manylinux_2_28_x86_64.whl:
Publisher:
release-cli-binaries.yml on replylayer/ReplyLayer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rly-0.2.0-py3-none-manylinux_2_28_x86_64.whl -
Subject digest:
6decea03dccc7b9fec079631e838a67f3f35aaee4c7b2c5c6f6d534f5e44e8eb - Sigstore transparency entry: 1663135354
- Sigstore integration time:
-
Permalink:
replylayer/ReplyLayer@e4d4d79706f90a402f50428ad777056e1d9f1466 -
Branch / Tag:
refs/tags/cli-v0.2.0 - Owner: https://github.com/replylayer
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-cli-binaries.yml@e4d4d79706f90a402f50428ad777056e1d9f1466 -
Trigger Event:
push
-
Statement type:
File details
Details for the file rly-0.2.0-py3-none-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: rly-0.2.0-py3-none-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 38.8 MB
- Tags: Python 3, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83faee6974f1c71480a66ed5abd7b7fc0887b7e8b50736d9ae059d5a994bce65
|
|
| MD5 |
8a682773f814dc1bb587766fcda51858
|
|
| BLAKE2b-256 |
8aae13997e89c7e9a72ca3fb6e69179b0ec301a3a449b0d16578a14489dd2eee
|
Provenance
The following attestation bundles were made for rly-0.2.0-py3-none-manylinux_2_28_aarch64.whl:
Publisher:
release-cli-binaries.yml on replylayer/ReplyLayer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rly-0.2.0-py3-none-manylinux_2_28_aarch64.whl -
Subject digest:
83faee6974f1c71480a66ed5abd7b7fc0887b7e8b50736d9ae059d5a994bce65 - Sigstore transparency entry: 1663135308
- Sigstore integration time:
-
Permalink:
replylayer/ReplyLayer@e4d4d79706f90a402f50428ad777056e1d9f1466 -
Branch / Tag:
refs/tags/cli-v0.2.0 - Owner: https://github.com/replylayer
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-cli-binaries.yml@e4d4d79706f90a402f50428ad777056e1d9f1466 -
Trigger Event:
push
-
Statement type:
File details
Details for the file rly-0.2.0-py3-none-macosx_14_0_x86_64.whl.
File metadata
- Download URL: rly-0.2.0-py3-none-macosx_14_0_x86_64.whl
- Upload date:
- Size: 36.6 MB
- Tags: Python 3, macOS 14.0+ x86-64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a4ca685863822cd0a46d27fcb7cb4eeb078cc2aa3e86e74ba7e8cdf076333d4
|
|
| MD5 |
84f96b32668e4be69d7480b3b69d4775
|
|
| BLAKE2b-256 |
136be18dce0554bb659f8744f2df7baa305be44c2bca6ab16536e7b8ca1830eb
|
Provenance
The following attestation bundles were made for rly-0.2.0-py3-none-macosx_14_0_x86_64.whl:
Publisher:
release-cli-binaries.yml on replylayer/ReplyLayer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rly-0.2.0-py3-none-macosx_14_0_x86_64.whl -
Subject digest:
6a4ca685863822cd0a46d27fcb7cb4eeb078cc2aa3e86e74ba7e8cdf076333d4 - Sigstore transparency entry: 1663135266
- Sigstore integration time:
-
Permalink:
replylayer/ReplyLayer@e4d4d79706f90a402f50428ad777056e1d9f1466 -
Branch / Tag:
refs/tags/cli-v0.2.0 - Owner: https://github.com/replylayer
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-cli-binaries.yml@e4d4d79706f90a402f50428ad777056e1d9f1466 -
Trigger Event:
push
-
Statement type:
File details
Details for the file rly-0.2.0-py3-none-macosx_14_0_arm64.whl.
File metadata
- Download URL: rly-0.2.0-py3-none-macosx_14_0_arm64.whl
- Upload date:
- Size: 34.7 MB
- Tags: Python 3, macOS 14.0+ ARM64
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
36f33266f4eb90a2538c19c6f1ab80342c5a291725550f3fa5cd30598e71215c
|
|
| MD5 |
f36089f2140091e6656df14a05682eb8
|
|
| BLAKE2b-256 |
6af8733352857448e8c6ee0ec57956174664e419e1b61eb63d4f689ecd6bc032
|
Provenance
The following attestation bundles were made for rly-0.2.0-py3-none-macosx_14_0_arm64.whl:
Publisher:
release-cli-binaries.yml on replylayer/ReplyLayer
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rly-0.2.0-py3-none-macosx_14_0_arm64.whl -
Subject digest:
36f33266f4eb90a2538c19c6f1ab80342c5a291725550f3fa5cd30598e71215c - Sigstore transparency entry: 1663135415
- Sigstore integration time:
-
Permalink:
replylayer/ReplyLayer@e4d4d79706f90a402f50428ad777056e1d9f1466 -
Branch / Tag:
refs/tags/cli-v0.2.0 - Owner: https://github.com/replylayer
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release-cli-binaries.yml@e4d4d79706f90a402f50428ad777056e1d9f1466 -
Trigger Event:
push
-
Statement type: