OmniSocialsOmniSocials
DocumentationAPI reference
Help centerSupport
  • Documentation
  • API reference
Developers
  • Quickstart
  • API reference
  • SDKs
  • MCP server
  • CLI
For AI agents
  • Docs for AI agents
  • llms.txt
  • OpenAPI spec
  • Postman collection
Product
  • OmniSocials
  • Pricing
  • Changelog
  • Help center
Company
  • Support
  • Privacy policy
  • Terms of service

© 2026 OmniSocials

OmniSocials on GitHubOmniSocials on XOmniSocials on LinkedIn
Overview
Get started
SDKs
CLI
    Posting commandsInbox commandsAnalytics commandsPlatform commandsManagement commands
MCPDocs for AI agentsWebhooks
Guides
Platforms
Integrations
Migrate
Plans and billing
GlossaryChangelogAPI reference
CLI

CLI account management commands

Configuration, media library, folders, and webhook management.

Setup and configuration

CommandDescription
setupInteractive setup: prompts for an API key, validates it, writes the config file, and adds .omnisocials/ to .gitignore. Flags: --api-key <key> (skip the prompt), --global (write the global config), --base-url <url>
config:showShow the resolved config: masked API key, base URL, and which source it came from

These two commands are the only ones that run without authentication. See CLI authentication for the full resolution order.

Media

CommandDescription
media:listList uploaded media files. Flags: --limit, --offset
media:uploadUpload from a URL (image, video, or PDF). Flags: --url (required), --filename, --name, --folder, --folder-id, --pdf-mode. PDFs are split into one image slide per page for carousels; --pdf-mode document keeps the PDF as one media item whose single id expands into every page
media:upload-base64Upload a local file: --file <path> (auto-encodes and infers the MIME type) or --data <base64> plus --mime-type <type>; also --filename, --name, --folder, --folder-id, --pdf-mode
media:checkCheck media compatibility against target platforms before posting. Pass --url, --media-id, or --size-bytes plus --mime. For a library image (--media-id) it also prints how each channel shows it as a feed post (ratio, whether it fits, the crop target and the default action), so you can decide on --media-fit before you post
media:delete <id>Delete a media file
TerminalTerminal
# Upload a local video and verify it works everywhere you want to post omnisocials media:upload-base64 --file ./reel.mp4 omnisocials media:check --media-id 12345

Folders

CommandDescription
folders:listList media folders with id, name, parent, and item count
folders:createCreate a folder. Flags: --name (required), --parent-id (nested folders)

Hashtag sets

Save a group of hashtags once, then apply it to any post with posts:create --hashtag-set "<name>". Tags merge into the captions at create time (editing a set later never changes existing posts), duplicates already in a caption are skipped, and Instagram's 5-hashtag cap fails fast. Add --hashtag-placement first_comment to post the tags as the automatic first comment where supported, and --hashtag-platforms instagram,tiktok to target a subset of channels.

CommandDescription
hashtag-sets:listList saved sets with id, name, tag count, and a preview
hashtag-sets:createSave a set. Flags: --name (required, unique per workspace), --tags (required, e.g. "#fitness #gym"; the # is optional, max 100 tags)
hashtag-sets:update <id>Rename or replace tags. Flags: --name, --tags (replaces the full list)
hashtag-sets:delete <id>Delete a set. Posts that already used it keep their hashtags
TerminalTerminal
omnisocials hashtag-sets:create --name "Fitness Brand" --tags "#fitness #gym #workout" omnisocials posts:create --text "New PB today" \ --channels instagram,tiktok \ --hashtag-set "Fitness Brand" --hashtag-placement first_comment

Automations (comment to DM)

An automation DMs a person once when they comment a keyword on an Instagram post (or send it in a DM or a story reply), and can post a public reply under the comment. It also runs on a Facebook Page with --platform facebook: a keyword in a comment under a Page post, or in a Messenger message to the Page, gets the DM in Messenger. Facebook has no story replies. With --platform x it answers a keyword in a DM to the X account (the trigger is dm, no post and no public reply); it runs only while X DMs are on for the workspace (409 x_dms_off otherwise, --paused always saves), and every X answer ends with "Reply STOP to stop automatic messages." The platform is set at create and cannot change. The API key needs the opt-in automations:read and automations:write scopes (Settings, API, "Automations" on the key).

CommandDescription
automations:listList automations with status, trigger, keywords, post and counts. Flags: --status <active|paused|completed>, --platform <instagram|facebook|x>, --post-id
automations:get <id>One automation in full
automations:createFlags: --dm "<text>" (required), --keywords "guide,link", --match <word|contains|any>, --reply "Sent you a DM!" (public reply, comma list for variations), --platform <instagram|facebook|x> (default instagram; x answers DMs only), one of --post-id <id>, --instagram-media-id <id> or --facebook-post-id <id> (a Page post published outside OmniSocials, {page-id}_{post-id} or the post id alone; implies facebook), --scope <post|next_post|any>, --triggers comment,dm,story_reply (Facebook: comment,dm; X: dm, the default there), --max-sends <n>, --stop-at <ISO8601>, --name, --paused
automations:update <id>Same flags, all optional, plus --pause / --resume (an X automation resumes only while X DMs are on). The platform cannot change
automations:delete <id>Delete it and its activity. DMs already sent stay sent
automations:events <id>The activity: who commented or wrote, what was sent, answers waiting in the queue (queued), people who replied STOP on X (opted_out), skips with their reason. Flags: --outcome <sent|skipped|failed|pending|queued|opted_out>, --limit, --offset

A new post can carry its automation: posts:create --dm-keywords "guide" --dm-message "Here is the guide" --dm-reply "Sent you a DM!" (Instagram or Facebook must be a channel; --dm-platforms instagram,facebook makes one automation per channel); posts:update <id> --no-dm removes it.

TerminalTerminal
omnisocials automations:create --post-id 83778183 \ --keywords "guide,link" --dm "Here is the guide: https://example.com/guide" \ --reply "Sent you a DM!,Check your inbox" --max-sends 500 omnisocials automations:events 100000004 --outcome sent

On a Facebook Page, for a post published on the Page outside OmniSocials:

TerminalTerminal
omnisocials automations:create --platform facebook \ --facebook-post-id 104857600_123456789 \ --keywords "guide" --dm "Here is the guide: https://example.com/guide"

On X, a keyword in a DM to the X account (saved paused until X DMs are on for the workspace):

TerminalTerminal
omnisocials automations:create --platform x \ --keywords "guide" --dm "Here is the guide: https://example.com/guide" --paused omnisocials automations:update <id> --resume

Webhooks

CommandDescription
webhooks:listList all configured webhooks
webhooks:createCreate a webhook. Flags: --url (required), --events (required; comma-separated: post.scheduled, post.published, post.failed, post.approved, post.rejected). The signing secret is shown once
webhooks:get <id>Webhook details
webhooks:update <id>Update URL, events, or active state. Flags: --url, --events, --active <true|false>
webhooks:delete <id>Delete a webhook
webhooks:rotate-secret <id>Rotate the signing secret; the new secret is shown once
TerminalTerminal
omnisocials webhooks:create \ --url https://example.com/hooks/omnisocials \ --events post.published,post.failed

post.approved and post.rejected fire when the review of a post in an approval workflow ends. To be told about both:

TerminalTerminal
omnisocials webhooks:create \ --url https://example.com/hooks/omnisocials \ --events post.approved,post.rejected

Their payload names the decision, the approver and the reason; read the full review with posts:approval <id>.

See the Webhooks guide for event payloads and signature verification.

Last modified on October 25, 2026
Platform commandsMCP
On this page
  • Setup and configuration
  • Media
  • Folders
  • Hashtag sets
  • Automations (comment to DM)
  • Webhooks