> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://docs.simplified.com/cli/social-publishing/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.simplified.com/_mcp/server. # Social publishing Use the social commands with accounts already connected in Simplified. Start by listing them, then choose the IDs for the channels you want to use: ```bash simplified accounts:list simplified accounts:list --network instagram ``` Supported network filters are `facebook`, `instagram`, `linkedin`, `tiktok`, `tiktokBusiness`, `youtube`, `pinterest`, `threads`, `google`, `bluesky`, `mastodon`, `reddit`, and `telegram`. Use `google` for Google Business accounts. ## Create a draft ```bash simplified posts:create \ --content "Our autumn collection is here." \ --accounts "ACCOUNT_ID" \ --action draft ``` Choose the action deliberately: | Action | Use it when | | -------------- | ----------------------------------------------------------------------------------------------------------- | | `draft` | The content needs editing or review. | | `add_to_queue` | The content should enter the account's publishing queue. Check that account's queue settings in Simplified. | | `schedule` | The post should be scheduled for a specific date and time. | Queueing is not an explicit “publish now” command. The CLI's create command supports the three actions above. ## Add images and video Use publicly reachable media URLs, including a fresh stored URL from [assets:get](/cli/assets-and-uploads). A local path such as `./photo.jpg` must be uploaded first. ```bash simplified posts:create \ --content "Explore the collection." \ --accounts "ACCOUNT_ID" --action draft \ --media "https://cdn.example.com/front.jpg,https://cdn.example.com/detail.jpg" ``` For a video with a poster frame, supply objects through `--media-json`: ```bash simplified posts:create \ --content "See the collection in motion." \ --accounts "ACCOUNT_ID" --action draft \ --media-json '[{"url":"https://cdn.example.com/launch.mp4","thumbUrl":"https://cdn.example.com/poster.jpg"}]' ``` `--media-json` takes precedence over `--media`. The CLI accepts up to ten media URLs through `--media`; each platform can impose additional format and count requirements. ## Choose platform-specific settings Pass per-platform options as a JSON object in `--additional`. For example, an Instagram Reel uses a video and the Reel/direct publishing settings: ```bash simplified posts:create \ --content "Behind the scenes." --accounts "INSTAGRAM_ACCOUNT_ID" \ --action draft --media "https://cdn.example.com/behind-the-scenes.mp4" \ --additional '{"instagram":{"postType":{"value":"reel"},"channel":{"value":"direct"}}}' ``` Use the Social Media API reference for the current `additional` schema. Options are platform-specific; a caption and media combination suitable for one channel may need changes for another. For a LinkedIn document carousel, provide a reachable PDF URL in `additional.linkedin.document.url` and an empty media array. Use a JSON file as shown below so the full payload is explicit. An asset UUID is not a PDF URL. ## Work across multiple accounts Supply comma-separated IDs. Add `--group` to create a grouped post for two or more accounts: ```bash simplified posts:create \ --content "A new chapter starts today." \ --accounts "LINKEDIN_ACCOUNT_ID,BLUESKY_ACCOUNT_ID" \ --action draft --group ``` Review the content for each destination. Use separate drafts when the copy or media needs to differ substantially. ## Schedule a post Use a future date in `YYYY-MM-DD HH:MM` format: ```bash simplified posts:create \ --content "Our collection is now available." \ --accounts "ACCOUNT_ID" --action schedule \ --date "2027-01-15 17:00" ``` Replace the sample date with your intended publishing time and check the result in the calendar. In version 1.8.0, `posts:create` forwards the date without a separate timezone flag. To set an explicit timezone on an existing scheduled post, use `posts:update`: ```bash simplified posts:update --post-id "POST_ID" \ --date "2027-01-15" --time "09:00" --timezone "America/Los_Angeles" ``` Notice that updates take separate `--date` and `--time` values. Listing posts uses `--tz` to choose the display timezone; this does not reschedule them. ## Use a JSON file for a reusable payload Create `post.json` and replace the placeholder account and media values: ```json { "message": "Our latest field guide.", "account_ids": [12345], "action": "draft", "media": [], "additional": { "linkedin": { "document": { "url": "https://cdn.example.com/field-guide.pdf", "title": "The field guide" } } } } ``` ```bash simplified posts:create --json post.json ``` `--json` reads the complete API request body from the file; the usual content, accounts, action, and media flags do not build that body for you in this mode. Use valid JSON, not comments or shell variables inside the file. ## Add follow-up comments ```bash simplified posts:create \ --content "Read our latest guide." --accounts "ACCOUNT_ID" --action draft \ --comment "Full guide: https://example.com/guide" ``` For several comments, use `--comments` with an array of objects containing `message` and a `delay` in seconds. `--comments` takes precedence over `--comment`. Comments are intended for after publication; platform support still applies. ## Find, edit, and remove content ```bash simplified posts:list --accounts "ACCOUNT_ID" --category scheduled --page 1 --per-page 20 simplified posts:list-drafts --accounts "ACCOUNT_ID" simplified posts:update --post-id "POST_ID" --content "Updated caption." simplified posts:update-draft --draft-id "DRAFT_ID" --content "Revised draft." ``` Copy identifiers from the matching list response. Scheduled-post IDs, draft IDs, and group IDs are different inputs. To remove an attachment, an update command accepts `--media ""`. To delete content, choose the narrowest identifier that matches your intention: ```bash simplified posts:delete --post-schedule-id "POST_SCHEDULE_ID" simplified posts:delete-draft --draft-ids "DRAFT_ID" ``` Both delete commands also accept `--group-id` to act on a group. Re-list content after changes to verify the result. For a review process before scheduling, continue to [reviews and approvals](/cli/reviews-and-approvals). > Prepare drafts, add media, schedule posts, and manage your publishing calendar.