Sume CLI: --confirm-submit vs --confirm-paid, which one when

The Sume CLI gates non-paid writes with --confirm-submit and avatar creates with --confirm-paid. Reads need neither. Here is the split, with defaults to know.

3 min readSume
All posts

The split

The Sume CLI uses two confirmation flags, and they are not interchangeable. --confirm-submit is for writes that do not spend: cancelling a job and the asset steps assets create, assets upload-url and assets complete. --confirm-paid is for the commands that can spend: avatars create and avatar-videos create. Read commands need neither flag.

The point of two flags is that a script that uploads assets cannot spend by accident, and a spending command cannot be run by habit.

Sume CLI confirmation flags, read 2026-10-08
CommandKindFlag
jobs list / get / waitReadNone
assets list / getReadNone
jobs cancelWrite, not paid--confirm-submit
assets create / upload-url / completeWrite, not paid--confirm-submit
avatars createPaid--confirm-paid
avatar-videos createPaid--confirm-paid

Details that catch people

Avatar scripts run 4 to 60 seconds, and the default quality is plus. There is no sume image, sume video or sume music command: those products are REST-only and are not part of the CLI.

Because the flag is explicit, you can grep your scripts for --confirm-paid and see every line that can spend money. That is a cheap review step before a merge.

A safe wrapper habit

Run the command without the flag first. A gated command that is missing its flag stops and tells you what it needs, which is a free dry check. Add the flag only after you have read the arguments.

In CI, keep paid commands out of shared jobs. Give a paid job its own secret and a spending ceiling on the key's workspace, so a bad loop is bounded by the wallet.

  • Never put --confirm-paid in a shell alias.
  • Keep keys in the environment, not on the command line.
  • Log job ids and statuses, not signed URLs.

How it matches the other surfaces

Hosted MCP expresses the same idea with scopes and idempotency_key, while REST uses the Idempotency-Key header. The CLI uses flags because a human or a script types the command. In all three the rule is the same: a paid action is explicit.

Review checklist

Before you merge a script, search for both flags and check that each use matches the table. A --confirm-submit on a command that actually spends is a sign the wrong tool is being called. A missing flag is a sign the step has not been run on purpose.

Also check where credentials come from. The CLI uses the key's workspace, so a script on a shared runner spends from that workspace, not from the person who started it.

  • List every line with --confirm-paid.
  • Check each avatar script is 4 to 60 seconds.
  • Confirm no step calls sume image, sume video or sume music.

Keep a written record

Document the decision in the repository next to the code that makes the call, so the next engineer sees why the choice was made and which docs page it came from. Re-read that page when you upgrade a client or change a key, since gates and limits are the parts most likely to differ from what you remember.

A short note of the date you last verified the behaviour, such as 2026-10-08, is enough for a reviewer to know how fresh the claim is.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume