Install
openclaw skills install clawlink-twitterDraft, publish, and manage posts on X (Twitter), inspect timelines, manage profiles, and automate social media workflows via the X API. Use this skill when users want to post tweets, review timelines, search posts, or manage X/Twitter workflows.
openclaw skills install clawlink-twitterManage X (Twitter) — draft and publish posts, inspect timelines, search content, manage profiles, and automate social media workflows via the X API.
This skill uses ClawLink for hosted connection flows and credentials so you do not need to configure X API access yourself.
| Step 1: Install | Step 2: Pair Account | Step 3: Connect X (Twitter) |
|---|---|---|
![]() | ![]() | App-specific connection GIF coming soon |
| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect X |
┌─────────────────┐ ┌──────────────┐ ┌──────────────────┐
│ OpenClaw │────▶│ ClawLink │────▶│ X API │
│ (User Chat) │ │ (OAuth) │ │ │
└─────────────────┘ └──────────────┘ └──────────────────┘
│ │ │
│ 1. Install Plugin │ │
│ 2. Pair Device │ │
│ 3. Connect X │ │
│ │ 4. Secure Token │
│ │ 5. Proxy Requests │
│ │ │
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐
│ SKILL │ │ Dashboard│ │ X │
│ File │ │ Auth │ │ Account │
└──────────┘ └──────────┘ └──────────┘
Install the verified ClawLink plugin from ClawHub. After the user confirms, complete the full setup so ClawLink tools are visible in the next OpenClaw chat.
openclaw plugins install clawhub:clawlink-plugin
openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
Then tell the user: "OpenClaw has been restarted. Send /new as a standalone message to start a fresh chat, then ask for X (Twitter) again."
# Get user profile
clawlink_call_tool --tool "twitter_get_user" --params '{"username": "username"}'
# Post a tweet
clawlink_call_tool --tool "twitter_create_tweet" --params '{"text": "Hello from OpenClaw!"}'
# search tweets
clawlink_call_tool --tool "twitter_search_tweets" --params '{"query": "openclaw"}'
All X tool calls are authenticated automatically by ClawLink using the user's connected X account OAuth token.
No API token is required in chat. ClawLink stores the OAuth token securely and injects it into every X API request on the user's behalf.
clawlink_begin_pairing if it is not configured yet.clawlink_list_integrations to verify the connection is active.clawlink_list_integrations
Response: Returns all connected integrations. Look for twitter in the list.
clawlink_list_tools --integration twitter
Response: Returns the live tool catalog for X.
If X tools are missing or the connection shows an error:
clawlink_list_integrations to verifyclawlink_list_tools --integration twitter| Tool | Description | Mode |
|---|---|---|
twitter_list_tweets | List tweets from a user's timeline | Read |
twitter_get_tweet | Get a specific tweet's details | Read |
twitter_create_tweet | Post a new tweet | Write |
twitter_delete_tweet | Delete a tweet | Write |
twitter_update_tweet | Update a tweet's text | Write |
twitter_retweet | Retweet an existing tweet | Write |
twitter_unretweet | Remove a retweet | Write |
twitter_like_tweet | Like a tweet | Write |
twitter_unlike_tweet | Remove a like from a tweet | Write |
| Tool | Description | Mode |
|---|---|---|
twitter_get_home_timeline | Get tweets from the home timeline | Read |
twitter_get_user_timeline | Get tweets from a specific user's timeline | Read |
twitter_get_mentions_timeline | Get tweets mentioning the authenticated user | Read |
| Tool | Description | Mode |
|---|---|---|
twitter_search_tweets | Search for tweets matching a query | Read |
twitter_search_users | Search for users matching a query | Read |
| Tool | Description | Mode |
|---|---|---|
twitter_get_user | Get a user's profile information | Read |
twitter_list_followers | List followers of a user | Read |
twitter_list_following | List accounts a user follows | Read |
twitter_follow_user | Follow a user | Write |
twitter_unfollow_user | Unfollow a user | Write |
twitter_block_user | Block a user | Write |
twitter_unblock_user | Unblock a user | Write |
twitter_mute_user | Mute a user | Write |
twitter_unmute_user | Unmute a user | Write |
| Tool | Description | Mode |
|---|---|---|
twitter_list_bookmarks | List the authenticated user's bookmarks | Read |
twitter_add_bookmark | Add a tweet to bookmarks | Write |
twitter_remove_bookmark | Remove a tweet from bookmarks | Write |
| Tool | Description | Mode |
|---|---|---|
twitter_list_list_memberships | List lists a user is a member of | Read |
twitter_list_list_subscribers | List subscribers to a list | Read |
twitter_list_list_tweets | Get tweets from a specific list | Read |
| Tool | Description | Mode |
|---|---|---|
twitter_list_direct_messages | List direct messages | Read |
twitter_send_direct_message | Send a direct message | Write |
| Tool | Description | Mode |
|---|---|---|
twitter_upload_media | Upload an image or video to attach to a tweet | Write |
twitter_create_tweet_with_media | Post a tweet with attached media | Write |
clawlink_call_tool --tool "twitter_create_tweet" \
--params '{
"text": "Excited to announce our new integration! Check it out at https://example.com"
}'
clawlink_call_tool --tool "twitter_get_user" \
--params '{
"username": "elonmusk"
}'
clawlink_call_tool --tool "twitter_search_tweets" \
--params '{
"query": "openclaw ai assistant",
"max_results": 10
}'
clawlink_call_tool --tool "twitter_retweet" \
--params '{
"tweet_id": "TWEET_ID"
}'
clawlink_call_tool --tool "twitter_follow_user" \
--params '{
"username": "example_user"
}'
clawlink_call_tool --tool "twitter_create_tweet_with_media" \
--params '{
"text": "Check out this screenshot!",
"media_ids": ["MEDIA_ID"]
}'
clawlink_list_integrations to confirm X is connected.clawlink_list_tools --integration twitter to see the live catalog.clawlink_search_tools with a short query and integration twitter.┌─────────────────────────────────────────────────────────────┐
│ READ OPERATIONS (Safe) │
│ list → get → search → describe │
│ │
│ Example: Get user → List tweets → Show profile │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ WRITE OPERATIONS (Require Confirmation) │
│ describe → preview → confirm → call │
│ │
│ Example: Preview tweet → User approves → Post tweet │
└─────────────────────────────────────────────────────────────┘
clawlink_describe_tool first.whenToUse, askBefore, safeDefaults, examples, and followups to shape the call.clawlink_preview_tool first.clawlink_call_tool. Pass confirmation only after the preview matches the user's intent.| Status / Error | Meaning |
|---|---|
| Tool not found | The tool name does not exist in the current catalog. Verify with clawlink_list_tools --integration twitter. |
| Missing connection | X is not connected. Direct the user to https://claw-link.dev/dashboard?add=twitter. |
Tweet not found | The tweet ID does not exist or has been deleted. |
User not found | The username does not match any account. |
Unauthorized | The OAuth token lacks permission for this operation. |
Duplicate | The tweet text is identical to a recent tweet (spam protection). |
Rate limit exceeded | Too many requests. Wait and retry with backoff. |
Media upload failed | The file format is unsupported or exceeds size limits. |
| Write rejected | User did not confirm a write action. Always confirm before executing writes. |
openclaw plugins list
/new as a standalone message to reload the catalog.openclaw config set tools.alsoAllow '["clawlink-plugin"]' --strict-json
openclaw gateway restart
/new again and retry.Powered by ClawLink — an integration hub for OpenClaw
