Skip to main content

PyPI launcher for the ReplyLayer CLI

Project description

rly

rly is the PyPI launcher for the ReplyLayer CLI.

Looking for the Python library? This package is the CLI. For the importable SDK (import replylayer), install replylayer instead: pip install replylayer.

pipx install rly
rly --help

Installing the rly package exposes both the rly and replylayer commands — they are aliases for the same launcher, mirroring the npm package. Use whichever name you prefer:

replylayer --help   # identical to `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

On the supported binary-wheel install, the rly command execs a bundled native replylayer binary directly — no Node toolchain is involved. The npx replylayer@<pinned> path is reached only when you explicitly set RLY_FORCE_NPX=1 (the launcher's emergency fallback). If the bundled binary is absent (a source/sdist install on an unsupported platform), rly exits with an actionable error pointing at RLY_FORCE_NPX=1 — it does not fall back to npx automatically. The version-pin contract still holds for that npx fallback — rly@X.Y.Z resolves replylayer@X.Y.Z exactly (see Strict pin policy below).

Requirements

  • Python 3.10+
  • pipx for the recommended global install path

Optional (fallback only): Node 22+ with npx on PATH is required only when you opt into the emergency RLY_FORCE_NPX=1 fallback — which is also how you run a source/sdist install on an unsupported platform (set RLY_FORCE_NPX=1 with Node on PATH; the launcher does not switch to npx on its own). The binary wheel needs neither Node nor npx.

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 CLI subprocess does not exit in time the launcher prints a diagnostic to stderr and exits with code 124. This bounds the bundled-binary exec on the supported path (and the npx process under RLY_FORCE_NPX=1).

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

RLY_OFFLINE is a no-op on the default bundled-binary path — it applies only under the RLY_FORCE_NPX=1 fallback (the only path that invokes npx).

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.Z cannot ride a later patch-level replylayer release; both packages must be republished together. The matched-pair release runbook lives at docs/runbooks/cli-release.md in 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) or npm 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

rly-0.7.0.tar.gz (15.5 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

rly-0.7.0-py3-none-win_amd64.whl (31.4 MB view details)

Uploaded Python 3Windows x86-64

rly-0.7.0-py3-none-manylinux_2_28_x86_64.whl (39.4 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

rly-0.7.0-py3-none-manylinux_2_28_aarch64.whl (39.0 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

rly-0.7.0-py3-none-macosx_14_0_x86_64.whl (36.9 MB view details)

Uploaded Python 3macOS 14.0+ x86-64

rly-0.7.0-py3-none-macosx_14_0_arm64.whl (34.9 MB view details)

Uploaded Python 3macOS 14.0+ ARM64

File details

Details for the file rly-0.7.0.tar.gz.

File metadata

  • Download URL: rly-0.7.0.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rly-0.7.0.tar.gz
Algorithm Hash digest
SHA256 3fa622ea27ecb0d6b08f4a1a45a055d68323c8c7604b3051c73c0913dbcbfacd
MD5 7374e83310d9eeee7a5004a4ec0d624d
BLAKE2b-256 b65b36fbb4f5401b91349d712e4e158c5d7847cc41987e71642ae27b2528cb96

See more details on using hashes here.

Provenance

The following attestation bundles were made for rly-0.7.0.tar.gz:

Publisher: release-cli-binaries.yml on replylayer/ReplyLayer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rly-0.7.0-py3-none-win_amd64.whl.

File metadata

  • Download URL: rly-0.7.0-py3-none-win_amd64.whl
  • Upload date:
  • Size: 31.4 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rly-0.7.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 f6102aadef933883a790ab6da3ed93210765123ffcf18af235ced48ef106f94f
MD5 49db28f7e798e1dfd06db4e0aa027391
BLAKE2b-256 74a5c0efb8b511d92336dd51943e862ff3f833c4a4e40cdaed893d52b5041e86

See more details on using hashes here.

Provenance

The following attestation bundles were made for rly-0.7.0-py3-none-win_amd64.whl:

Publisher: release-cli-binaries.yml on replylayer/ReplyLayer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rly-0.7.0-py3-none-manylinux_2_28_x86_64.whl.

File metadata

  • Download URL: rly-0.7.0-py3-none-manylinux_2_28_x86_64.whl
  • Upload date:
  • Size: 39.4 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

Hashes for rly-0.7.0-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 547d6eab066495cab854ba3e1879ae0dcd46f72f43859b5ceb588df2f57df492
MD5 c0915703230dcf7e0ed6c3afe966c4fc
BLAKE2b-256 e42d6d823c94d2f4cf6979ac3d0d4a9867ea48adfb2ca7a7c774764892fcf75d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rly-0.7.0-py3-none-manylinux_2_28_x86_64.whl:

Publisher: release-cli-binaries.yml on replylayer/ReplyLayer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rly-0.7.0-py3-none-manylinux_2_28_aarch64.whl.

File metadata

  • Download URL: rly-0.7.0-py3-none-manylinux_2_28_aarch64.whl
  • Upload date:
  • Size: 39.0 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

Hashes for rly-0.7.0-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b4a13c67aee7b5e2887242fbb6b68fcb42266f1983abab554f094128755ff9a4
MD5 8ac05dbbe6668da67cca63fcfd1a3a68
BLAKE2b-256 ebc1f41f6cec6639e7f34f726d6ec2c476dbf709f6bd052bc5b4426a4c261aa3

See more details on using hashes here.

Provenance

The following attestation bundles were made for rly-0.7.0-py3-none-manylinux_2_28_aarch64.whl:

Publisher: release-cli-binaries.yml on replylayer/ReplyLayer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rly-0.7.0-py3-none-macosx_14_0_x86_64.whl.

File metadata

  • Download URL: rly-0.7.0-py3-none-macosx_14_0_x86_64.whl
  • Upload date:
  • Size: 36.9 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

Hashes for rly-0.7.0-py3-none-macosx_14_0_x86_64.whl
Algorithm Hash digest
SHA256 71573c449cd66fbd9543f520feb4e5e4b6b8813cfec1caefa5f983b377a56060
MD5 94faad9affb356f11fa1bbd288a95975
BLAKE2b-256 ce8cc60c43619933c027a953b71c9958b39e4ec194ff215cd41ec2dacc10626e

See more details on using hashes here.

Provenance

The following attestation bundles were made for rly-0.7.0-py3-none-macosx_14_0_x86_64.whl:

Publisher: release-cli-binaries.yml on replylayer/ReplyLayer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rly-0.7.0-py3-none-macosx_14_0_arm64.whl.

File metadata

  • Download URL: rly-0.7.0-py3-none-macosx_14_0_arm64.whl
  • Upload date:
  • Size: 34.9 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

Hashes for rly-0.7.0-py3-none-macosx_14_0_arm64.whl
Algorithm Hash digest
SHA256 60a5201052dc9097eda859724066ab8ea0713d6a9df81c3ee461b0f3b161cf00
MD5 9ec2db878c8e653b016539c2c7c0b193
BLAKE2b-256 a9a70d5372a96b67457099a30e98e9a0dafcbc99f899c5f367332cf673caee8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for rly-0.7.0-py3-none-macosx_14_0_arm64.whl:

Publisher: release-cli-binaries.yml on replylayer/ReplyLayer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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