home / skills / agentiveau / myagentive / social-media-poster
/.claude/skills/social-media-poster
This skill posts content to LinkedIn and Twitter/X simultaneously, handling text, images, videos, and links to boost cross-platform reach.
npx playbooks add skill agentiveau/myagentive --skill social-media-posterReview the files below or copy the command above to add this skill to your agents.
---
name: social-media-poster
description: Post content to LinkedIn and Twitter/X simultaneously. This skill should be used when the user wants to create social media posts, share content on LinkedIn or Twitter/X, or post to multiple platforms at once. Supports text posts, multiple image attachments, video uploads, and link sharing.
---
# Social Media Poster
Post content to LinkedIn and Twitter/X from the command line. Supports posting to individual platforms or all platforms simultaneously.
## When to Use This Skill
Use this skill when the user requests:
- Posting content to LinkedIn
- Posting content to Twitter/X
- Sharing updates on social media
- Creating posts with images or videos
- Cross-posting to multiple platforms
## Supported Platforms
| Platform | Script | Features |
|----------|--------|----------|
| LinkedIn | `linkedin_poster.py` | Text, images (up to 9), videos, links with previews |
| Twitter/X | `twitter_poster.py` | Text, images (up to 4), videos, threads |
| All | `post_all.py` | Post to all platforms in parallel |
## Quick Usage
### Post to All Platforms
```bash
cd ~/.claude/skills/social-media-poster
source venv/bin/activate
python scripts/post_all.py -t "Your post content" -i "./image.jpg" -u "https://example.com"
```
### Post with Video
```bash
python scripts/post_all.py -t "Check out this video!" -v "./video.mp4"
```
### Post with Multiple Images
```bash
python scripts/post_all.py -t "Photo gallery!" -i "./img1.jpg" -i "./img2.jpg" -i "./img3.jpg"
```
### Post to LinkedIn Only
```bash
python scripts/linkedin_poster.py -t "Post text" -i "./image.jpg" -u "https://link.com" --title "Link Title"
```
### Post to Twitter/X Only
```bash
python scripts/twitter_poster.py -t "Tweet text" -i "./image.jpg"
```
Note: Long-form posts are supported by default (for premium accounts). Use `--truncate` flag for non-premium accounts (280 char limit).
## Creating Posts Workflow
When creating posts for the user:
1. **Craft platform-appropriate content**
- LinkedIn: Professional tone, longer form, more hashtags acceptable
- Twitter: Same content works for premium accounts (long-form supported)
2. **Handle media attachments**
- Images: Use `-i` flag (can be used multiple times for multiple images)
- Videos: Use `-v` flag (supports MP4, MOV, AVI, WebM)
- LinkedIn supports up to 9 images per post
- Twitter supports up to 4 images per tweet
3. **Include relevant elements**
- Hashtags for discoverability
- Links to referenced content
- Images/videos for engagement
4. **Post to platforms**
- Use `post_all.py` for simultaneous posting
- Use individual scripts when content differs significantly between platforms
## Command Reference
### post_all.py
```
--text, -t Post content (required)
--image, -i Path to image file (can use multiple times)
--video, -v Path to video file
--url, -u URL to include
--title Title for link/image/video
--platforms, -p Specific platforms: linkedin twitter
--sequential Post one at a time instead of parallel
```
### linkedin_poster.py
```
--text, -t Post content (required)
--image, -i Path to image file (can use multiple times)
--video, -v Path to video file
--url, -u URL for link preview
--title Title for link/image/video
--description Description for link/image/video
```
### twitter_poster.py
```
--text, -t Tweet content (required)
--image, -i Path to image (can use multiple times, max 4)
--video, -v Path to video file
--truncate Truncate to 280 chars (for non-premium accounts)
```
## Video Upload Details
### LinkedIn Video Requirements
- **Format**: MP4 only
- **Size**: 75 KB to 500 MB
- **Length**: 3 seconds to 30 minutes
- **Process**: Chunked upload with automatic processing
### Twitter Video Requirements
- **Format**: MP4, MOV, AVI, WebM
- **Size**: Up to 512 MB
- **Length**: Up to 2 minutes 20 seconds (140 seconds)
- **Process**: Chunked upload with async processing
### Video Upload Process
The scripts handle video uploads automatically:
1. Initialize upload with file size
2. Upload in chunks (4MB for LinkedIn, 1MB for Twitter)
3. Finalize and wait for processing
4. Create post with processed video
## First-Time Setup
For initial setup, refer to `references/setup.md` for detailed instructions on:
- Creating LinkedIn Developer App
- Creating Twitter/X Developer Account
- Obtaining API credentials
- Configuring the `.env` file
## Environment Variables
The scripts require these environment variables in a `.env` file:
```
# LinkedIn
LINKEDIN_CLIENT_ID=
LINKEDIN_CLIENT_SECRET=
LINKEDIN_ACCESS_TOKEN=
# Twitter/X
TWITTER_API_KEY=
TWITTER_API_SECRET=
TWITTER_ACCESS_TOKEN=
TWITTER_ACCESS_TOKEN_SECRET=
TWITTER_BEARER_TOKEN=
```
## Platform Limitations
### LinkedIn
- Access token expires in ~60 days (run `get_token.py` to refresh)
- Requires "Share on LinkedIn" product approval
- Video processing may take 1-5 minutes
### Twitter/X
- Free tier: 1,500 tweets/month limit
- Basic tier ($100/mo): 3,000 tweets/month
- Requires OAuth 1.0a with Read+Write permissions
- Video processing is async (longer videos take more time)
## Resources
### scripts/
- `linkedin_poster.py` - Post to LinkedIn (text, images, videos, links)
- `twitter_poster.py` - Post to Twitter/X (text, images, videos)
- `post_all.py` - Post to all platforms
- `get_token.py` - LinkedIn OAuth token helper
- `requirements.txt` - Python dependencies
### references/
- `setup.md` - Detailed setup instructions for both platforms
This skill posts content to LinkedIn and Twitter/X simultaneously or to each platform individually. It supports text, multiple images, video uploads, and link sharing with previews. Use it to create platform-appropriate posts and cross-post without switching interfaces.
The scripts accept text, image (-i), video (-v), and URL (-u) inputs and publish to LinkedIn and/or Twitter/X. post_all.py runs posts in parallel (or sequentially) and calls platform-specific upload flows that handle media chunking, processing, and final post creation. Environment variables store API credentials and the tool handles token refresh and platform limits where required.
Can I post videos to both platforms at once?
Yes. The scripts upload videos with chunked uploads and handle platform-specific formats and processing; ensure your video meets each platform's size and format limits.
How do I include multiple images?
Pass the -i/--image flag multiple times. LinkedIn accepts up to 9 images; Twitter accepts up to 4.