Publish across X, LinkedIn, Instagram, and Threads.
The Social Media superskill turns your AI agent into a full social media manager. It can draft posts with text and media, target multiple platforms simultaneously, and handle platform-specific formatting like character limits and image requirements. Schedule content for optimal timing or publish immediately — with optional human approval before anything goes live. Your agent tracks delivery status per platform and can review post history across all connected accounts.
Capabilities available out of the box.
Platforms and services your agent connects to.
CLI commands available with this superskill.
Draft a new social media post. Use --queue to auto-schedule.
clawpow social posts createList social media posts, filterable by status.
clawpow social posts listGet details of a post including per-platform delivery status.
clawpow social posts getEdit a draft or scheduled post.
clawpow social posts updateDelete a post.
clawpow social posts deletePublish a post to connected platforms immediately.
clawpow social posts publishList connected social media accounts.
clawpow accounts list# Social Media
Publish to X, LinkedIn, Threads, and Instagram from one place -- create, schedule, and track posts without switching apps.
## When to Use
- User wants to announce a product launch, share news, or engage their audience
- User needs to schedule posts across multiple platforms at once
- User wants to batch-create a week's worth of social content
- User wants to check the status of published or scheduled posts
## How It Connects
- **Design** -- Generate images first with the design skill, then attach them to posts using `--media` with the asset ID.
- **Branding** -- Use `--apply-voice` on `clawpow social posts create` to automatically apply brand voice to post content. Or manually check voice with `clawpow branding voice get`.
- **Analytics** -- After publishing, check post performance with `clawpow analytics social posts`.
- **Video** -- Attach video clips to posts using `--media` with the asset ID.
- **Blog** -- Repurpose blog article content into social posts to drive traffic.
## Quick Start
Before creating posts, check which accounts are connected:
```bash
clawpow accounts list --json
```
## Commands
### Create a Post
```bash
clawpow social posts create --content "Your post text" --platforms x,linkedin --json
```
**Options:**
- `--content <text>` (required) -- Post text
- `--platforms <list>` (required) -- Comma-separated: x, linkedin, threads, instagram
- `--schedule <ISO>` -- Schedule for specific time (e.g., "2025-02-17T10:00:00-05:00")
- `--media <files...>` -- Attach image/video files (jpg, png, gif, webp, mp4)
- `--batch` -- Read JSON array from stdin (see Batch section)
- `--apply-voice` -- Apply brand voice to content before creating (cannot be used with --batch)
**Note:** Instagram requires at least one media attachment. Text-only posts are not supported on Instagram.
**Returns:** `{"postId": "...", "status": "draft|scheduled", "scheduledAt": number|null}`
### Create Multiple Posts (Batch)
```bash
echo '[
{"content": "Post 1", "platforms": ["x"]},
{"content": "Post 2", "platforms": ["x", "linkedin"], "scheduledAt": 1740000000000}
]' | clawpow social posts create --batch --json
```
**Returns:** `{"results": [...], "errors": [...]}`
### List Posts
```bash
clawpow social posts list --json
clawpow social posts list --status draft --json
```
**Options:**
- `--status <status>` -- Filter: draft, scheduled, publishing, published, failed
**Returns:** Array of `{_id, content, platforms, status, scheduledAt, publishedAt, _creationTime}`
### Get Post Details
```bash
clawpow social posts get <postId> --json
```
**Returns:** Post object with `targets` array showing per-platform delivery status.
### Update a Post
```bash
clawpow social posts update <postId> --content "New text" --json
clawpow social posts update <postId> --schedule "2025-02-17T10:00:00-05:00" --json
clawpow social posts update <postId> --schedule none --json
```
**Options:**
- `--content <text>` -- New text
- `--platforms <list>` -- New platforms
- `--schedule <ISO|none>` -- Set schedule or "none" to unschedule (revert to draft)
- `--media <files...>` -- New media (replaces existing)
Only works on draft or scheduled posts. Returns `{"postId": "...", "status": "..."}`.
### Delete Posts
```bash
clawpow social posts delete <postId> --json
clawpow social posts delete id1,id2,id3 --json
```
**Returns:** `{"deleted": [...], "errors": [...]}`
### Publish Posts
```bash
clawpow social posts publish <postId> --json
clawpow social posts publish id1,id2 --json
```
Publishes to all connected platforms. Publishing happens asynchronously. Returns `{"postId": "...", "status": "publishing"}`.
Batch returns `{"results": [...], "errors": [...]}`.
Check status with `clawpow social posts get <postId> --json`.
### List Connected Accounts
```bash
clawpow accounts list --json
```
**Returns:** Array of `{_id, platform, platformAccountId, platformAccountName, status, connectedAt}`
## Important Notes
- Always use `--json` for machine-parseable output
- Post IDs are Convex document IDs (e.g., "k57abc123def")
- Valid platforms: `x`, `linkedin`, `threads`, `instagram`
- Only **draft** and **scheduled** posts can be updated or published
- Use `--schedule` to schedule posts for future publishing. The cron job publishes them when due.
- Publishing a post calls external platform APIs -- this is a metered operation
- Content limits: X (280 chars), Threads (500 chars, max 5 links), LinkedIn (3000 chars), Instagram (2200 chars, media required)
Works great together with these.