| name | x-twitter-automation |
| description | X / Twitter Automation: Operate a connected X / Twitter account end-to-end from agents and workflows: compose, publish, search, engage, and DM. Use when an agent needs x / twitter automation, x twitter automation, publish posts and replies to x / twitter from agent workflows, schedule and orchestrate twitter content calendars, search recent x posts for brand monitoring, competitor tracking, create list, list name through AgentPMT-hosted remote tool calls. |
| version | 1.0.0 |
| homepage | https://www.agentpmt.com/marketplace/x-twitter-automation |
| compatibility | Agent instructions for AgentPMT-hosted remote tool calls. Follow this skill body for supported account, wallet, and setup routes. No local command runtime is declared. |
| metadata | {"author":"agentpmt","openclaw":{"homepage":"https://www.agentpmt.com/marketplace/x-twitter-automation"}} |
X / Twitter Automation
Freshness
Last updated: 2026-06-23.
If the current date is more than 7 days after the last updated date, reinstall this skill from skills.sh or ClawHub before relying on endpoints, schemas, setup steps, or examples.
What This Tool Does
X (Twitter) automation for AI agents and social media teams. Connect your X account once and run your entire publishing, engagement, and social listening workflow from a single MCP-ready API. Post tweets and replies, attach images, GIFs, and video, and search X for brand keywords, mentions, competitors, and trending topics — then draft and send on-brand replies in seconds. Like, repost, follow, and send DMs; build and curate X Lists; and read your mentions, home, and user timelines for reporting. Built for automated tweet scheduling, brand and competitor monitoring, social media customer support, influencer outreach, and end-to-end X / Twitter / X.com content workflows.
Product Instructions
X / Twitter Automation
Operate a connected X (Twitter) account end-to-end from agents and workflows: publish posts and replies, upload media, search recent posts, read timelines and DMs, engage, and manage Lists.
Common workflows
- On-brand reply queue:
search_posts for your brand or topic over the last day and review the best candidates. You can only reply to a post you have already engaged with or that tags your account, so engage first (for example set_like or set_repost) or focus on posts that mention you, then create_reply (or create_reply_with_link) with on-brand drafts.
- Publish with media:
upload_media to get media_ids, then create_post (or create_post_with_link when the text has a URL).
- Brand & competitor monitoring:
search_posts on keywords plus lookup_timeline (mentions) and curated lookup_lists.
- Customer support over DMs:
lookup_dms to read threads, send_dm to respond.
Posting links
Use create_post / create_reply for text without a web link. When the text contains a URL (http://, https://, www., or a bare domain), use create_post_with_link / create_reply_with_link.
Actions
search_posts
Required: query (string). Optional: start_time, end_time (RFC3339 timestamps), max_results (1-100, default 10), pagination_token, verbosity (minimal|standard|expanded, default expanded).
Example: {"action":"search_posts","query":"agentpmt OR \"AI agents\" -is:retweet lang:en","start_time":"2026-05-22T13:00:00Z","end_time":"2026-05-23T13:00:00Z","max_results":25}
For List-specific recent search, use the X search operator in query, for example list:2055003862814040388, plus start_time and end_time.
lookup_posts
Required: exactly one of post_id (string) or post_ids (string[], max 100). Optional: verbosity.
Example: {"action":"lookup_posts","post_ids":["123","456"],"verbosity":"standard"}
create_post
Creates a top-level post. Required: text or media_ids. Optional: media_ids (string[], max 4). For text that contains a web link, use create_post_with_link.
Example: {"action":"create_post","text":"Shipping from AgentPMT","media_ids":["123"]}
create_post_with_link
Creates a top-level post whose text contains a web link. Required: text with a link. Optional: media_ids (string[], max 4).
Example: {"action":"create_post_with_link","text":"Launch notes: https://example.com/agentpmt","media_ids":["123"]}
create_reply
Replies to another post. You can only reply to a post the connected account has already engaged with (liked, reposted, quoted, or previously replied to) or that tags your account (mentions or quotes you); replies to any other post are rejected. Required: reply_to_post_id and text or media_ids. Optional: media_ids (string[], max 4). For replies whose text contains a web link, use create_reply_with_link.
Example: {"action":"create_reply","reply_to_post_id":"123","text":"Thanks for the mention."}
create_reply_with_link
Replies to another post with text that contains a web link. The same reply restriction applies: you can only reply to a post the connected account has already engaged with or that tags your account. Required: reply_to_post_id and text with a link. Optional: media_ids (string[], max 4).
Example: {"action":"create_reply_with_link","reply_to_post_id":"123","text":"Details are here: https://example.com/agentpmt"}
delete_post
Required: post_id.
Example: {"action":"delete_post","post_id":"123"}
set_reply_hidden
Required: reply_post_id, hidden (boolean).
Example: {"action":"set_reply_hidden","reply_post_id":"123","hidden":true}
set_like
Required: post_id, liked (boolean).
Example: {"action":"set_like","post_id":"123","liked":true}
set_repost
Required: post_id, reposted (boolean).
Example: {"action":"set_repost","post_id":"123","reposted":true}
lookup_post_engagers
Required: post_id, engagement_type (likes|reposts|quotes). Optional: max_results, pagination_token, verbosity.
Example: {"action":"lookup_post_engagers","post_id":"123","engagement_type":"likes","max_results":25}
lookup_users
Required: lookup_by (ids|usernames|me). For ids, set exactly one of user_id or user_ids. For usernames, set exactly one of username or usernames. Optional: verbosity.
Example: {"action":"lookup_users","lookup_by":"usernames","usernames":["XDevelopers"]}
set_follow
Required: user_id, following (boolean).
Example: {"action":"set_follow","user_id":"123","following":true}
lookup_follows
Required: user_id, relationship (followers|following). Optional: max_results, pagination_token, verbosity.
Example: {"action":"lookup_follows","user_id":"123","relationship":"followers","max_results":50}
lookup_timeline
Required: timeline_type (user_posts|mentions|home). user_id is required for user_posts and mentions; optional for home. Optional: max_results, pagination_token, verbosity.
Example: {"action":"lookup_timeline","timeline_type":"home","max_results":20}
lookup_dms
Required: scope (all|conversation|participant|event_id). Set conversation_id, participant_user_id, or event_id for the matching scope. Optional: max_results, pagination_token, verbosity.
Example: {"action":"lookup_dms","scope":"participant","participant_user_id":"123","max_results":20}
send_dm
Required: target_type (participant|conversation|new_group) and text or media_id. Set participant_user_id, conversation_id, or participant_user_ids for the matching target.
Example: {"action":"send_dm","target_type":"participant","participant_user_id":"123","text":"Here is the post: https://x.com/i/status/456"}
upload_media
Required: exactly one of file_id or source_url, plus media_type (image|gif|video) and usage_context (post|dm).
Example: {"action":"upload_media","file_id":"file_abc","media_type":"image","usage_context":"post"}
create_list
Creates a new List for the authenticated user. Required: list_name (1-25 characters). Optional: list_description (max 100 characters), list_private (boolean).
Example: {"action":"create_list","list_name":"Launch Watch","list_description":"Accounts to monitor for launch week","list_private":true}
update_list
Updates an existing List. Required: list_id and at least one of list_name, list_description, or list_private. Use list_description:"" to clear the description and list_private:false to make the List public.
Example: {"action":"update_list","list_id":"123","list_name":"Launch Signals","list_private":false}
delete_list
Deletes a List owned by the authenticated user. Required: list_id.
Example: {"action":"delete_list","list_id":"123"}
set_list_membership
Adds or removes a user from a List owned by the authenticated user. Required: list_id, user_id, is_member (boolean).
Example: {"action":"set_list_membership","list_id":"123","user_id":"456","is_member":true}
set_list_follow
Follows or unfollows a List as the authenticated user. Required: list_id, following (boolean).
Example: {"action":"set_list_follow","list_id":"123","following":true}
set_list_pin
Pins or unpins a followed or owned List for the authenticated user. Required: list_id, pinned (boolean).
Example: {"action":"set_list_pin","list_id":"123","pinned":true}
lookup_lists
Looks up one List or Lists by relationship. Required: list_scope (id|owned|memberships|followed|pinned). For id, set list_id. For owned, memberships, or followed, user_id is optional and defaults to the authenticated user. For pinned, omit user_id. Optional: max_results, pagination_token, verbosity.
Example: {"action":"lookup_lists","list_scope":"owned","max_results":25,"verbosity":"standard"}
lookup_list_contents
Lists members, followers, or posts for a List. Required: list_id, list_view (members|followers|posts). Optional: max_results, pagination_token, verbosity.
Example: {"action":"lookup_list_contents","list_id":"123","list_view":"members","max_results":50}
Response
All actions return action. List actions also return data, optional includes, optional meta, and next_token.
Notes
- Search covers recent posts (about the last 7 days). For quote activity on a post, use
lookup_post_engagers with engagement_type:"quotes".
- Replies are limited to posts you are already connected to. You can only post a reply (
create_reply / create_reply_with_link) to a post when the connected account has already engaged with it (liked, reposted, quoted, or previously replied to it) or has been tagged in it (the post mentions or quotes your account). Replies to posts you have not engaged with and that do not tag you are rejected. To reply to a post surfaced by search_posts, engage with it first (for example set_like or set_repost) or choose a post that mentions you. If a reply is still rejected for access or policy reasons, move to another permitted post rather than retrying the same one.
- List read actions need the connected token's
list.read scope; create, update, delete, membership, follow, and pin actions need list.write. If a List call returns a scope-related 403, reconnect the X account to refresh scopes.
When To Use
- Use this skill for
X / Twitter Automation on AgentPMT.
- Use it when an agent needs this specific tool's behavior, schema, inputs, outputs, and invocation shape.
- Search and activation keywords: x / twitter automation, x twitter automation, publish posts and replies to x / twitter from agent workflows, schedule and orchestrate twitter content calendars, search recent x posts for brand monitoring, competitor tracking, create list, list name.
- Supported action names:
create_list, create_post, create_post_with_link, create_reply, create_reply_with_link, delete_list, delete_post, lookup_dms, lookup_follows, lookup_list_contents, lookup_lists, lookup_post_engagers, lookup_posts, lookup_timeline, lookup_users, search_posts, send_dm, set_follow, set_like, set_list_follow, set_list_membership, set_list_pin, set_reply_hidden, set_repost, update_list, upload_media.
Use Cases
- Publish posts and replies to X / Twitter from agent workflows
- Schedule and orchestrate Twitter content calendars
- Search recent X posts for brand monitoring
- competitor tracking
- and trend detection
- Draft and send on-brand replies to the conversations that matter
- Upload images
- GIFs
- and video to X from File Manager files or any public URL
- Run social media customer support over X DMs
- Send launch announcements and follow-up DMs from automations
- Like
- repost
- and follow as part of engagement automations
- Hide spam or off-topic replies on your own posts
- Build and curate X Lists for launch watch
Related Product Skills
Categories And Industries
No categories or industry tags are published for this tool.
Actions And Schema
Complete generated action schema: ./schema.md.
Supported action count: 26.
x402 availability: not enabled for this product.
create_list (action slug: create-list): Create a new X List for the authenticated user. Price: 1 credits. Parameters: list_description, list_name, list_private.
create_post (action slug: create-post): Create a top-level X post without links. Use create_post_with_link for text containing web links. Quote-post creation is not supported. Price: 5 credits. Parameters: media_ids, text.
create_post_with_link (action slug: create-post-with-link): Create a top-level X post whose text contains at least one web link. Quote-post creation is not supported. Price: 25 credits. Parameters: media_ids, text.
create_reply (action slug: create-reply): Reply to another X post without links. X self-serve plans may restrict replies unless the original author has summoned the authenticated account. Price: 5 credits. Parameters: media_ids, reply_to_post_id, text.
create_reply_with_link (action slug: create-reply-with-link): Reply to another X post with text containing at least one web link. X self-serve plans may restrict replies unless the original author has summoned the authenticated account. Price: 25 credits. Parameters: media_ids, reply_to_post_id, text.
delete_list (action slug: delete-list): Delete a List owned by the authenticated user. Price: 1 credits. Parameters: list_id.
delete_post (action slug: delete-post): Delete a post by ID. Price: 5 credits. Parameters: post_id.
lookup_dms (action slug: lookup-dms): Read DM events by scope: all, conversation, participant, or event_id. Price: 5 credits. Parameters: conversation_id, event_id, max_results, pagination_token, participant_user_id, , .
Live Schema And Examples
Use the compact schema above for ordinary calls. Before a new production integration, or whenever parameters, enum values, nested objects, outputs, or examples are unclear, fetch live details first.
- Exact schema: call
agentpmt-tool-search-and-execution with action: "get_schema", and tool_id: "x-twitter-automation".
- Detailed examples: call
agentpmt-tool-search-and-execution with action: "get_instructions" and tool_id: "x-twitter-automation", or call this product with action: "get_instructions" when the product tool is already selected.
- Treat returned live schema and instructions as more specific than this generated summary.
MCP schema lookup through the main AgentPMT MCP server:
{
"method": "tools/call",
"params": {
"name": "AgentPMT-Tool-Search-and-Execution",
"arguments": {
"action": "get_schema",
"tool_id": "x-twitter-automation"
}
}
}
For live examples, keep the same MCP tool and use these arguments:
{
"action": "get_instructions",
"tool_id": "x-twitter-automation"
}
Authenticated AgentPMT REST schema lookup body:
{
"name": "agentpmt-tool-search-and-execution",
"parameters": {
"action": "get_schema",
"tool_id": "x-twitter-automation"
}
}
Authenticated AgentPMT REST live examples body:
{
"name": "agentpmt-tool-search-and-execution",
"parameters": {
"action": "get_instructions",
"tool_id": "x-twitter-automation"
}
}
Call This Tool
Product slug: x-twitter-automation
Marketplace page: https://www.agentpmt.com/marketplace/x-twitter-automation
- AgentPMT account route: first use
../agentpmt-account-mcp-rest-api-setup to connect the main MCP server or REST API for an Agent Group where this tool is enabled.
- x402 route: not enabled for this product.
- AgentPMT overview: use
../what-is-agentpmt for marketplace, Agent Group, workflow, MCP, REST, and payment concepts.
If those setup skills are not installed beside this product skill, use the downloads below.
Core AgentPMT setup skills:
- What AgentPMT is: ../what-is-agentpmt
- AgentPMT account MCP/REST setup: ../agentpmt-account-mcp-rest-api-setup
skills.sh install script:
npx skills add AgentPMT/agent-skills --skill what-is-agentpmt
npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup
MCP call shape after the main AgentPMT MCP server is connected:
{
"method": "tools/call",
"params": {
"name": "X--Twitter-Automation",
"arguments": {
"action": "create_list",
"list_description": "example list description",
"list_name": "example list name",
"list_private": true
}
}
}
Use the exact tool name returned by tools/list; the name above is the expected readable form.
Authenticated AgentPMT REST call body:
{
"name": "x-twitter-automation",
"parameters": {
"action": "create_list",
"list_description": "example list description",
"list_name": "example list name",
"list_private": true
}
}
Use the setup skill for the account connection details before making REST calls.
Response Handling
- Treat the returned JSON as the source of truth for this tool call.
- If the response includes warnings or correction targets, apply them before retrying.
- If the response includes a
passed or success-style boolean, use it as the workflow gate.
- If validation fails or the response shape is unclear, call
get_schema or get_instructions before retrying.
- If
create_list fails, preserve the request parameters and retry only after fixing schema, auth, or payment errors.
Security
- Do not place account secrets, wallet private keys, mnemonics, signatures, or payment headers in prompts or logs.
- Keep tool inputs scoped to the minimum content needed for the task.
- Use the setup skills for credential handling; this product skill only defines product-specific behavior.
AgentPMT Reference