social-post
NewPost to Twitter/X, Reddit, Facebook, and Instagram from Claude Code
Overview
Claude Code plugin marketplace for social media, email, and e-commerce.
No MCP servers. Just scripts + skills that teach Claude how to use them.
Plugins
| Plugin | Description |
|---|---|
| social-post | Post to Twitter/X, Reddit, Facebook, and Instagram |
| ebay-listing | List items for sale on eBay |
| himalaya-email | Read, send, and manage email using the Himalaya CLI |
Install
In Claude Code:
/plugin marketplace add isaacrowntree/claude-social-skills
/plugin install social-post@social-skills
/plugin install ebay-listing@social-skills
/plugin install himalaya-email@social-skillssocial-post
Dependencies
pip install requests requests-oauthlibCredentials
Export environment variables for the platforms you want to use:
# Twitter/X
export TWITTER_API_KEY=...
export TWITTER_API_SECRET=...
export TWITTER_ACCESS_TOKEN=...
export TWITTER_ACCESS_TOKEN_SECRET=...
# Reddit
export REDDIT_CLIENT_ID=...
export REDDIT_CLIENT_SECRET=...
export REDDIT_USERNAME=...
export REDDIT_PASSWORD=...
# Facebook
export FB_PAGE_ID=...
export FB_ACCESS_TOKEN=...
# Instagram
export IG_USER_ID=...
export IG_ACCESS_TOKEN=...| Platform | Where to get credentials | Account type |
|---|---|---|
| Twitter/X | Developer Portal | Any (free tier: ~50 posts/month) |
| App Preferences — create "script" type | Any (2FA must be disabled) | |
| Graph API Explorer | Page (not personal) | |
| Same as Facebook, linked IG account | Business/Creator only |
Usage
> Post this to Reddit r/programming: "Check out this tool..."
> Share on Twitter and Reddit: "Big announcement..."Direct script usage
# Twitter
python3 scripts/tweet.py "Hello world"
# Reddit
python3 scripts/reddit_post.py post programming "My title" --text "Post body"
python3 scripts/reddit_post.py comment t3_abc123 "Nice post!"
# Facebook
python3 scripts/fb_post.py "Page update" --link "https://example.com"
# Instagram (image must be a public URL)
python3 scripts/ig_post.py image "https://example.com/photo.jpg" --caption "Caption"
python3 scripts/ig_post.py reel "https://example.com/video.mp4" --caption "Reel caption"Platform limitations
- •Twitter: Free tier allows ~50 posts/month. OAuth 1.0a required for posting.
- •Reddit: API key self-service was restricted Nov 2025. Existing keys still work. 2FA must be disabled.
- •Facebook: Page posting only (no personal profiles via API). 200 calls/hour.
- •Instagram: Business accounts only. Must be linked to a Facebook Page. Images must be publicly hosted JPEG URLs. 25 posts/day max.
ebay-listing
List items for sale on eBay. Supports fixed-price and auction listings with local image upload, product photo cleanup, and multiple marketplaces.
Dependencies
pip install requests PillowSetup
- Create an app at developer.ebay.com (free, no API fees)
- Go to the User Tokens tab > Auth'n'Auth > Sign in to Production
- Sign in with your eBay account to generate a token
- Export it:
``bash export EBAY_AUTH_TOKEN=<your-token> ``
That's it. The token lasts ~18 months and the script uses eBay's Trading API (XML) with it.
Why Auth'n'Auth? The OAuth 2.0 alternative requires a browser-based redirect flow that's finicky on localhost. Auth'n'Auth is simpler for personal use — one token, no callback server. The script supports both methods and auto-detects based on which env vars are set.
Usage
> List my GoPro on eBay for $299, condition is like new
> Create a draft eBay listing for this camera with these photos
> Clean up my product photos in this folderDirect script usage
# Create a listing
python3 scripts/ebay_list.py list \
--title "GoPro Hero 12 Black" \
--description "Brand new, sealed in box." \
--price 299.99 \
--condition NEW \
--image "https://example.com/photo.jpg" \
--marketplace US \
--currency USD
# Photo cleanup (auto white balance, contrast, sharpening)
python3 scripts/photo_cleanup.py <directory|file>Listing options
| Option | Required | Description |
|---|---|---|
--title | Yes | Item title (max 80 chars) |
--description | Yes | Item description (max 4000 chars) |
--price | Yes | Listing price |
--condition | Yes | NEW, LIKE_NEW, USED_EXCELLENT, USED_VERY_GOOD, USED_GOOD, FOR_PARTS_OR_NOT_WORKING, etc. |
--image | Yes | HTTPS image URL (repeatable for multiple images) |
--category | No | eBay category ID |
--marketplace | No | US (default), UK, AU, CA, DE, FR, IT, ES |
--currency | No | USD (default), GBP, AUD, CAD, EUR |
--format | No | FIXED_PRICE (default) or AUCTION |
--quantity | No | Number available (default: 1) |
--sku | No | Custom SKU (auto-generated if omitted) |
--brand | No | Brand name |
--draft | No | Create offer without publishing (for review) |
Platform notes
- •Free API access, no fees. Auth'n'Auth token lasts ~18 months.
- •Supports fixed-price and auction listings.
- •Includes
photo_cleanup.pyfor auto white balance, contrast, brightness, and sharpening of product photos. - •Also supports OAuth 2.0 (Inventory API) if you set
EBAY_CLIENT_ID,EBAY_CLIENT_SECRET,EBAY_RUNAMEinstead — auto-detects based on which env vars are present.
himalaya-email
Read, send, and manage email from Claude Code using the himalaya CLI. No scripts needed — this plugin teaches Claude how to use the himalaya commands directly.
Prerequisites
- Install himalaya (v1.2.0+):
``bash brew install himalaya ``
- Configure your email account in
~/.config/himalaya/config.toml(or~/Library/Application Support/himalaya/config.tomlon macOS). See the himalaya docs for config examples.
Features
- •List and read emails from any folder (INBOX, Sent, Drafts, etc.)
- •Send emails and reply to threads with proper threading headers
- •Trace email origins — inspect SPF, DKIM, DMARC, and Received headers
- •Preview mode (
-pflag) to read without marking as seen - •Gmail folder alias support (Sent Mail, Drafts, Bin, Spam)
- •JSON output for programmatic use
Usage
> Check my inbox
> Read the latest email from GitHub
> Reply to that email saying thanks
> Where did this email actually come from? Check the headers
> Show me emails in my Sent folderPlatform notes
- •Works with any IMAP/SMTP email provider (Gmail, Outlook, Fastmail, etc.)
- •Gmail users: set
message.send.save-copy = falsein config to avoid duplicate sent messages. - •No API keys needed — uses standard IMAP/SMTP with app passwords.
Repo structure
claude-social-skills/
├── .claude-plugin/
│ └── marketplace.json # Marketplace catalog
└── plugins/
├── social-post/
│ ├── .claude-plugin/
│ │ └── plugin.json # Plugin manifest
│ ├── skills/
│ │ └── social-post/
│ │ └── SKILL.md # Skill instructions
│ ├── scripts/
│ │ ├── tweet.py # Twitter/X (OAuth 1.0a)
│ │ ├── reddit_post.py # Reddit (OAuth2)
│ │ ├── fb_post.py # Facebook Pages (Graph API v24.0)
│ │ └── ig_post.py # Instagram Business (Graph API v24.0)
│ ├── requirements.txt
│ └── .env.example
├── ebay-listing/
│ ├── .claude-plugin/
│ │ └── plugin.json # Plugin manifest
│ ├── skills/
│ │ └── ebay-listing/
│ │ └── SKILL.md # Skill instructions
│ ├── scripts/
│ │ ├── ebay_list.py # eBay (Trading API + Inventory API)
│ │ └── photo_cleanup.py # Product photo auto-cleanup
│ ├── tests/
│ │ └── test_ebay_list.py
│ ├── requirements.txt
│ └── .env.example
└── himalaya-email/
├── .claude-plugin/
│ └── plugin.json # Plugin manifest
└── skills/
└── himalaya-email/
└── SKILL.md # Skill instructions (uses himalaya CLI)License
MIT
Install & Usage
mkdir -p .claude/skillsmkdir -p .claude/skills && curl -o .claude/skills/social-post.md https://raw.githubusercontent.com/isaacrowntree/claude-social-skills/main/SKILL.md/social-postFrequently Asked Questions
What is social-post?
Post to Twitter/X, Reddit, Facebook, and Instagram from Claude Code
How to install social-post?
To install social-post, create the .claude/skills directory in your project, then run the curl command to download the skill file. Once installed, invoke it in Claude Code with /social-post.
What is social-post best for?
social-post is a community categorized under General. It is designed for: social-media, twitter, reddit, facebook, instagram. Created by Isaac Rowntree.