Twitter Post
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...
pt
@sit-in
What This Skill Does
Posts tweets to Twitter/X via the official API v2 using OAuth 1.0a. Supports single tweets, threads, replies, and quote tweets with automatic character weight validation for CJK and URLs.
Replaces manual tweet scheduling or third-party posting tools by providing a direct, scriptable interface to the Twitter API v2.
When to Use It
- Post a single tweet from a script or automation
- Reply to an existing tweet with a specific tweet ID
- Quote tweet a given tweet ID with your commentary
- Send a thread of multiple sequential tweets
- Validate tweet character limits before posting
Install
$ openclaw skills install @sit-in/twitter-postTwitter 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:
TWITTER_CONSUMER_KEY=<API Key>
TWITTER_CONSUMER_SECRET=<API Key Secret>
TWITTER_ACCESS_TOKEN=<Access Token>
TWITTER_ACCESS_TOKEN_SECRET=<Access Token Secret>
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
- Call
Usage
All commands via exec. Script path: scripts/tweet.js (relative to this skill directory).
Single tweet
node scripts/tweet.js "Your tweet content here"
Reply to a tweet
node scripts/tweet.js --reply-to 1234567890 "Reply text"
Quote tweet
node scripts/tweet.js --quote 1234567890 "Your commentary"
Thread (multiple tweets)
node scripts/tweet.js --thread "First tweet" "Second tweet" "Third tweet"
Output
JSON to stdout:
{"ok":true,"id":"123456789","url":"https://x.com/i/status/123456789","remaining":"99","limit":"100"}
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
Top skills in this category
Skill Vetter
@spclaudehomeSecurity-first skill vetting for AI agents. Use before installing any skill from ClawdHub, GitHub, or other sources. Checks for red flags, permission scope, and suspicious patterns.
Multi Search Engine
@gpyangyoujunMulti search engine integration with 16 engines (7 CN + 9 Global). Supports advanced search operators, time filters, site search, privacy engines, and Wolfra...
API Gateway
@byungkyuCall third-party APIs through the Maton gateway, which injects the credential for an app the user has already connected. Use this skill when the user names a connected app and a concrete action in it - read a mailbox, query a CRM, file an issue, update a spreadsheet, run a query through a connected
MoltGuard - Security & Antivirus & Guardrails
@thomaslwangMoltGuard — OpenClaw security guard by OpenGuardrails. Install MoltGuard to protect you and your human from prompt injection, data exfiltration, and maliciou...
1password
@steipeteSet up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.