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
| Platform | Post | Schedule | Draft | Story | First Comment | Media Upload |
|---|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| TikTok | ✅ | ✅ | ✅ | — | ✅ | ✅ |
| ✅ | ✅ | ✅ | — | ✅ | ✅ | |
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
| 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
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--content <text> | string | Yes | — | Post text content. Use empty string '' for media-only posts. |
--accounts <ids> | string | One of --accounts or --platforms | — | Simple mode: comma-separated account IDs |
--platforms <json> | JSON | One of --accounts or --platforms | — | Advanced mode: JSON array with per-platform settings |
--mode <mode> | string | No | now | Publish mode: now, schedule, or draft |
--scheduled-for <datetime> | string | When mode is schedule | — | ISO 8601 datetime (e.g. 2026-03-15T10:00:00Z) |
--timezone <tz> | string | No | — | IANA timezone (e.g. America/New_York) |
--media-urls <urls> | string | No | — | Comma-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 accountsfirst to discover availableplatformSpecificDatafields 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
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--content <text> | string | No | — | New post content |
--accounts <ids> | string | No | — | Simple mode: comma-separated account IDs (replaces existing) |
--platforms <json> | JSON | No | — | Advanced mode: JSON array (replaces existing) |
--mode <mode> | string | No | — | now to publish, schedule to schedule, draft to keep editing |
--scheduled-for <datetime> | string | When mode is schedule | — | ISO 8601 datetime |
--timezone <tz> | string | No | — | IANA timezone |
--media-urls <urls> | string | No | — | New 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
| Flag | Type | Default | Description |
|---|---|---|---|
--status <status> | string | — | Filter by status: draft, scheduled, published, failed, partial |
--mode <mode> | string | — | Filter by publish mode: now, schedule, draft |
--from <date> | string | — | Filter posts from this date (ISO 8601) |
--to <date> | string | — | Filter posts until this date (ISO 8601) |
--limit <n> | number | 20 | Number of posts to return (1–100) |
--offset <n> | number | 0 | Offset 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
}
}