dsc post¶
Operations on individual posts (not whole topics). Complements dsc topic pull/push/sync, which only work on the OP.
dsc post pull¶
Downloads the raw Markdown body of the specified post. Writes to <local-path> if given, otherwise to stdout.
dsc post push¶
Replaces the body of the specified post with the contents of <local-path> (or stdin if omitted, or -). Requires either an admin API key or a key whose user is the post author. (Alias: dsc post edit.)
dsc post delete¶
Soft-deletes the post. This is post-ID based; use it when you know the specific post ID. To delete a whole topic by topic ID, use dsc topic delete. Supports --dry-run (or -n).
dsc post move¶
Moves the post to a different topic. dsc infers the source topic from the post itself, so you only supply the destination. Prints the URL of the target topic on success. Supports --dry-run.
dsc post info¶
Read-only lookup that resolves a post ID to its canonical topic URL and minimal metadata: post ID, topic ID/title/slug/category ID, post number, URL, and deletion state. Supports staff-visible soft-deleted posts and topics. Never prints raw post content, author data, or credentials — use dsc post pull when you need the body. (Alias: dsc post i.)
dsc post change-owner¶
Reassigns the visible author of a single post by ID, without needing its topic ID. Resolves the post's topic the same way dsc post info does, then reassigns just that one post (POST /t/{topic-id}/change-owner.json) - a single-post alias for dsc topic change-owner --post <post-id>. Useful when you have a post ID (e.g. from dsc post info or a Reviewable) but not its topic ID. <username> is validated against the target Discourse before the mutating request is sent. Supports --dry-run.
dsc post change-owner myforum 61695 janedoe
# post 61695 in topic 723 reassigned: opsadmin → janedoe
Notes¶
- Post edits and deletes require either admin scope or that the API user owns the post.
- Moving a post that is the first post of its topic will move the whole topic. Discourse's API enforces this.