# Send Twitter Post to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "twitter-post",
    "name": "Twitter Post",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/sit-in/twitter-post",
    "canonicalUrl": "https://clawhub.ai/sit-in/twitter-post",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/twitter-post",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=twitter-post",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md",
      "scripts/tweet.js"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "twitter-post",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-10T07:54:11.266Z",
      "expiresAt": "2026-05-17T07:54:11.266Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=twitter-post",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=twitter-post",
        "contentDisposition": "attachment; filename=\"twitter-post-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "twitter-post"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/twitter-post"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/twitter-post",
    "downloadUrl": "https://openagent3.xyz/downloads/twitter-post",
    "agentUrl": "https://openagent3.xyz/skills/twitter-post/agent",
    "manifestUrl": "https://openagent3.xyz/skills/twitter-post/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/twitter-post/agent.md"
  }
}
```
## Documentation

### 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:

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 it
TWITTER_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_token with oauth_callback=oob
User opens https://api.twitter.com/oauth/authorize?oauth_token=<token>
User provides the PIN code
Call POST /oauth/access_token with the PIN as oauth_verifier

### 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 remaining field 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 exec with env vars set, parse JSON output to confirm success
Thread mode posts sequentially; each tweet auto-replies to the previous one
Combine --thread with --reply-to to attach a thread under an existing tweet
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: sit-in
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-05-10T07:54:11.266Z
- Expires at: 2026-05-17T07:54:11.266Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/twitter-post)
- [Send to Agent page](https://openagent3.xyz/skills/twitter-post/agent)
- [JSON manifest](https://openagent3.xyz/skills/twitter-post/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/twitter-post/agent.md)
- [Download page](https://openagent3.xyz/downloads/twitter-post)