Releases: ably/ably-cli
Releases · ably/ably-cli
v1.1.1
Added
ably initnow completes the one-command onboarding flow by installing@ably/cliglobally. Runnpx @ably/cli initonce and theablycommand is available in every shell from then on — no separatenpm install -gneeded. At-the-keyboard users get a single yes/no prompt (default Yes);--jsonmode runs the install silently for AI agents. Add--no-installto opt out. The install step is non-blocking — if it can't complete (e.g.EACCESon a system-wide Node install), init carries on with authentication and skills installation and tells the user how to install manually.
v1.1.0
Added
ably init- single-command onboarding for AI-powered development. Install the Ably CLI, authenticate, and install the Ably Agent Skills into your AI coding tools all in one command (npx @ably/cli init). Detects installed tools (Claude Code, Cursor, VS Code, Windsurf) and installs via the appropriate mechanism (Claude Code plugin or file copy). Verifies SLSA provenance attestations on downloaded skill bundles before installing.ably skills install- install or update the Ably Agent Skills into AI coding tools independently ofably init. Same tool detection, install mechanisms, and SLSA attestation verification.- **
ably channels get-message- a one-shot command for fetching the latest version of a message on a channel by its serial
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