- Drafts unless the person says otherwise.
scheduled:createwithout--atis a draft and nothing publishes. - Nothing here sends a reply or a DM. Reply drafts are text a person posts.
dm:campaignenqueues; the SuperX app sends. posts:publishandarticles:publishare immediate and irreversible. Confirm the exact text with the person first, and note thatposts:publishREQUIRES--idempotency-keyso a retry cannot post twice.
--account <account-id> acts on a linked account (superx accounts lists the
ids). It is shown once, in Weekly Growth Recap, and applies the same way to the
account-scoped commands: the posts, scheduled, replies, contacts, lists,
engage, signals, dm, context, queue and articles families, plus the dataset
commands that WRITE for an account (datasets:collect, datasets:refine,
datasets:research, datasets:outreach-drafts, datasets:add-to-list).
Some commands are owner-scoped and the CLI is strict, so passing --account
to one is an error, not a no-op. Nothing about them is per-X-account: the live
lookups x:post, x:replies, x:user and x:user-posts, the inspiration
searches inspiration:search and inspiration:media, and the dataset reads
datasets:list, datasets:get, datasets:rows and datasets:export. A few
id-addressed subcommands inside the account families are owner-scoped for the
same reason (the id already names the account), among them articles:publish,
scheduled:delete and lists:remove-member. When a chain here does not show
--account, that is deliberate; superx <command> --help is the check.
Accounts other people shared with you are read-only. Ids in angle brackets are
placeholders you fill from the previous step’s JSON.
Grow & Plan
Weekly Growth Recap
Your week in review: follower change, the posts that worked, new leads, one pattern to repeat and one focus for next week.get_account_overview -> get_post_analytics -> get_signal_leads -> get_audience_replies
Stops at: the recap text in chat. Reads only, no AI credits.
Growth Plan Builder
A multi-week plan tied to the account’s real numbers: cadence, a reply target, and the format to repeat.references/growth-strategy.md) before writing the plan: the numbers say what happened, the strategy guide says what to do about it.
MCP: get_account_overview -> get_post_analytics -> get_my_replies -> get_queue_settings
Stops at: the written plan. Reads only, no AI credits. Nothing is scheduled by this skill.
Cadence & Queue Audit
Gaps and pile-ups in the queue, a cadence verdict, and the reschedules to make.--at on its own never promotes a draft: add --status scheduled for that. The audit never deletes posts.
MCP: get_queue_settings -> get_scheduled_posts -> get_post_analytics -> update_scheduled_post
Stops at: the proposed moves, applied one at a time after the person agrees. Reads and one write, no AI credits.
Find Your Story
The story people follow this account for, laid out as an arc, plus a pinned-post draft and two posts that continue it.pinned_tweet_id from x:user, then x:post on that id only if there is one. Write the arc as four labelled lines, each one sentence grounded in a real post or the bio: Setup, Stakes, Conflict, and Resolution (or Where it stands, when the story is still open). A line you cannot ground is a question to ask, never a guess. When the account has no posts, only a few, or posts with no personal arc, interview instead: ONE question per reply (what changed or what they left, what they are chasing and by when, what is in the way, what happens if it fails), then build the arc from the answers. posts:list empty means nothing is synced yet, so fall back to x:user-posts <handle> --no-reposts --limit 20. Never invent events the posts or the answers do not contain.
MCP: lookup_x_user -> lookup_x_post -> get_post_analytics -> draft_post
Stops at: the arc plus three drafts, one to pin and two that continue the story, for the person to pick from. The lookups draw on the shared 300-a-day x:* allowance; 3 AI credits per draft written.
Content & Posting
Daily Post Ideas
Two or three drafts for today, written in the account’s voice and ready to schedule.posts:draft saves nothing. Show the drafts, let the person pick and edit, then pass the final wording to scheduled:create.
MCP: get_scheduled_posts -> get_post_analytics -> draft_post -> schedule_post
Stops at: a draft in the SuperX app for the person to review. Costs 3 AI credits per draft written, so ask how many they want.
Viral Format Remix
Proven hooks and structures from a library of 50M+ high-performing posts, rewritten in the account’s voice.--mirror copies the SHAPE of a proven post, not its words. Pick a reference with room for the account’s own facts.
MCP: find_inspiration -> draft_post -> schedule_post
Stops at: reference posts plus drafts, for the person to pick from. 3 AI credits per draft written.
Trending Now Scan
High-performing posts in the account’s niche from the last 48 hours, with angles to take.find_inspiration
Stops at: the posts and the suggested angles in chat. Reads only, no AI credits.
Thread Builder
An idea or rough notes turned into a thread of up to 25 parts, ready to schedule.--part in posting order.
MCP: draft_post -> schedule_post
Stops at: a thread draft in the app. 3 AI credits per draft written.
Week of Posts
A week of varied drafts, spread across the week, one approval per post.--idempotency-key on a retry.
MCP: get_post_analytics -> get_queue_settings -> draft_post -> schedule_post -> get_scheduled_posts
Stops at: a queued week the person can still edit. 3 AI credits per draft written.
Repurpose a Winner
The account’s best post, reworked into fresh angles.--closeness 0 keeps just the idea, 100 stays very close to the original wording.
MCP: get_post_analytics -> remix_post -> schedule_post
Stops at: remixed text the person approves before anything is saved. A remix typically costs 2 AI credits (measured).
Queue Reshuffle
Move and rewrite scheduled posts by asking, up to 500 in one transaction.bulk-retime only touches QUEUED posts and answers with counts, so compare against scheduled:list rather than assuming every id moved. scheduled:update --text without --media drops the post’s images: re-list the current object_keys to keep them.
MCP: get_scheduled_posts -> bulk_retime_scheduled_posts -> update_scheduled_post
Stops at: the retimed queue, one confirmation per change. No AI credits.
Worker Output Review
The posts a Worker wrote while the person was away, triaged: save the good ones, queue one, clear the rest.posts:remix and save your version with scheduled:create, then dismiss the original. A suggestion can only be saved once, so a second draft or schedule call on the same id is a 400.
MCP: list_workers -> list_worker_suggestions -> draft_worker_suggestion / schedule_worker_suggestion / dismiss_worker_suggestion -> get_scheduled_posts
Stops at: the saved drafts and the queued post, for the person to edit. Reads and the three actions cost no AI credits.
Viral Score Loop
Score a draft against the account’s own recent posts, rewrite one thing at a time, rescore, and stop when the score stops rising.score, helped, hurt and warnings from each result. Rewrite ONE thing per round, keyed on the top hurt item, and keep the person’s facts, claims and voice; never add a request for replies, follows, links or DMs, never pad with hashtags or emoji, and pass the same media flags every round. Stop when a rewrite introduces a warning (go back to the last clean version and say which warning fired), when the score has not risen for two rounds in a row, or after six scored versions. If the first score already warns, name it and offer one rewrite that removes the ask, then score that once. The score is the chance the post beats the account’s own normal post, so say “72 means it beats your usual post about 72 times in 100”, never a reach or like count; the likes and replies multiples are relative to the account’s median post, and reposts+quotes and views are low confidence, so never chase them.
MCP: predict_viral_score (repeat per version) -> schedule_post only when the person asks
Stops at: a table of every version with its score and what changed, plus the best version, for the person to pick. Nothing is posted. Most scores charge no credits, one in ten charges 1, and the first score for an account charges 1 more while its baseline is read.
Replies & Engagement
Reply Sprint
The replies the account’s posts got, each with a ready-to-post draft.get_audience_replies -> draft_reply
Stops at: reply TEXT. The person posts the reply: nothing in the CLI, the API or MCP posts a reply to X. Each draft typically costs 2 AI credits (measured).
Worth a Reply
Read a topic the person cares about and hand back the posts worth replying to today, each with the angle a reply could take.lane, pct, kind and answers from every post. Present the read lane first, ordered by answers.r_reply_room (how much room a knowledgeable reader has to add something), and order ONLY inside that lane: one line per post with its url, its kind, one line on why it is worth a reply built from that post’s own answers (r_specific says it names something concrete, r_new says it is not the usual take, r_reply_room says there is something left to add), and one line on the angle a reply could take, drawn from the post’s text. Then the unsure lane as short one-liners under a Skim heading. Leave the pass lane out entirely unless the person asks what was dropped, and then say how many and why in one sentence. Quote a post’s own answers rather than inventing a reason, and never claim a post has a given like count from the search floor.
pct is how CLEAR the call was, not how good the post is: on read and pass it runs 50 to 99, so a pass at 99 means confidently not worth the time, and only on unsure is it the raw worth-reading score. Say the lane with the number, never rank posts by pct across lanes. What is judged is the TEXT of a post and the model never sees who wrote it, so report it as a call on the writing and never as a rating of a person or an account. The search asks for original posts, English only, with a floor of 30 likes, and returns no replies or reposts, so a small or brand-new topic can come back empty, which is an honest answer rather than a failure.
MCP: triage_posts -> draft_reply only when the person picks a post and says what they want to say
Stops at: a reply list, in chat, for the person to pick from. It drafts nothing until they choose a post, and nothing is ever sent. A run costs a flat 2 credits and spends 1 live X lookup for a single-word topic or 2 for a multi-word one, out of the account’s daily allowance.
Reply to Any Post
Any post’s context, what its top replies already said, and one strong reply draft.x:replies is a sample of the best-liked direct replies, not every reply, and it does not exclude the author’s own.
MCP: lookup_x_post -> get_x_post_replies -> draft_reply
Stops at: reply TEXT. The person posts the reply. The lookups draw on the shared 300-a-day x:* allowance: x:replies spends 3 enrichment units and moves that daily counter once per page it fetches, up to 3. A reply draft named by --post spends one more lookup, plus typically 2 AI credits (measured).
My Replies Report
Which of the account’s replies actually earned attention, and the pattern behind them.metrics_pending: replies sent from the app in the last 4 hours have no numbers yet, so leave them out of the ranking.
MCP: get_my_replies
Stops at: the ranked list plus a pattern read. Reads only, no AI credits.
Who Is This Person?
A fast read on a public account, plus the history the SuperX account already has with them.contacts:get covers known contacts only: engagers, contact-list members and scored leads. A 404 there means the person is not one of them yet, not that the lookup failed.
MCP: lookup_x_user -> get_x_user_posts -> get_contact -> get_contact_history
Stops at: the profile read in chat. Reads only, on the shared 300-a-day x:* allowance.
Leads & Prospecting
Your Warmest Leads
The people already engaging most, ranked, with who to follow up with first.get_top_contacts -> get_contact_history
Stops at: the ranked list plus a suggested order. Reads only, no AI credits.
Instant Lead Hunt
A live search of X right now for people matching the audience described, scored, saving nothing.--offer is the single biggest lever on quality: give it whenever a product or company is named and the search plans up to 10 buyer-side query angles from it instead of running the keywords verbatim. Write --keywords as 2-5 short seed angles of how the BUYER talks (a symptom, a tool they already pay for, their jargon), never the product’s own name. --max-age-days is the recency window (1-90, default 30): 7 for a pain point worth catching while it is fresh.
MCP: suggest_keywords -> search_leads
Stops at: up to 30 scored leads in chat. Costs at least 1 AI credit plus one of the plan’s daily lead searches, and draws on a fair-use ceiling shared by every SuperX account. Takes up to a minute.
Standing Lead Agent
An agent that keeps finding leads while the person is away.warnings before telling the person what the agent watches, and omit --list-id only if you are happy with an auto-created Leads: ... contact list.
MCP: expand_icp -> suggest_keywords -> create_signal_agent -> list_signal_agents -> get_signal_leads
Stops at: the agent proposal, created only after the person approves it. The helpers are free; the agent itself costs nothing to set up. Editing or pausing later happens in Signals or with signals:update-agent.
Lead Review
The leads the agents found, prioritized, with the top few activity-checked.list_signal_agents -> get_signal_leads -> get_x_user_posts -> set_lead_feedback
Stops at: the prioritized list plus recorded verdicts. Reads plus one small write; the activity check spends the shared 300-a-day x:* allowance.
Outreach & DMs
Warm Outreach Pipeline
Research a list, get one personalized message per person, and queue them only after the person approves every message.--handles, --list, --agent and --dataset are alternative sources for the research step: give exactly one. contacts:list returns people, not a list id, so its output feeds --handles through the jq above; --list takes a contact-list id from lists:list instead, which is the other way into this skill. Both cap at 25 profiles. Build recipients.json from the dataset rows as [{"x_user_id":"...","handle":"...","name":"...","message":"..."}], one entry per person, each carrying its own approved message. Ask the person for the --format; never invent one.
MCP: get_top_contacts -> research_profiles -> draft_outreach_dms -> get_dataset_rows -> get_dm_limits -> queue_dm_campaign -> get_dm_campaign
Stops at: a queued campaign, not delivered messages. dm:campaign is an ENQUEUE: the SuperX app sends the messages later, within the account’s daily and monthly DM limits, so report counts and never say anything was sent. dm:campaign-status and dm:queue show what actually went out; dm:cancel cancels the unsent ones. Research costs 1 AI credit per profile researched, max 100 recipients per campaign, and the person is responsible for these messages under X’s automation rules.
Profile Research Briefs
Structured briefs on a list of people, exportable as CSV.collecting result: pass --wait or poll datasets:get.
MCP: research_profiles -> get_dataset -> get_dataset_rows
Stops at: the briefs in chat plus a CSV on disk. Costs 1 AI credit per profile ACTUALLY researched (unresolved handles are refunded), max 25 a run, plus one of the plan’s daily research runs. CSV export is CLI only; XLSX stays in the SuperX app.
Reply-to-DM Campaign
DM the people who replied to one of the account’s posts.recipients.json from datasets:rows in the same shape as Warm Outreach Pipeline, [{"x_user_id":"...","handle":"...","name":"...","message":"..."}], except that here --message carries the shared wording and only x_user_id is required per row; a row’s own message overrides the shared one. [name], [first] and [handle] are filled per recipient. People messaged in the last 24 hours are skipped and counted in duplicates, and the account never messages itself.
MCP: collect_audience -> refine_dataset -> get_dataset_rows -> get_dm_limits -> queue_dm_campaign -> get_dm_campaign
Stops at: a queued campaign, not delivered messages. The enqueue rule is the same one as Warm Outreach Pipeline: the SuperX app sends, nothing here does, and the response is counts. Max 100 per campaign, 10 dataset ops a day, no AI credits on the DM side. Confirm the recipient list and the exact wording with the person first.
DM-Ready Audience Builder
A clean, DM-able audience built from any post or public X list, with a path into a contact list.--source also takes quoters, reposters and list_members (with a public X list URL as --target). Adding to a list dedupes by person and skips rows with no usable X account id, so added + duplicates can be lower than the row count.
MCP: collect_audience -> get_dataset -> create_contact_list -> add_dataset_to_contact_list
Stops at: a filtered dataset and, if the person wants it, a contact list. Costs one of 10 collections a day shared with the SuperX app. No AI credits.
Audience & Data
Audience Export
Everyone who engaged a post, as a spreadsheet, no filters.collect_audience -> get_dataset
Stops at: a CSV file on disk, up to 1000 rows. CSV only: there is no export tool on MCP and XLSX stays in the SuperX app, so send the person there when they need the spreadsheet format. Costs one of 10 collections a day. No AI credits.
Sentiment Slice
Keep only the people who said the thing you are looking for.list_datasets -> refine_dataset -> get_dataset_rows
Stops at: the new dataset with its matched and unclear counts. A refinement creates a dataset, so it spends one of the same 10 collections a day, plus a small AI cost. Ask before running it.
My Content Export
The account’s own posts or replies, as a spreadsheet.--source my_replies does the same for replies. Small exports finish instantly.
MCP: collect_audience -> get_dataset
Stops at: a CSV file on disk. CSV only, same as Audience Export: XLSX is app-only. Costs one of 10 collections a day. No AI credits.
Analytics & Insights
Post Post-Mortem
Why one post overperformed or flopped, measured against the account’s own baseline.get_post_analytics -> get_account_overview -> get_x_user_posts
Stops at: the explanation in chat. Reads only. The live lookup draws on the shared 300-a-day allowance for x:*.
Top Performers Breakdown
The ranked winners, the shape they share, and what to write more of.get_post_analytics -> get_account_overview
Stops at: the pattern read in chat. Reads only, no AI credits.
Rules & Setup
Teach SuperX Your Rules
Standing rules the AI follows on every drafting surface.get_context -> update_context
Stops at: the updated rule set, read back so the person can see exactly what is stored. Free, no AI credits.