lxyeternal/malskillbench/twitter-post
Claude Code and agent skill by lxyeternal/malskillbench
- community
Checking that the SKILL.md file is still in the repository.
Post tweets to Twitter/X via the official API v2 (OAuth 1.0a). Use when the user asks to tweet, post to Twitter/X, send a thread, reply to a tweet, or quote tweet. Supports single tweets, threads, replies, and quote tweets with automatic character weight validation.
Install
npx vskill@latest install lxyeternal/malskillbench/twitter-postSKILL.md
Twitter Post
Post tweets via the official Twitter/X API v2 using OAuth 1.0a authentication.
Prerequisites
Four environment variables must be set. Obtain them from developer.x.com:
Optional:
HTTPS_PROXY— HTTP proxy URL (e.g.http://127.0.0.1:7897) for regions that need itTWITTER_DRY_RUN=1— validate and print without posting
Setup
Store credentials as env vars. Recommended: add to the OpenClaw instance config or export in shell profile. Never hardcode keys in SKILL.md or scripts.
If the user hasn't set up OAuth yet, guide them:
- Go to developer.x.com → Dashboard → Create App
- Set App permissions to Read and Write
- Go to Keys and tokens tab
- Copy API Key, API Key Secret
- Generate Access Token and Access Token Secret (ensure Read+Write scope)
- If the portal only shows Read, use PIN-based OAuth flow:
- Call
POST /oauth/request_tokenwithoauth_callback=oob - User opens
https://api.twitter.com/oauth/authorize?oauth_token=<token> - User provides the PIN code
- Call
POST /oauth/access_tokenwith the PIN asoauth_verifier
Usage
All commands via exec. Script path: scripts/tweet.js (relative to this skill directory).
Single tweet
Reply to a tweet
Quote tweet
Thread (multiple tweets)
Output
JSON to stdout:
On error: {"ok":false,"error":"..."}
Character Limits
- Max 280 weighted characters per tweet
- CJK characters (Chinese/Japanese/Korean) count as 2 each
- URLs count as 23 each regardless of length
- Script auto-validates before posting; rejects if over limit
Rate Limits
- 100 tweets / 15 min per user (OAuth 1.0a)
- 3,000 tweets / month on Basic plan ($200/mo)
- Check
remainingfield in output to monitor quota
Tips
- For content from Notion/database: fetch the text first, then pipe to
tweet.js - For cron-based auto-posting: use
execwith env vars set, parse JSON output to confirm success - Thread mode posts sequentially; each tweet auto-replies to the previous one
- Combine
--threadwith--reply-toto attach a thread under an existing tweet
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingDataset/Skills/benign/twitter-post/SKILL.md
Popularity
- Repository stars
- 60
- Repository forks
- 13
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/lxyeternal/malskillbench/twitter-post)