Agentic Social Media Commands

Publish, schedule, and manage social media content across Instagram, TikTok, LinkedIn, Facebook, YouTube, X/Twitter, Threads, and Google Business — all from a single CLI.

Platform support

PlatformPostScheduleDraftStoryFirst CommentMedia Upload
Instagram
TikTok
LinkedIn
Facebook
YouTube
X / Twitter
Threads
Google Business

social accounts

List all connected social media accounts for your organization, including platform-specific field schemas.

smallforce social accounts

This is the best starting point before creating posts — it shows you which accounts are connected and what platform-specific fields are available (YouTube titles, TikTok privacy settings, Instagram first comments, etc.).

Example output

{
  "accounts": [
    {
      "id": "acc_abc123",
      "platform": "instagram",
      "name": "My Business",
      "platformSpecificFields": { ... }
    }
  ]
}

social create

Create and publish a social media post. Supports two posting modes: Simple for quick multi-platform posts, and Advanced for per-platform customization.

smallforce social create --content <text> [options]

Options

FlagTypeRequiredDefaultDescription
--content <text>stringYesPost text content. Use empty string '' for media-only posts.
--accounts <ids>stringOne of --accounts or --platformsSimple mode: comma-separated account IDs
--platforms <json>JSONOne of --accounts or --platformsAdvanced mode: JSON array with per-platform settings
--mode <mode>stringNonowPublish mode: now, schedule, or draft
--scheduled-for <datetime>stringWhen mode is scheduleISO 8601 datetime (e.g. 2026-03-15T10:00:00Z)
--timezone <tz>stringNoIANA timezone (e.g. America/New_York)
--media-urls <urls>stringNoComma-separated media URLs to attach

Simple mode

Post the same content to multiple accounts at once:

smallforce social create \
  --content "New product launch! 🚀 Check it out." \
  --accounts acc_abc123,acc_def456 \
  --mode now

Schedule a post

smallforce social create \
  --content "Coming soon..." \
  --accounts acc_abc123 \
  --mode schedule \
  --scheduled-for "2026-03-20T14:00:00Z" \
  --timezone "America/New_York"

Save as draft

smallforce social create \
  --content "Work in progress" \
  --accounts acc_abc123 \
  --mode draft

Advanced mode

Use --platforms for per-platform customization such as YouTube titles, TikTok privacy, or Instagram first comments:

smallforce social create \
  --content "Check out our new video!" \
  --platforms '[
    {
      "accountId": "acc_yt_123",
      "platformSpecificData": {
        "title": "Product Demo 2026",
        "privacy": "public"
      }
    },
    {
      "accountId": "acc_ig_456",
      "platformSpecificData": {
        "firstComment": "Link in bio! 🔗"
      }
    }
  ]' \
  --mode now

Run smallforce social accounts first to discover available platformSpecificData fields for each account.

Post with media

# Upload media first
smallforce social upload ./product-photo.jpg

# Use the returned URL in your post
smallforce social create \
  --content "Our latest design ✨" \
  --accounts acc_abc123 \
  --media-urls "https://cdn.smallforcehq.com/uploads/abc123.jpg" \
  --mode now

social update

Update a draft post — edit content, change target accounts, attach new media, or publish it. Only posts with draft status can be updated.

smallforce social update <post-id> [options]

Options

FlagTypeRequiredDefaultDescription
--content <text>stringNoNew post content
--accounts <ids>stringNoSimple mode: comma-separated account IDs (replaces existing)
--platforms <json>JSONNoAdvanced mode: JSON array (replaces existing)
--mode <mode>stringNonow to publish, schedule to schedule, draft to keep editing
--scheduled-for <datetime>stringWhen mode is scheduleISO 8601 datetime
--timezone <tz>stringNoIANA timezone
--media-urls <urls>stringNoNew media URLs (replaces existing)

Update content and publish

smallforce social update pst_abc123 \
  --content "Updated copy for launch day! 🎉" \
  --mode now

Reschedule a draft

smallforce social update pst_abc123 \
  --mode schedule \
  --scheduled-for "2026-04-01T09:00:00Z" \
  --timezone "America/Chicago"

social upload

Upload a media file (image or video) for use in posts. Accepts a local file path or a URL.

smallforce social upload <file>

Upload a local file

smallforce social upload ./photos/storefront.jpg

Upload from URL

smallforce social upload "https://example.com/promo-video.mp4"

Example output

{
  "url": "https://cdn.smallforcehq.com/uploads/abc123.jpg",
  "type": "image",
  "size": 245000
}

Use the returned url in the --media-urls flag when creating or updating a post.


social posts

List social posts for your organization with filtering and pagination.

smallforce social posts [options]

Options

FlagTypeDefaultDescription
--status <status>stringFilter by status: draft, scheduled, published, failed, partial
--mode <mode>stringFilter by publish mode: now, schedule, draft
--from <date>stringFilter posts from this date (ISO 8601)
--to <date>stringFilter posts until this date (ISO 8601)
--limit <n>number20Number of posts to return (1–100)
--offset <n>number0Offset for pagination

List all drafts

smallforce social posts --status draft

List posts from a specific date range

smallforce social posts --from "2026-03-01" --to "2026-03-14" --limit 50

Paginate through results

# First page
smallforce social posts --limit 10 --offset 0

# Second page
smallforce social posts --limit 10 --offset 10

social post

Get full details for a specific post, including media attachments and analytics.

smallforce social post <id>

Example

smallforce social post pst_abc123

Example output

{
  "id": "pst_abc123",
  "content": "Hello world! 🚀",
  "status": "published",
  "publishMode": "now",
  "createdAt": "2026-03-14T12:00:00Z",
  "media": [...],
  "analytics": {
    "impressions": 1240,
    "engagements": 87
  }
}