superx-cli 0.5.1 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +9 -5
  3. package/dist/index.js +255 -18
  4. package/package.json +5 -5
  5. package/skills/superx/SKILL.md +448 -0
  6. package/{SKILL.md → skills/superx/references/commands.md} +47 -429
  7. package/{PLAYBOOK.md → skills/superx/references/growth-strategy.md} +3 -3
  8. package/skills/superx/references/skills/README.md +31 -0
  9. package/skills/superx/references/skills/audience-export/card.json +20 -0
  10. package/skills/superx/references/skills/audience-export/recipe.md +13 -0
  11. package/skills/superx/references/skills/cadence-and-queue-audit/card.json +22 -0
  12. package/skills/superx/references/skills/cadence-and-queue-audit/recipe.md +17 -0
  13. package/skills/superx/references/skills/categories.json +41 -0
  14. package/skills/superx/references/skills/daily-post-ideas/card.json +22 -0
  15. package/skills/superx/references/skills/daily-post-ideas/recipe.md +17 -0
  16. package/skills/superx/references/skills/dm-ready-audience-builder/card.json +21 -0
  17. package/skills/superx/references/skills/dm-ready-audience-builder/recipe.md +16 -0
  18. package/skills/superx/references/skills/find-your-story/card.json +23 -0
  19. package/skills/superx/references/skills/find-your-story/recipe.md +17 -0
  20. package/skills/superx/references/skills/growth-plan-builder/card.json +21 -0
  21. package/skills/superx/references/skills/growth-plan-builder/recipe.md +17 -0
  22. package/skills/superx/references/skills/instant-lead-hunt/card.json +21 -0
  23. package/skills/superx/references/skills/instant-lead-hunt/recipe.md +14 -0
  24. package/skills/superx/references/skills/lead-review/card.json +20 -0
  25. package/skills/superx/references/skills/lead-review/recipe.md +16 -0
  26. package/skills/superx/references/skills/my-content-export/card.json +21 -0
  27. package/skills/superx/references/skills/my-content-export/recipe.md +15 -0
  28. package/skills/superx/references/skills/my-replies-report/card.json +20 -0
  29. package/skills/superx/references/skills/my-replies-report/recipe.md +13 -0
  30. package/skills/superx/references/skills/post-post-mortem/card.json +20 -0
  31. package/skills/superx/references/skills/post-post-mortem/recipe.md +16 -0
  32. package/skills/superx/references/skills/profile-research-briefs/card.json +21 -0
  33. package/skills/superx/references/skills/profile-research-briefs/recipe.md +15 -0
  34. package/skills/superx/references/skills/queue-reshuffle/card.json +21 -0
  35. package/skills/superx/references/skills/queue-reshuffle/recipe.md +15 -0
  36. package/skills/superx/references/skills/reply-sprint/card.json +20 -0
  37. package/skills/superx/references/skills/reply-sprint/recipe.md +12 -0
  38. package/skills/superx/references/skills/reply-to-any-post/card.json +20 -0
  39. package/skills/superx/references/skills/reply-to-any-post/recipe.md +15 -0
  40. package/skills/superx/references/skills/reply-to-dm-campaign/card.json +21 -0
  41. package/skills/superx/references/skills/reply-to-dm-campaign/recipe.md +18 -0
  42. package/skills/superx/references/skills/repurpose-a-winner/card.json +21 -0
  43. package/skills/superx/references/skills/repurpose-a-winner/recipe.md +16 -0
  44. package/skills/superx/references/skills/sentiment-slice/card.json +20 -0
  45. package/skills/superx/references/skills/sentiment-slice/recipe.md +15 -0
  46. package/skills/superx/references/skills/standing-lead-agent/card.json +21 -0
  47. package/skills/superx/references/skills/standing-lead-agent/recipe.md +17 -0
  48. package/skills/superx/references/skills/teach-superx-your-rules/card.json +21 -0
  49. package/skills/superx/references/skills/teach-superx-your-rules/recipe.md +15 -0
  50. package/skills/superx/references/skills/thread-builder/card.json +20 -0
  51. package/skills/superx/references/skills/thread-builder/recipe.md +14 -0
  52. package/skills/superx/references/skills/top-performers-breakdown/card.json +21 -0
  53. package/skills/superx/references/skills/top-performers-breakdown/recipe.md +13 -0
  54. package/skills/superx/references/skills/trending-now-scan/card.json +21 -0
  55. package/skills/superx/references/skills/trending-now-scan/recipe.md +14 -0
  56. package/skills/superx/references/skills/viral-format-remix/card.json +20 -0
  57. package/skills/superx/references/skills/viral-format-remix/recipe.md +15 -0
  58. package/skills/superx/references/skills/viral-score-iterate/card.json +22 -0
  59. package/skills/superx/references/skills/viral-score-iterate/recipe.md +15 -0
  60. package/skills/superx/references/skills/warm-outreach-pipeline/card.json +21 -0
  61. package/skills/superx/references/skills/warm-outreach-pipeline/recipe.md +19 -0
  62. package/skills/superx/references/skills/week-of-posts/card.json +19 -0
  63. package/skills/superx/references/skills/week-of-posts/recipe.md +18 -0
  64. package/skills/superx/references/skills/weekly-growth-recap/card.json +22 -0
  65. package/skills/superx/references/skills/weekly-growth-recap/recipe.md +17 -0
  66. package/skills/superx/references/skills/who-is-this-person/card.json +20 -0
  67. package/skills/superx/references/skills/who-is-this-person/recipe.md +16 -0
  68. package/skills/superx/references/skills/worker-output-review/card.json +20 -0
  69. package/skills/superx/references/skills/worker-output-review/recipe.md +18 -0
  70. package/skills/superx/references/skills/your-warmest-leads/card.json +21 -0
  71. package/skills/superx/references/skills/your-warmest-leads/recipe.md +14 -0
  72. package/PLAYBOOKS.md +0 -542
@@ -0,0 +1,13 @@
1
+ # Audience Export
2
+
3
+ Everyone who engaged a post, as a spreadsheet, no filters.
4
+
5
+ ```bash
6
+ superx datasets:collect --source repliers --target <post-url> --max-rows 1000 --title "<export title>" --wait
7
+ superx datasets:get <dataset-id>
8
+ superx datasets:export <dataset-id> --out audience.csv
9
+ ```
10
+
11
+ MCP: `collect_audience` -> `get_dataset`
12
+
13
+ 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.
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "Cadence & Queue Audit",
3
+ "category": "grow-plan",
4
+ "order": 30,
5
+ "subtitle": "Diagnose your posting rhythm and spot queue gaps and pile-ups.",
6
+ "summary": "Compares your scheduled queue against your recent posting history and performance, flags gaps and pile-ups, and proposes queue moves, one card per change.",
7
+ "howToAsk": [
8
+ "Audit my posting schedule",
9
+ "Is my queue healthy?",
10
+ "Am I posting too little?"
11
+ ],
12
+ "provide": "nothing.",
13
+ "get": "queue gaps and pile-ups, cadence verdict, proposed reschedules as approval cards.",
14
+ "chips": [
15
+ "No extra cost",
16
+ "Changes need your approval",
17
+ "Active account, up to 25 posts",
18
+ "Can't delete posts"
19
+ ],
20
+ "launchPrompt": "Check my scheduled posts and my recent posting cadence, tell me whether my rhythm is working, and propose reschedules if anything is stacked or missing.",
21
+ "sampleKind": "recap"
22
+ }
@@ -0,0 +1,17 @@
1
+ # Cadence & Queue Audit
2
+
3
+ Gaps and pile-ups in the queue, a cadence verdict, and the reschedules to make.
4
+
5
+ ```bash
6
+ superx queue:get
7
+ superx scheduled:list --status scheduled --limit 100
8
+ SINCE=$(date -u -v-30d +"%Y-%m-%dT00:00:00Z" 2>/dev/null || date -u -d "30 days ago" +"%Y-%m-%dT00:00:00Z")
9
+ superx posts:list --type posts --sort likes --since "$SINCE" --limit 25
10
+ superx scheduled:update <post-id> --at "<UTC ISO-8601 with Z>"
11
+ ```
12
+
13
+ `--at` on its own never promotes a draft: add `--status scheduled` for that. The audit never deletes posts.
14
+
15
+ MCP: `get_queue_settings` -> `get_scheduled_posts` -> `get_post_analytics` -> `update_scheduled_post`
16
+
17
+ Stops at: the proposed moves, applied one at a time after the person agrees. Reads and one write, no AI credits.
@@ -0,0 +1,41 @@
1
+ {
2
+ "version": 2,
3
+ "meta": {
4
+ "subtitle": "Prebuilt Twitter growth workflows powered by your SuperX data.",
5
+ "recommendPrompt": "Look at my account and recent activity and recommend which skills would help me most right now."
6
+ },
7
+ "categories": [
8
+ {
9
+ "id": "grow-plan",
10
+ "name": "Grow & Plan"
11
+ },
12
+ {
13
+ "id": "content-posting",
14
+ "name": "Content & Posting"
15
+ },
16
+ {
17
+ "id": "replies-engagement",
18
+ "name": "Replies & Engagement"
19
+ },
20
+ {
21
+ "id": "leads-prospecting",
22
+ "name": "Leads & Prospecting"
23
+ },
24
+ {
25
+ "id": "outreach-dms",
26
+ "name": "Outreach & DMs"
27
+ },
28
+ {
29
+ "id": "audience-data",
30
+ "name": "Audience & Data"
31
+ },
32
+ {
33
+ "id": "analytics-insights",
34
+ "name": "Analytics & Insights"
35
+ },
36
+ {
37
+ "id": "setup-voice",
38
+ "name": "Rules & Setup"
39
+ }
40
+ ]
41
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "name": "Daily Post Ideas",
3
+ "category": "content-posting",
4
+ "order": 10,
5
+ "subtitle": "What to post today, drafted and ready to schedule.",
6
+ "summary": "Checks what's already in your queue and what has worked for you lately, then drafts 2-3 posts in your voice for you to pick from and schedule.",
7
+ "howToAsk": [
8
+ "What should I post today?",
9
+ "Give me post ideas",
10
+ "Draft something for today."
11
+ ],
12
+ "provide": "optionally a topic or product to focus on.",
13
+ "get": "2-3 drafts on a picker card, then scheduling from an approval card.",
14
+ "chips": [
15
+ "No extra cost",
16
+ "Scheduling needs your approval"
17
+ ],
18
+ "launchPrompt": "What should I post today? Check my queue and recent performance, then draft 2-3 options I can schedule.",
19
+ "sampleKind": "drafts",
20
+ "starter": true,
21
+ "starterGroup": "ideas"
22
+ }
@@ -0,0 +1,17 @@
1
+ # Daily Post Ideas
2
+
3
+ Two or three drafts for today, written in the account's voice and ready to schedule.
4
+
5
+ ```bash
6
+ SINCE=$(date -u -v-60d +"%Y-%m-%dT00:00:00Z" 2>/dev/null || date -u -d "60 days ago" +"%Y-%m-%dT00:00:00Z")
7
+ superx scheduled:list --status draft,scheduled --limit 100
8
+ superx posts:list --type posts --sort likes --since "$SINCE" --limit 10
9
+ superx posts:draft --brief "<the angle, data or notes to write from>" --count 3
10
+ superx scheduled:create --text "<the draft the person picked>" --idempotency-key "ideas-<date>-1"
11
+ ```
12
+
13
+ `posts:draft` saves nothing. Show the drafts, let the person pick and edit, then pass the final wording to `scheduled:create`.
14
+
15
+ MCP: `get_scheduled_posts` -> `get_post_analytics` -> `draft_post` -> `schedule_post`
16
+
17
+ 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.
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "DM-Ready Audience Builder",
3
+ "category": "outreach-dms",
4
+ "order": 40,
5
+ "subtitle": "Build a clean, DM-able audience from any post or public X list.",
6
+ "summary": "Collects everyone who replied to, quoted, or reposted a post, or the members of a public X list (not likers, not followers), filters to people with open DMs plus any bio keyword or follower filters, and saves the result as a dataset ready for a campaign now or later. You can download it or add people to your contacts, up to 500 per card.",
7
+ "howToAsk": [
8
+ "Build a DM-able audience from [link]",
9
+ "Grab the members of this X list: [link]",
10
+ "Who from this list has open DMs?"
11
+ ],
12
+ "provide": "the post or public X list link, plus any filters.",
13
+ "get": "a filtered dataset with counts, a download, add-to-contacts up to 500 per card, and a path to a campaign.",
14
+ "chips": [
15
+ "Up to 1000 rows",
16
+ "10 dataset ops per day",
17
+ "Over 100 people runs in the background"
18
+ ],
19
+ "launchPrompt": "Build me a DM-ready audience from this post or public X list: [paste link]. Keep only people with open DMs, and also filter by: [bio keyword, minimum followers, or leave blank for none].",
20
+ "sampleKind": "dataset"
21
+ }
@@ -0,0 +1,16 @@
1
+ # DM-Ready Audience Builder
2
+
3
+ A clean, DM-able audience built from any post or public X list, with a path into a contact list.
4
+
5
+ ```bash
6
+ superx datasets:collect --source repliers --target <post-url> --require-can-dm --max-rows 500 --title "<audience title>" --wait
7
+ superx datasets:get <dataset-id>
8
+ superx lists:create --name "<list name>"
9
+ superx datasets:add-to-list <dataset-id> --list-id <list-id>
10
+ ```
11
+
12
+ `--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.
13
+
14
+ MCP: `collect_audience` -> `get_dataset` -> `create_contact_list` -> `add_dataset_to_contact_list`
15
+
16
+ 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.
@@ -0,0 +1,23 @@
1
+ {
2
+ "name": "Find Your Story",
3
+ "category": "grow-plan",
4
+ "order": 40,
5
+ "subtitle": "Find the story people follow you for: stakes, struggle, and where it's heading.",
6
+ "summary": "Reads your bio, pinned post, and top posts, then lays out your story as an arc: where you started, what's at stake, what you're fighting through, and how it stands today. If you have few or no posts, it interviews you one question at a time and builds the arc from your answers. Ends with a pinned-post draft and two posts that continue the story.",
7
+ "howToAsk": [
8
+ "What's my story?",
9
+ "Help me find my story",
10
+ "I don't think I'm interesting, what should I post about?"
11
+ ],
12
+ "provide": "nothing if you have posts; otherwise answers to a few short questions.",
13
+ "get": "your story arc (setup, stakes, conflict, resolution or where it stands), plus a pinned-post draft and two story posts on a picker card.",
14
+ "chips": [
15
+ "No extra cost",
16
+ "Live profile lookup",
17
+ "Asks questions if you have few posts",
18
+ "Scheduling needs your approval"
19
+ ],
20
+ "launchPrompt": "Find my story. Read my bio, my pinned post, and my top posts, then lay out my story arc: where I started, what's at stake, what I'm fighting through, and where it stands now. If I have few or no posts, or they don't show it, interview me one question at a time about what I left behind, what I'm chasing, and what could go wrong, then build the arc from my answers. Finish with a pinned-post draft that sets the stakes and two posts that continue the story.",
21
+ "sampleKind": "recap",
22
+ "starter": true
23
+ }
@@ -0,0 +1,17 @@
1
+ # Find Your Story
2
+
3
+ The story people follow this account for, laid out as an arc, plus a pinned-post draft and two posts that continue it.
4
+
5
+ ```bash
6
+ SINCE=$(date -u -v-90d +"%Y-%m-%dT00:00:00Z" 2>/dev/null || date -u -d "90 days ago" +"%Y-%m-%dT00:00:00Z")
7
+ superx x:user <handle>
8
+ superx x:post <pinned-post-id>
9
+ superx posts:list --type posts --sort likes --since "$SINCE" --limit 20
10
+ superx posts:draft --brief "<the arc in the person's own words, plus the two follow-on angles>" --count 3
11
+ ```
12
+
13
+ Read the bio and `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.
14
+
15
+ MCP: `lookup_x_user` -> `lookup_x_post` -> `get_post_analytics` -> `draft_post`
16
+
17
+ 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.
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "Growth Plan Builder",
3
+ "category": "grow-plan",
4
+ "order": 20,
5
+ "subtitle": "A multi-week growth plan tied to your actual numbers.",
6
+ "summary": "Reads your account overview, post analytics, and reply activity from the last 90 days, then builds a plan for the weeks ahead: what to post, how often, who to reply to, and which format to repeat, scoped to the goal you name.",
7
+ "howToAsk": [
8
+ "Build me a growth plan",
9
+ "How do I get to 5k followers?",
10
+ "What should I change to grow faster?"
11
+ ],
12
+ "provide": "optionally a goal (followers, leads, launch date).",
13
+ "get": "a multi-week plan with a posting cadence, a reply target, and the format to repeat.",
14
+ "chips": [
15
+ "No extra cost",
16
+ "Uses your last 90 days"
17
+ ],
18
+ "launchPrompt": "Build me a growth plan: what to post, how often, who to reply to, and which format to repeat, based on my last 90 days. My goal is [followers, leads, or a launch date] if I have one.",
19
+ "sampleKind": "recap",
20
+ "starter": true
21
+ }
@@ -0,0 +1,17 @@
1
+ # Growth Plan Builder
2
+
3
+ A multi-week plan tied to the account's real numbers: cadence, a reply target, and the format to repeat.
4
+
5
+ ```bash
6
+ SINCE=$(date -u -v-90d +"%Y-%m-%dT00:00:00Z" 2>/dev/null || date -u -d "90 days ago" +"%Y-%m-%dT00:00:00Z")
7
+ superx posts:analytics --since "$SINCE"
8
+ superx posts:list --type posts --sort likes --since "$SINCE" --limit 25
9
+ superx replies:list --limit 25
10
+ superx queue:get
11
+ ```
12
+
13
+ Read the growth strategy guide (`references/growth-strategy.md`) before writing the plan: the numbers say what happened, the strategy guide says what to do about it.
14
+
15
+ MCP: `get_account_overview` -> `get_post_analytics` -> `get_my_replies` -> `get_queue_settings`
16
+
17
+ Stops at: the written plan. Reads only, no AI credits. Nothing is scheduled by this skill.
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "Instant Lead Hunt",
3
+ "category": "leads-prospecting",
4
+ "order": 20,
5
+ "subtitle": "Search X live for people matching the audience you describe, scored.",
6
+ "summary": "Runs a live search for people posting about your keywords right now, scores each against the audience you describe, and returns the best matches in chat with the post that surfaced them. Their current activity is not verified, so check the top few before you reach out.",
7
+ "howToAsk": [
8
+ "Find people complaining about [problem]",
9
+ "Find me leads talking about [topic]."
10
+ ],
11
+ "provide": "one sentence on what you sell, 2-3 keywords, and a one-line description of who you want to reach.",
12
+ "get": "up to 30 scored leads with the matching post, how recent it is, and the reasoning.",
13
+ "chips": [
14
+ "1+ AI credit per hunt",
15
+ "Counts toward daily lead searches",
16
+ "One-off search, saves nothing"
17
+ ],
18
+ "launchPrompt": "Run a live lead hunt: I sell [what you sell]. Find people posting about [your keywords] in the last [7 or 30] days, score them against [who you want to reach], and explain why each one matched.",
19
+ "sampleKind": "leads",
20
+ "starter": true
21
+ }
@@ -0,0 +1,14 @@
1
+ # Instant Lead Hunt
2
+
3
+ A live search of X right now for people matching the audience described, scored, saving nothing.
4
+
5
+ ```bash
6
+ superx signals:suggest-keywords --icp "<who you want to reach>"
7
+ superx signals:search --offer "<one sentence on what is being sold>" --keywords "<phrase>,<phrase>" --icp "<who you want to reach>" --max 30 --max-age-days 7
8
+ ```
9
+
10
+ The search creates no agent and stores no leads, so keep what the person needs from that one response. `--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.
11
+
12
+ MCP: `suggest_keywords` -> `search_leads`
13
+
14
+ 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.
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "Lead Review",
3
+ "category": "leads-prospecting",
4
+ "order": 40,
5
+ "subtitle": "The leads your agents found, prioritized, with the top few activity-checked.",
6
+ "summary": "Pulls the latest leads your signal agents deposited, explains why each matched, and live-checks the top few to confirm they're actually active before you spend time on them. If no agent has found anything yet, it tells you what to set up first.",
7
+ "howToAsk": [
8
+ "Show me my latest leads",
9
+ "Which of my leads are worth contacting first?"
10
+ ],
11
+ "provide": "nothing; optionally one agent.",
12
+ "get": "scored leads with match reasons, top candidates activity-checked, and your fit or not-fit verdicts recorded to train the scorer.",
13
+ "chips": [
14
+ "No extra cost",
15
+ "Needs a signal agent running",
16
+ "Activity check uses live lookups"
17
+ ],
18
+ "launchPrompt": "Check whether my signal agents have found any leads yet. If there are some, explain why each matched and verify the top 3 are still active before I reach out. If there are none, tell me what I need to set up first.",
19
+ "sampleKind": "leads"
20
+ }
@@ -0,0 +1,16 @@
1
+ # Lead Review
2
+
3
+ The leads the agents found, prioritized, with the top few activity-checked.
4
+
5
+ ```bash
6
+ superx signals:agents
7
+ superx signals:leads --agent <agent-id> --deposited false --limit 25
8
+ superx x:user-posts <lead-handle> --no-reposts --limit 10
9
+ superx signals:feedback <lead-id> --fit
10
+ ```
11
+
12
+ The feedback id is the numeric LEAD id, not an X user id, and it trains the scorer: ask the person for the verdict rather than inferring one.
13
+
14
+ MCP: `list_signal_agents` -> `get_signal_leads` -> `get_x_user_posts` -> `set_lead_feedback`
15
+
16
+ Stops at: the prioritized list plus recorded verdicts. Reads plus one small write; the activity check spends the shared 300-a-day `x:*` allowance.
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "My Content Export",
3
+ "category": "audience-data",
4
+ "order": 30,
5
+ "subtitle": "Your own posts or replies, as a spreadsheet.",
6
+ "summary": "Exports your own posts or the replies you've sent as a downloadable spreadsheet. Raw rows for you to slice yourself, with none of the analysis My Replies Report does. Small exports finish immediately.",
7
+ "howToAsk": [
8
+ "Export all my replies",
9
+ "Download my posts from the last month."
10
+ ],
11
+ "provide": "posts or replies; optionally a time window.",
12
+ "get": "a downloadable dataset of your own content.",
13
+ "chips": [
14
+ "No extra cost",
15
+ "10 dataset ops per day",
16
+ "Small exports are instant"
17
+ ],
18
+ "launchPrompt": "Export my posts from the last 30 days as a download I can open in a spreadsheet.",
19
+ "sampleKind": "dataset",
20
+ "starter": true
21
+ }
@@ -0,0 +1,15 @@
1
+ # My Content Export
2
+
3
+ The account's own posts or replies, as a spreadsheet.
4
+
5
+ ```bash
6
+ superx datasets:collect --source my_posts --since-days 90 --sort likes --max-rows 200 --wait
7
+ superx datasets:get <dataset-id>
8
+ superx datasets:export <dataset-id> --out my-content.csv
9
+ ```
10
+
11
+ `--source my_replies` does the same for replies. Small exports finish instantly.
12
+
13
+ MCP: `collect_audience` -> `get_dataset`
14
+
15
+ 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.
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "My Replies Report",
3
+ "category": "replies-engagement",
4
+ "order": 30,
5
+ "subtitle": "Which of your replies actually earn attention.",
6
+ "summary": "Ranks your recent replies by performance and tells you which kinds of replies are worth your time. Reads up to 25 of your replies in chat.",
7
+ "howToAsk": [
8
+ "How are my replies performing?",
9
+ "Which replies worked?"
10
+ ],
11
+ "provide": "nothing.",
12
+ "get": "your best replies with numbers and a pattern read on what to do more.",
13
+ "chips": [
14
+ "No extra cost",
15
+ "Up to 25 replies in chat"
16
+ ],
17
+ "launchPrompt": "Review my sent replies, show the best performers, and tell me what pattern is working.",
18
+ "sampleKind": "recap",
19
+ "starter": true
20
+ }
@@ -0,0 +1,13 @@
1
+ # My Replies Report
2
+
3
+ Which of the account's replies actually earned attention, and the pattern behind them.
4
+
5
+ ```bash
6
+ superx replies:list --limit 25
7
+ ```
8
+
9
+ Page-one rows can carry `metrics_pending`: replies sent from the app in the last 4 hours have no numbers yet, so leave them out of the ranking.
10
+
11
+ MCP: `get_my_replies`
12
+
13
+ Stops at: the ranked list plus a pattern read. Reads only, no AI credits.
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "Post Post-Mortem",
3
+ "category": "analytics-insights",
4
+ "order": 10,
5
+ "subtitle": "Why a post overperformed or flopped, in plain terms.",
6
+ "summary": "Pulls a post's impressions, likes, replies and reposts, compares them to your baseline, and explains the result through concrete growth levers (hook, format, timing), ending with what to repeat or avoid. No link needed: it can pick your most recent post that already has numbers.",
7
+ "howToAsk": [
8
+ "Why did this post do so well?",
9
+ "Why did this flop?"
10
+ ],
11
+ "provide": "nothing, or a specific post.",
12
+ "get": "the numbers vs your baseline and a lever-by-lever explanation.",
13
+ "chips": [
14
+ "No extra cost",
15
+ "Very fresh posts have no metrics yet"
16
+ ],
17
+ "launchPrompt": "Pick my most recent post that already has numbers and do a post-mortem on it: how it did against my baseline, why it performed that way, and what to repeat. If my analytics are still syncing, tell me and use my recent posts instead.",
18
+ "sampleKind": "recap",
19
+ "starter": true
20
+ }
@@ -0,0 +1,16 @@
1
+ # Post Post-Mortem
2
+
3
+ Why one post overperformed or flopped, measured against the account's own baseline.
4
+
5
+ ```bash
6
+ SINCE=$(date -u -v-30d +"%Y-%m-%dT00:00:00Z" 2>/dev/null || date -u -d "30 days ago" +"%Y-%m-%dT00:00:00Z")
7
+ superx posts:list --sort posted_at --since "$SINCE" --limit 25
8
+ superx posts:analytics --since "$SINCE"
9
+ superx x:user-posts <peer-handle> --no-reposts --limit 20
10
+ ```
11
+
12
+ The third call is optional: use it only when the person names a peer account to compare against.
13
+
14
+ MCP: `get_post_analytics` -> `get_account_overview` -> `get_x_user_posts`
15
+
16
+ Stops at: the explanation in chat. Reads only. The live lookup draws on the shared 300-a-day allowance for `x:*`.
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "Profile Research Briefs",
3
+ "category": "outreach-dms",
4
+ "order": 20,
5
+ "subtitle": "Structured briefs on any list of people, exportable as CSV.",
6
+ "summary": "Researches up to 25 people (a contact list, your signal-agent leads, a dataset you already collected, or pasted handles) into structured briefs: what they do, what they're building, recent topics, hooks quoting their real posts, and an opener angle. Saved as a dataset you can download.",
7
+ "howToAsk": [
8
+ "Research everyone in my [list] and give me a breakdown",
9
+ "Build briefs on these handles: ..."
10
+ ],
11
+ "provide": "the list, agent, dataset, or handles; optionally a research focus.",
12
+ "get": "briefs in chat plus a CSV/XLSX download.",
13
+ "chips": [
14
+ "1 credit per person, unresearched refunded",
15
+ "Max 25",
16
+ "Big runs finish in the background",
17
+ "10 background runs per day"
18
+ ],
19
+ "launchPrompt": "Research these people into outreach briefs with hooks from their real posts, then give me the export when it is done. Use these handles: [paste @handles], or my latest signal-agent leads if I have any. Tell me the credit cost before you start.",
20
+ "sampleKind": "dataset"
21
+ }
@@ -0,0 +1,15 @@
1
+ # Profile Research Briefs
2
+
3
+ Structured briefs on a list of people, exportable as CSV.
4
+
5
+ ```bash
6
+ superx datasets:research --handles "<handle>,<handle>" --max 25 --focus "<what to look for>" --title "<briefs title>" --wait
7
+ superx datasets:rows <dataset-id> --limit 25
8
+ superx datasets:export <dataset-id> --out briefs.csv
9
+ ```
10
+
11
+ Over 5 profiles the run goes to the background, so never quote a brief count from a `collecting` result: pass `--wait` or poll `datasets:get`.
12
+
13
+ MCP: `research_profiles` -> `get_dataset` -> `get_dataset_rows`
14
+
15
+ 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.
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "Queue Reshuffle",
3
+ "category": "content-posting",
4
+ "order": 70,
5
+ "subtitle": "Move and rewrite scheduled posts by just asking.",
6
+ "summary": "Reads your scheduled queue and moves or rewrites posts conversationally (\"push the 9am to tomorrow\", \"make Thursday's punchier\"). Every change is an approval card; nothing moves without you.",
7
+ "howToAsk": [
8
+ "Move my 9am post to tomorrow",
9
+ "Rewrite Thursday's post."
10
+ ],
11
+ "provide": "which post and what to change.",
12
+ "get": "current vs proposed on a card, one card per change.",
13
+ "chips": [
14
+ "No extra cost",
15
+ "Changes need your approval",
16
+ "Active account, up to 25 posts",
17
+ "Can't delete posts"
18
+ ],
19
+ "launchPrompt": "Show my scheduled posts and flag any that should move to a better time or need a punchier hook, then propose the changes.",
20
+ "sampleKind": "drafts"
21
+ }
@@ -0,0 +1,15 @@
1
+ # Queue Reshuffle
2
+
3
+ Move and rewrite scheduled posts by asking, up to 500 in one transaction.
4
+
5
+ ```bash
6
+ superx scheduled:list --status scheduled --limit 100
7
+ superx scheduled:bulk-retime --moves-json '[{"id":"<post-id>","scheduled_for":"<UTC ISO-8601 with Z>"}]'
8
+ superx scheduled:update <post-id> --text "<new wording>"
9
+ ```
10
+
11
+ `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_key`s to keep them.
12
+
13
+ MCP: `get_scheduled_posts` -> `bulk_retime_scheduled_posts` -> `update_scheduled_post`
14
+
15
+ Stops at: the retimed queue, one confirmation per change. No AI credits.
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "Reply Sprint",
3
+ "category": "replies-engagement",
4
+ "order": 10,
5
+ "subtitle": "The replies your posts got, each with a ready-to-send draft.",
6
+ "summary": "Pulls the recent replies your posts received, picks up to 5 worth answering, and drafts a reply for each on its own send-ready card. If your posts have no replies yet, it says so instead of inventing any.",
7
+ "howToAsk": [
8
+ "Help me reply to my recent replies",
9
+ "Draft replies to the comments on my posts."
10
+ ],
11
+ "provide": "nothing; optionally how many.",
12
+ "get": "up to 5 recent replies with context and one drafted reply per card.",
13
+ "chips": [
14
+ "No extra cost",
15
+ "You send each reply"
16
+ ],
17
+ "launchPrompt": "Show the replies my posts got recently, pick up to 5 worth answering, and draft a reply for each one I can send.",
18
+ "sampleKind": "reply",
19
+ "starter": true
20
+ }
@@ -0,0 +1,12 @@
1
+ # Reply Sprint
2
+
3
+ The replies the account's posts got, each with a ready-to-post draft.
4
+
5
+ ```bash
6
+ superx replies:received --sort recent --limit 5
7
+ superx engage:reply-draft --text "<the reply's text>" --handle "<their handle, no @>" --thoughts "<what to convey>" --tone concise
8
+ ```
9
+
10
+ MCP: `get_audience_replies` -> `draft_reply`
11
+
12
+ 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).
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "Reply to Any Post",
3
+ "category": "replies-engagement",
4
+ "order": 20,
5
+ "subtitle": "Paste any post, get the context and a strong reply.",
6
+ "summary": "Reads any public post live (author, engagement, and the top replies by likes so you don't repeat them), then drafts a reply that adds something the thread doesn't already have.",
7
+ "howToAsk": [
8
+ "Help me reply to this: [link]",
9
+ "Draft a reply to this post."
10
+ ],
11
+ "provide": "the post link.",
12
+ "get": "post context, what the top replies already said, one strong reply draft.",
13
+ "chips": [
14
+ "No extra cost",
15
+ "Live lookup",
16
+ "You send each reply"
17
+ ],
18
+ "launchPrompt": "Help me write a strong reply to this post (check what the top replies already said first): [paste link]",
19
+ "sampleKind": "reply"
20
+ }
@@ -0,0 +1,15 @@
1
+ # Reply to Any Post
2
+
3
+ Any post's context, what its top replies already said, and one strong reply draft.
4
+
5
+ ```bash
6
+ superx x:post <post-url-or-id>
7
+ superx x:replies <post-url-or-id> --limit 20
8
+ superx engage:reply-draft --post <post-id> --thoughts "<what to convey>" --tone engaging
9
+ ```
10
+
11
+ `x:replies` is a sample of the best-liked direct replies, not every reply, and it does not exclude the author's own.
12
+
13
+ MCP: `lookup_x_post` -> `get_x_post_replies` -> `draft_reply`
14
+
15
+ 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).
@@ -0,0 +1,21 @@
1
+ {
2
+ "name": "Reply-to-DM Campaign",
3
+ "category": "outreach-dms",
4
+ "order": 30,
5
+ "subtitle": "DM the people who replied to any of your posts.",
6
+ "summary": "Collects everyone who replied to your post (optionally only those who said a keyword like \"interested\"), keeps the ones with open DMs, and queues a templated DM campaign you approve on a card with a day-by-day sending plan. Ask for supporters only and it reads what each person wrote and keeps the genuinely supportive replies, which uses one more dataset op and a small AI cost. Past 100 recipients the campaign takes the first 100 in dataset order.",
7
+ "howToAsk": [
8
+ "DM everyone who replied [keyword] to my post",
9
+ "Send my link to everyone who commented.",
10
+ "DM only the supportive repliers."
11
+ ],
12
+ "provide": "the post link, optional keyword, your message ([name] fills in).",
13
+ "get": "the collected audience, then an approval card with recipients and schedule.",
14
+ "chips": [
15
+ "Max 100 per campaign",
16
+ "10 dataset ops per day",
17
+ "You approve before anything sends"
18
+ ],
19
+ "launchPrompt": "Collect everyone who replied to this post: [paste link]. Keep only the people who have DMs open (and only those who said [keyword], or drop that filter if I left it blank), then set up a DM campaign for my review with this message: [paste your message]. Keep the token [name] wherever their name should appear. If I say supporters only, read what each person wrote and keep only the genuinely supportive replies, and tell me how many were too unclear to judge.",
20
+ "sampleKind": "dmReview"
21
+ }