Production CLI for Relay — query, sync, and manage organisational memory.
Project description
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
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 try_relay-0.3.0.tar.gz.
File metadata
- Download URL: try_relay-0.3.0.tar.gz
- Upload date:
- Size: 40.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e800ee0cbe46f62c130a88faeefd9c2b4a4e2e7027f9fd6506640c3b2592b83
|
|
| MD5 |
7266f51cb35d27bb3fd795ad4818b8f0
|
|
| BLAKE2b-256 |
448e5c6e9edc9d4a47735773ba1d11f9f55bef14a60fad73f740adc8d88a98ea
|
File details
Details for the file try_relay-0.3.0-py3-none-any.whl.
File metadata
- Download URL: try_relay-0.3.0-py3-none-any.whl
- Upload date:
- Size: 50.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f70e52e6348c0e6c0c60d41d0938e4296e0b6a9843fdf7599236a777dbb3eca5
|
|
| MD5 |
9507cf599a635453363075fd16158613
|
|
| BLAKE2b-256 |
ff3e39155b68014a344d60fc35d4fadbf2841de482227e8fae25ae501f09c1b0
|