relay-cli
Production CLI for Relay. One command (relay) wraps
the full HTTP surface: query the memory layer, pull the daily brief,
manage atoms / conflicts / drift, upload meetings, manage API tokens,
sync published skills, inspect retrieval traces.
The legacy relay-sync console script is preserved as an alias for
relay skills sync so existing automation keeps working.
Install
pipx install ./cli # recommended — isolated, on $PATH
# or
pip install -e ./cli # editable, for hacking on the CLI
Optional extras:
pip install -e "./cli[yaml]" # adds --output yaml support
pip install -e "./cli[dev]" # adds pytest, pyyaml
First run
relay profile set prod --api-base https://api.relay.example --org acme --default
relay login --email you@acme.com
relay doctor
Environment variables (handy in CI):
| Var | Purpose |
|---|---|
RELAY_PROFILE |
Override active profile |
RELAY_API_BASE |
Override API base (skills-sync only) |
RELAY_TOKEN |
Bypass the keyring |
RELAY_CONFIG_DIR |
Override ~/.config/relay |
Commands
relay login [--email --password|-] | [--with-token <jwt>]
relay logout
relay whoami
relay query ask "what is our refund SLA?"
relay query drift <query_log_id>
relay brief [--must-know N --must-do N --waiting N]
relay atoms list [--type --domain --search --limit --offset --include-inactive]
relay atoms list --all [--max 10000] # auto-paginate every page
relay atoms get <atom_id>
relay conflicts list [--status]
relay conflicts resolve <id> --winner <atom_id> [--note "..."]
relay drift list [--status]
relay drift recompute
relay meetings list | get <id> | upload <file> [--title]
relay integrations status
relay integrations disconnect <kind>
relay export mine | create --kind atoms --format json | download <id> --out file
relay trace list | get <id>
relay tokens create --name ci --scope atoms:read --scope query:run
relay tokens list | revoke <id>
relay skills sync --org <slug> --target <dir> [--prune] [--dry-run]
relay profile list | set <name> | default <name> | show
relay welcome # show the Relay banner (profile, API, auth state)
relay doctor
relay --version
Output formats
Every read command supports --output text|json|yaml|table. Default
is text on a TTY, json on a pipe, so relay atoms list | jq just
works.
Security notes
- Tokens live in the OS keyring (Keychain / Credential Manager /
Secret Service). Fallback:
~/.config/relay/tokens/<profile>mode 0600 with a warning. Authorizationis never echoed in-vvlogs (httpx pinned to INFO).- Skills-sync cache rejects any ETag that isn't hex-64 SHA-256.
- Writes are atomic via tmp + rename.
Tests
cd cli
python -m pytest
Metadata
Release files for try-relay 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| try_relay-0.3.2.tar.gz | 41.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| try_relay-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 92.7 kB
Release files / try_relay-0.3.2.tar.gz
| Download URL | try_relay-0.3.2.tar.gz |
|---|---|
| Size | 41.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
421218fba99e0f08ebec7b488d141af7f50b72b3e2f1c3f2d3cf17dcdad32c55
|
|
BLAKE2b-256 checksum How to use checksums |
58bf788ba75599160dbd3d3030e31cc0347959cbd45e41a04fae35c6a5ec1212
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|
Release files / try_relay-0.3.2-py3-none-any.whl
| Download URL | try_relay-0.3.2-py3-none-any.whl |
|---|---|
| Size | 51.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cd8c686f84d7301c7edf2b59dd52b00fa1402760296c90894f475a46553a0290
|
|
BLAKE2b-256 checksum How to use checksums |
11c2ad9bb29c77fbab32e62b00fb2bbe113f2c11f76067c3d5d3f254630387b1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.11
|