Releases: ably/ably-cli
Releases · ably/ably-cli
v1.0.0
First stable release. This is a large release that overhauls authentication, command argument conventions, output formatting, and adds several new command groups. Key user-facing changes are summarised below; review the migration notes before upgrading.
Added
- OAuth Device Authorization login —
ably loginnow uses the OAuth 2.0 Device Authorization Grant for browser-based sign-in. Works in SSH sessions, containers, and headless CI without a localhost callback. Multi-account is built in: sign in once per account, switch contexts withably accounts switch, and tokens refresh transparently in the background. --forceflag for destructive operations — unified across delete/revoke/wipe commands. Interactive use prompts for confirmation; non-interactive use (scripts, agents) refuses to run unless--forceis passed explicitly. Prevents accidental destruction by automation that has general CLI access.- Error hints — fatal errors now include a
hintfield naming a specific next-step command (e.g. "runably login" for auth errors). Surfaced in both human-readable output and the JSON error envelope, so agents can self-heal in fewer turns. - Chat message mutations —
ably rooms messages update,delete, and reactions/annotations support - Push notification publish —
ably push publishfor sending push notifications via channels - Annotations — new
ably channels annotationscommand group with publish/subscribe/get/count/delete - Spaces commands — expanded coverage including locks acquire/release, locations set, cursors set, members enter, and
get/get-allqueries - Integrations — first-class command group for managing integration rules (
ably integrations list/get/create/update/delete) - Channel rules for mutable messages — flags for configuring update/delete/annotation policies on channel rules
- Stats top-level command —
ably stats(moved out ofapps)
Changed
- BREAKING: Auth flags removed —
--api-key,--token, and--access-tokenno longer accepted on commands. Useably loginor env varsABLY_API_KEY/ABLY_TOKEN/ABLY_ACCESS_TOKEN. - BREAKING: Primary entity identifiers are now positional arguments — flags like
--name,--channel,--location, and--keythat named the entity being acted on have been replaced with positional args (POSIX/docopt convention). Affectsapps,keys,queues,rules,push,channels,rooms,spaces locations, and others. - BREAKING: Standardized argument naming — argument names in errors and help output are snake_case; commands use camelCase identifiers consistently (
appId,keyName,channelName). - BREAKING: Flexible name-or-ID lookup —
apps,keys,queues, andrulescommands now resolve either name or ID. Behaviour for ambiguous lookups may differ from previous versions. - BREAKING:
auth revoke-tokenno longer accepts aTOKENpositional; pass--client-idor--revocation-key. Adds confirmation prompt and--force. - Unified JSON output envelope — every command now emits
{type, command, success, ...}with domain data nested under singular/plural domain keys. Streaming commands emit NDJSON withstatus: "listening"/"holding"signals and a finalstatus: "completed"event. - Unified output helpers —
logProgress,logSuccessMessage,logListening,logHolding,logWarningreplace ad-hocchalkusage; non-JSON output uses labeled multi-line blocks (no ASCII tables). - Unified time-range flags —
--start/--endaccept ISO 8601, Unix ms, or relative ("1h","30m") across all history and stats commands. - Unified pagination — cursor-based pagination with
formatPaginationLogwarnings when multiple pages are fetched, andnexthints in JSON output. - Help theme — colour-coded help via oclif theme (commands cyan, flags whiteBright, headers bold, defaults yellow, required red).
- Error handling — fatal errors now flow through a single
this.fail()funnel that preserves Ably error codes/HTTP status and emits structured JSON error envelopes.
Fixed
- Many fixes around JSON output consistency, timestamp formatting, error envelopes, billable message warnings, channel-rule handling, push message shape, batch publish, room messages subscribe across multiple rooms, presence flows, and exit codes.
- Web CLI: file-read security hardening, auto-connect detection with signed config, domain-scoped credential clearing.
- Spaces
enterno longer triggers on read-only commands (subscribe/get are now passive observers). - Duplicated "Press Ctrl+C to exit" suffixes removed from holding messages.
Removed
- BREAKING: Auth CLI flags (see Changed section above)
Migration Notes
If you have scripts targeting v0.x, the most likely breakages are:
- Replace
--api-key/--token/--access-tokenflags with environment variables (ABLY_API_KEY,ABLY_TOKEN,ABLY_ACCESS_TOKEN) or runably loginonce on the host. - Move primary entity identifiers from flags to positional args, e.g.:
ably apps update --name my-app …→ably apps update my-app …ably channels publish --channel foo --message bar→ably channels publish foo barably spaces locations set --location ./path …→ably spaces locations set ./path …
- Update JSON consumers — top-level shape now includes
type,command, andsuccessfields, with payload nested under a domain key (message,cursor,lock,rules, etc.). - Rename argument references in any error-handling code that matched on previous arg names.
ably auth revoke-token <TOKEN>→ably auth revoke-token --client-id <ID>or--revocation-key <KEY>(the positionalTOKENarg is no longer accepted).
v0.17.0
Added
channels inspectcommand to open the channel dashboard- Channel push notification support via
extrasin message data - Unified
--startand--endflags for all history commands (ISO 8601, Unix ms, or relative e.g."1h","30m")
Changed
statscommand moved to top-level (was underapps)- Streamlined flag architecture and unified output formatting across all commands
- BREAKING: Auth flags (
--api-key,--token,--access-token) removed — useably loginor environment variables (ABLY_API_KEY,ABLY_TOKEN,ABLY_ACCESS_TOKEN) instead
Fixed
- Various quality-of-life improvements including better error messages, corrected help examples, and more reliable channel rule handling
Removed
- Built-in MCP server