Check for a newer Sume CLI release in CI without auto-upgrading
sume update --check reports whether a newer GitHub Release exists and changes no files. Run it on a schedule, log it, and bump your pinned tag by pull request.

sume update --check tells you whether a newer GitHub Release exists and, per the install docs, it does not modify local files. In CI, run it on a schedule, save the text, and treat an upgrade as a deliberate change to the tag you pin.
What is documented
The docs do not specify the output format or an exit code for the "newer release exists" case, so do not build a gate on parsing it. Use it as a notification and keep the pin as the source of truth.
| Command | Documented behavior |
|---|---|
sume version | Prints the installed version |
sume update --check | Reports whether a newer GitHub Release exists, without changing files |
| Hosted installer | Re-run it when you choose to upgrade |
| Pinned install | Replace latest in the release URL with a tag such as v0.1.6 |
A scheduled report
A nightly job can write both outputs to one file that your team reads or diffs. It never installs anything.
set -euo pipefail
{
echo "installed: $(sume version)"
echo "check:"
sume update --check
} | tee cli-version-report.txtScope of the job
The report step runs only sume version and sume update --check, both listed in the CLI command reference as plain commands with no job submit or confirm flag, so it triggers no paid generation.
How to upgrade
When the report shows a newer release, open a pull request that edits the pinned tag in your install step. The checksum and pin recipe covers the verification side. Re-run sume doctor --agent --json after the bump.
Sources
Related posts
More in Developers
- Sume uploadFile with raw bytes needs a content type, or no request
uploadFile refuses a Uint8Array or ArrayBuffer without contentType and throws SumeUploadError at step create before any call. Pass a typed Blob or a MIME.
- Sume webhook handler status codes: when to return 401, 2xx or 5xx
Sume retries any non-2xx up to 10 times, 30 seconds apart. Return 2xx only after you store the event. A Python handler that refuses a bad signature.
- Sume job webhooks: failed and canceled both say ERROR, branch on event
job.failed and job.canceled webhook payloads both use status ERROR with an error object. Dispatch on the event name, not status, in Python.
- Sume webhook 300-second tolerance: verify on receipt, not later
A queued Sume webhook fails the 300-second timestamp check if verified late. Verify at the edge, then queue the body. Python with a testable clock.
Written by Sume