Schedule and publish
Schedule posts, publish now, and post X threads from the terminal.
Needs auth and a workspace. Use account ids from dun accounts list.
Schedule a post
Pass either --in (relative) or --at (ISO time), not both.
dun posts schedule \
--text "Hello from DunSocial" \
--accounts ACCOUNT_ID \
--in 1hAbsolute time:
dun posts schedule \
--text "Hello from DunSocial" \
--accounts ACCOUNT_ID \
--at 2026-08-01T15:00:00Z--in accepts values like 30m, 2h, 1d, 1w (and longer forms like minutes, hours).
Multiple accounts (comma-separated):
dun posts schedule --text "…" --accounts ACC1,ACC2 --in 30mWith media (upload first — see Media):
dun posts schedule \
--text "New shot" \
--accounts ACCOUNT_ID \
--media ASSET_ID \
--in 30mPlatform-specific options go in --meta as JSON:
dun posts schedule \
--text "Check this pin" \
--accounts PINTEREST_ACCOUNT_ID \
--media ASSET_ID \
--meta '{"pinterest":{"boardId":"BOARD_ID","title":"Title"}}' \
--in 1hPublish now
dun posts publish \
--text "Hello from DunSocial" \
--accounts ACCOUNT_IDOptional --natural (natural posting). Alias: publish-now.
X threads
Provide a JSON file (array of tweets, or { "tweets": […] }), or split --text with ||.
# thread.json → [ {"content":"First"}, {"content":"Second"} ]
dun posts schedule-thread \
--account X_ACCOUNT_ID \
--file ./thread.json \
--in 2h
dun posts publish-thread \
--account X_ACCOUNT_ID \
--file ./thread.jsonThreads need at least 2 tweets. Use one X account id (--account).
Flags cheat sheet
| Flag | Purpose |
|---|---|
--text / -t |
Post content |
--accounts / -a |
Social account ids |
--in / --at |
When to schedule |
--media |
Media asset ids |
--meta |
Platform metadata JSON |
--natural |
Natural posting (publish) |
--json |
Machine-readable output |
Posts created from the CLI show a CLI source badge in the app.