Publish and retry
One logical post moves through two commands: a preview freezes the text, the target account and the payload into a plan, and an execution runs that same plan.
The document
{
"schemaVersion": 1,
"key": "release-announcement-001",
"content": "Syndroo now publishes from the command line.",
"platforms": ["bluesky", "threads"],
"overrides": { "bluesky": { "content": "Shorter version for Bluesky." } }
}key is the stable identity of this post for its whole life (1-128 characters from A-Z a-z 0-9 . _ : -). content is non-blank text of at most 10000 Unicode code points, platforms is a non-empty list naming only bluesky or threads, and overrides may only name a selected platform. The file is strict JSON, limited to 64 KiB before decoding, and --input - reads stdin.
Preview
The preview writes the plan and makes no platform request. Read the frozen text and the target account before continuing; the plan lives 24 hours from creation.
syndroo publish --input post.json --dry-run --jsonExecute
Execution sends at most one content request per target. When nobody can answer a prompt, the run needs both --yes and --no-input; a missing confirmation exits 2 and sends nothing.
syndroo publish --plan <result.planId> --yes --no-input --jsonReceipts
syndroo receipts list --limit 20
syndroo receipts show <result.operationId> --jsonEach target reports status, reused, attempts, remoteId, url, writeDisposition and a retry verdict; the aggregate is succeeded, partial, failed, unknown or blocked. A null url means no verified link is known, so do not build one.
Retry
Retry is explicit and two-phase, exactly like publish. Only targets whose failure is provably not_applied are eligible, and only within three content attempts per logical delivery; a selection that includes an unknown target blocks the whole retry, so narrow it to other safe targets instead. A succeeded target is never republished.
syndroo retry <result.operationId> --to threads --dry-run --json
syndroo retry --plan <result.planId> --yes --no-input --jsonunknown means the write may have reached the platform. Report it as unknown and stop; do not resend that content blindly.
Next steps
- Command reference - flags, exit codes and JSON fields.
- FAQ - expired plans and unknown results.