Install
openclaw skills install @agentpmt/x-twitter-automationX / 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.
openclaw skills install @agentpmt/x-twitter-automationLast 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.
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.
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.
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.upload_media to get media_ids, then create_post (or create_post_with_link when the text has a URL).search_posts on keywords plus lookup_timeline (mentions) and curated lookup_lists.lookup_dms to read threads, send_dm to respond.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.
search_postsRequired: 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_postsRequired: 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_postCreates 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_linkCreates 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_replyReplies 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_linkReplies 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_postRequired: post_id.
Example: {"action":"delete_post","post_id":"123"}
set_reply_hiddenRequired: reply_post_id, hidden (boolean).
Example: {"action":"set_reply_hidden","reply_post_id":"123","hidden":true}
set_likeRequired: post_id, liked (boolean).
Example: {"action":"set_like","post_id":"123","liked":true}
set_repostRequired: post_id, reposted (boolean).
Example: {"action":"set_repost","post_id":"123","reposted":true}
lookup_post_engagersRequired: 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_usersRequired: 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_followRequired: user_id, following (boolean).
Example: {"action":"set_follow","user_id":"123","following":true}
lookup_followsRequired: user_id, relationship (followers|following). Optional: max_results, pagination_token, verbosity.
Example: {"action":"lookup_follows","user_id":"123","relationship":"followers","max_results":50}
lookup_timelineRequired: 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_dmsRequired: 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_dmRequired: 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_mediaRequired: 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_listCreates 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_listUpdates 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_listDeletes a List owned by the authenticated user. Required: list_id.
Example: {"action":"delete_list","list_id":"123"}
set_list_membershipAdds 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_followFollows 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_pinPins 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_listsLooks 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_contentsLists 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}
All actions return action. List actions also return data, optional includes, optional meta, and next_token.
lookup_post_engagers with engagement_type:"quotes".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 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.X / Twitter Automation on AgentPMT.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.file-management, page: https://clawhub.ai/agentpmt/file-management; skills.sh: npx skills add AgentPMT/agent-skills --skill file-management)No categories or industry tags are published for this tool.
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, scope, verbosity.lookup_follows (action slug: lookup-follows): List followers or followed users for a user. Price: 5 credits. Parameters: max_results, pagination_token, relationship, user_id, verbosity.lookup_list_contents (action slug: lookup-list-contents): List members, followers, or posts for a List. Price: 1 credits. Parameters: list_id, list_view, max_results, pagination_token, verbosity.lookup_lists (action slug: lookup-lists): Look up one List or list owned, membership, followed, or pinned Lists. Price: 1 credits. Parameters: list_id, list_scope, max_results, pagination_token, user_id, verbosity.lookup_post_engagers (action slug: lookup-post-engagers): List users who liked or reposted a post, or list quote posts. Price: 5 credits. Parameters: engagement_type, max_results, pagination_token, post_id, verbosity.lookup_posts (action slug: lookup-posts): Get one or more X posts by ID with curated field verbosity. Price: 5 credits. Parameters: post_id, post_ids, verbosity.lookup_timeline (action slug: lookup-timeline): Read user posts, mentions, or authenticated home timeline. Price: 5 credits. Parameters: max_results, pagination_token, timeline_type, user_id, verbosity.lookup_users (action slug: lookup-users): Resolve users by ID, username, or the authenticated account. Price: 5 credits. Parameters: lookup_by, user_id, user_ids, username, usernames, verbosity.search_posts (action slug: search-posts): Search recent X posts from the last 7 days. Price: 5 credits. Parameters: end_time, max_results, pagination_token, query, start_time, verbosity.send_dm (action slug: send-dm): Send a DM to a participant, existing conversation, or new group. Price: 5 credits. Parameters: conversation_id, media_id, participant_user_id, participant_user_ids, target_type, text.set_follow (action slug: set-follow): Follow or unfollow a user as the authenticated user. Price: 5 credits. Parameters: following, user_id.set_like (action slug: set-like): Like or unlike a post as the authenticated user. Price: 5 credits. Parameters: liked, post_id.set_list_follow (action slug: set-list-follow): Follow or unfollow a List as the authenticated user. Price: 1 credits. Parameters: following, list_id.set_list_membership (action slug: set-list-membership): Add or remove a user as a member of a List owned by the authenticated user. Price: 1 credits. Parameters: is_member, list_id, user_id.set_list_pin (action slug: set-list-pin): Pin or unpin a followed or owned List for the authenticated user. Price: 1 credits. Parameters: list_id, pinned.set_reply_hidden (action slug: set-reply-hidden): Hide or unhide a reply on your post. Price: 5 credits. Parameters: hidden, reply_post_id.set_repost (action slug: set-repost): Repost or undo repost as the authenticated user. Price: 5 credits. Parameters: post_id, reposted.update_list (action slug: update-list): Update a List's name, description, or privacy setting. Price: 1 credits. Parameters: list_description, list_id, list_name, list_private.upload_media (action slug: upload-media): Upload image, GIF, or video media for posts or DMs and return a media ID. Price: 5 credits. Parameters: file_id, media_type, source_url, usage_context.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.
agentpmt-tool-search-and-execution with action: "get_schema", and tool_id: "x-twitter-automation".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.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"
}
}
Product slug: x-twitter-automation
Marketplace page: https://www.agentpmt.com/marketplace/x-twitter-automation
../agentpmt-account-mcp-rest-api-setup to connect the main MCP server or REST API for an Agent Group where this tool is enabled.../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:
openclaw skills install what-is-agentpmtnpx skills add AgentPMT/agent-skills --skill what-is-agentpmtopenclaw skills install agentpmt-account-mcp-rest-api-setupnpx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setupskills.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.
passed or success-style boolean, use it as the workflow gate.get_schema or get_instructions before retrying.create_list fails, preserve the request parameters and retry only after fixing schema, auth, or payment errors.what-is-agentpmt, page: https://clawhub.ai/agentpmt/what-is-agentpmt; skills.sh: npx skills add AgentPMT/agent-skills --skill what-is-agentpmt)agentpmt-account-mcp-rest-api-setup, page: https://clawhub.ai/agentpmt/agentpmt-account-mcp-rest-api-setup; skills.sh: npx skills add AgentPMT/agent-skills --skill agentpmt-account-mcp-rest-api-setup)