[2.2.0] - 2026-08-28
Ships as @subscribrai/cli. Adds the Subscribr Video Review & Fix surface — reads, staging writes, and publish — plus generation (quote/create/cancel) and a generic file-download convenience.
Added
- Subscribr Video project and revision reads:
video list-projects,video get-project,video get-project-download,video get-editable-content,video get-revision-manifest,video list-overlay-templates,video get-quality-report, andvideo get-revision-pass. - Subscribr Video revision-staging and discard writes, each requiring
--idempotency-keyand--if-match:video add-overlay,video remove-staged-overlay,video update-overlay,video remove-overlay,video update-captions,video remove-music,video edit-slide-text,video regenerate-visual,video show-presenter, andvideo discard-edit. A409 revision_conflicton any of them returnserror.current_revision; retry the identical write with that value as the new--if-match. video apply-revision, which publishes the staged changes as a new, immutable video revision. Requires thevideo:publishability (staging writes requirevideo:edit); confirm with the user before calling it, then poll the returned operation withoperations get-operation.--output <path>, for any command whose response carries adownload_url(for examplevideo get-project-download). Streams the file straight to disk instead of printing the signed URL, and never sends your bearer token to the signed URL's own host.video quote-video,video create-video, andvideo cancel-video, for generating a new video.quote-videoreturnsrequired_creditsand spends nothing, so an agent can price a generation before committing to it; quote and charge always agree.create-videorequires--idempotency-key, so a replayed submit converges on the same video instead of billing twice, and returns202with an operation to poll withoperations get-operation, the same asapply-revision.cancel-videoworks at any point before the video finishes, is a harmless no-op once it has, and refunds the full charge. All three require thevideo:generateability, separate fromvideo:edit/video:publish— a token can edit and publish without ever being able to spend.- A
404on any of the 22 operations above that carries no typed Subscribr error body now explains itself: the operation may not be deployed or enabled for this Team yet, rather than a generic validation failure. A disabled-but-deployed capability still returns the typedvideo_capability_unavailableerror, unchanged; a genuine not-found on a deployed route is also typed and is not affected.README.mdand the skill's CLI addendum both say so up front.
Changed
- Renamed the Claude Code plugin from
subscribrtosubscribr-cli, and adopted the official plugin manifest schema. The Subscribr app publishes a separatesubscribrplugin for its hosted MCP connector, and the two names collided. This one is the CLI and its API skill; that one is the MCP connector. The npm package is unaffected, because the plugin manifests do not ship in it. scripts/verify_package.py's Video guard no longer checks the surface against a frozen list of nine read operations. It now enforces five shapes instead: a read must be GET, require onlyvideo:read, and carry no write safety; a staging or discard write must requirevideo:editwith both idempotency and concurrency;apply-revisionmust requirevideo:publishwith the same write safety;quote-videomust requirevideo:generatewith idempotency and concurrency both unsupported; andcreate-video/cancel-videomust requirevideo:generatewith idempotency required and concurrency unsupported.