Content
Manage the full content lifecycle for a product from the terminal: create or generate drafts, work the review queue (approve, reject, revise), publish approved drafts, and edit live pages. Pass --scope <product-slug>/<org-slug> to select the product. Every JSON response includes the resolved scope.
tpc content replaces the removed tpc site page command group. Publishing is gated on review: create and generate land drafts in the review queue, and publish fails with a conflict until the draft is approved. The old ungated site page update --status published path no longer exists.
The lifecycle
The review queue is a list filter: tpc content list --status pending-review.
List content
List published pages (default):
Filter the published list (search, path prefix, pagination, sort):
List the review queue and other lifecycle states:
Draft statuses support --prompt <prompt-id> to narrow to one prompt’s drafts.
Get one item
get accepts a draft id or a published document id; the response says which kind answered.
Create content
Created pages land in the review queue as pending_review drafts — they publish only after approval.
Create from a local markdown file:
Generate content
Start the content-generation agent for one or more prompts (Pro plan). Generated drafts land in the review queue.
--watch polls each draft every 5 seconds until generation completes or fails.
Review the queue
Approve one or more drafts (approval queues publishing for publishable content):
Reject with a reason (stored as reviewer feedback, shown in list --status rejected):
Revise a draft — submit an edited replacement, or send feedback for an agent re-run (Pro plan). Both return the draft to the review queue and clear a prior rejection:
Publish and revert
publish queues publishing for an approved draft and fails with a conflict when the draft is unapproved:
revert unpublishes the live page and returns the draft to the review queue:
Update a live page
Only the flags you pass are changed. There is no --status flag — publishing goes through approve/publish.
Pass an empty string to clear an optional field:
Manage domain attachments:
Delete content
Soft-deletes a live page (with its linked draft and tracked URL) or deletes an unpublished draft:
Every command also supports --format json for scripting: