Skip to content

keryx approve

Description

Approve a piece's outlets on a platform (or all) for publishing — the gate publish enforces (R-POST-2). Approval refuses an outlet whose copy has hard constraint violations (text/title overflow), reporting them (R-POST-10); fix the copy with keryx social set and retry. Advisory notes (e.g. "links not clickable — use link in bio") do not block approval.

--at sets the due hour the unattended runner (publish due) consumes (R-POST-11), and it is an hour: an RFC3339 time with minutes or seconds is refused. A bare date takes the platform's default hour (platforms.<p>.announce.hour in announce.timezone); no --at takes the article's own date at that hour, or is due immediately when the article has no date. Two outlets on one platform may not share an hour anywhere in the article; the second is refused naming the first. --revoke returns the outlet to draft and clears its schedule.

Usage

keryx approve <platform|all> (--article <dir> (--reel <slug> | --post <id>) | --workspace <slug>) [--at <rfc3339-hour|date>] [--revoke]

keryx approve instagram --workspace my-post
keryx approve all --article content/post/my-post --post launch --at 2026-06-20
keryx approve linkedin --article content/post/my-post --post launch --at 2026-06-20T17:00:00+01:00

Flags

Flag Description Default Required
--article the article's bundle directory
--reel the reel piece (a workspace slug)
--post the post piece (its id, from post new)
--workspace shorthand for --article <its bundle> --reel <slug>
--at due hour (RFC3339 on the hour) or a date (takes the platform's default hour); absent uses the article's date
--revoke return the outlet to draft and clear its schedule