Engage
Phoenix-powered X/Twitter content engine for Claude Code: draft, optimize, score, post, engage, and analyze using real 2026 algorithm weights. No APIs needed.
npx -y skills add Epistates/sparX --skill engageAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Manage replies and conversations on X via browser automation. Surfaces comments worth replying to, drafts optimized replies, and posts them with your approval. Activates the 75-150x conversation velocity multiplier. Requires claude-in-chrome.
SKILL.md
10.1 KB, as published. Nobody here has run it
Engage — Conversation Velocity via Browser
Manage replies on your X posts to activate the 75–150× author reply conversation multiplier. This skill surfaces comments worth replying to, drafts high-quality replies, and posts them with your approval.
Why this matters: Author replies to comments create conversation threads — the single highest-weight signal in the Phoenix algorithm at 75–150× a like. A post with 5 author reply threads massively outperforms one with none.
Input
The user provides one of:
- A post URL — engage with replies on that specific post
- "notifications" — review recent mentions and replies across all posts
- "replies" — same as notifications, focused on reply tab
- Nothing — defaults to notifications
Process
Step 1 — Get Browser Context
mcp__claude-in-chrome__tabs_context_mcp(createIfEmpty: true)
Step 2 — Navigate
For a specific post:
mcp__claude-in-chrome__navigate(url: "<post_url>", tabId: <tab>)
mcp__claude-in-chrome__computer(action: "wait", duration: 3, tabId: <tab>)
For notifications:
mcp__claude-in-chrome__navigate(url: "https://x.com/notifications", tabId: <tab>)
mcp__claude-in-chrome__computer(action: "wait", duration: 3, tabId: <tab>)
Take a screenshot to verify state:
mcp__claude-in-chrome__computer(action: "screenshot", tabId: <tab>)
If not logged in, stop and tell the user to log in manually.
Step 3 — Collect Comments / Mentions
On a specific post:
- Scroll through the replies section below the post:
mcp__claude-in-chrome__get_page_text(tabId: <tab>)
- Use JavaScript to extract reply content:
mcp__claude-in-chrome__javascript_tool(action: "javascript_exec", text: "
const articles = document.querySelectorAll('article');
const replies = Array.from(articles).slice(1).map((article, i) => {
const text = article.innerText;
const ariaLabels = Array.from(article.querySelectorAll('[aria-label]'))
.map(el => el.getAttribute('aria-label'));
return { index: i, text: text.substring(0, 300), meta: ariaLabels.slice(0, 5) };
});
JSON.stringify(replies.slice(0, 15), null, 2);
", tabId: <tab>)
- Scroll to load more replies if needed:
mcp__claude-in-chrome__computer(action: "scroll", coordinate: [640, 400], scroll_direction: "down", scroll_amount: 5, tabId: <tab>)
mcp__claude-in-chrome__computer(action: "wait", duration: 2, tabId: <tab>)
On notifications page:
- Read the notifications:
mcp__claude-in-chrome__get_page_text(tabId: <tab>)
-
Identify which notifications are replies to your posts (vs. likes, follows, etc.)
-
Filter for actionable notifications:
- Replies to your posts (highest priority — reply to create conversation)
- Quote tweets of your posts (reply to amplify)
- Mentions in others' posts (engage if relevant)
Step 4 — Prioritize Comments for Reply
Categorize each comment by reply value:
High Priority (reply immediately):
- Genuine questions about your content
- Substantive disagreements or alternative perspectives
- Replies from accounts with larger followings (amplification potential)
- Comments that add valuable context (quote-tweet candidates)
- First few replies on a fresh post (within the 30-90 min critical window)
Medium Priority (reply when time allows):
- Agreement with additional insight ("exactly, and also...")
- Personal experience sharing
- Feature requests or suggestions (if relevant to your product)
Low Priority (optional):
- Simple agreement ("great post!", "so true")
- Off-topic replies
- Spam or bot replies
Present the prioritized list to the user:
Found [N] replies. Here are the ones worth responding to, ranked by conversation velocity impact:
- [Username]: "[Reply preview]" — [why this is high priority]
- [Username]: "[Reply preview]" — [why] ...
Step 5 — Draft Replies
For each high-priority comment, draft a reply that:
- Adds value beyond "thanks" — The algorithm weights substantive replies higher
- Extends the conversation — Ask a follow-up question to encourage another reply
- Is concise — 1-3 sentences max for replies
- Maintains the author's voice — Match the tone of the original post
Reply templates by comment type:
| Comment Type | Reply Strategy |
|---|---|
| Question | Direct answer + "curious, have you tried [related thing]?" |
| Disagreement | Acknowledge the point + share your reasoning + "what's your experience with [specific]?" |
| Personal experience | Validate + relate to your own experience + ask for detail |
| Feature request | Thanks + honest status/timeline + "what's the use case?" |
| Added context | Amplify their point + tag relevant people if appropriate |
Present drafted replies using AskUserQuestion for each high-priority comment:
AskUserQuestion:
"Replying to @username:
They said: \"[their comment]\"
My draft: \"[your drafted reply]\"
✅ 'post' — send this reply
✏️ Reply with changes — I'll revise (e.g., 'make it shorter', 'add a question')
⏭️ 'skip' — skip this one
❌ 'stop' — done replying for now"
Handle the response:
- "post" / "yes" / "send it" → Proceed to post this reply (Step 6)
- User requests changes (e.g., "more casual", "ask about their setup") → Revise the draft and present again. Loop until approved or skipped.
- "skip" → Move to the next comment
- "stop" / "done" → End the engagement session, skip to summary
Step 6 — Post Approved Replies
For each approved reply:
- Navigate to the comment (if on notifications, click through to the post):
mcp__claude-in-chrome__find(query: "reply button for this comment", tabId: <tab>)
mcp__claude-in-chrome__computer(action: "left_click", ref: "<ref_id>", tabId: <tab>)
- Wait for reply compose to open:
mcp__claude-in-chrome__computer(action: "wait", duration: 1, tabId: <tab>)
- Type the reply:
mcp__claude-in-chrome__computer(action: "type", text: "<reply_content>", tabId: <tab>)
- Take a screenshot for verification:
mcp__claude-in-chrome__computer(action: "screenshot", tabId: <tab>)
-
The user already approved this reply in Step 5's review loop, so proceed to post. If the screenshot shows something unexpected (wrong reply box, different content), pause and re-confirm.
-
After confirmation, click the Reply button:
mcp__claude-in-chrome__find(query: "reply post button or submit reply button", tabId: <tab>)
mcp__claude-in-chrome__computer(action: "left_click", ref: "<ref_id>", tabId: <tab>)
- Wait for the reply to post:
mcp__claude-in-chrome__computer(action: "wait", duration: 2, tabId: <tab>)
Step 7 — Reply Farming (Optional)
If the user wants to build visibility before posting their own content:
-
Ask: "Want me to find posts in your niche to engage with? This warms up the algorithm before your next post."
-
If yes, search for relevant posts:
mcp__claude-in-chrome__navigate(url: "https://x.com/search?q=[niche_topic]&f=live", tabId: <tab>)
-
Find posts with active engagement that the user could add value to.
-
Draft thoughtful replies (no self-promotion — genuine value only).
-
Present for approval and post as in Step 6.
Step 8 — Summary
After the engagement session, summarize:
- Replies posted: [N] replies across [N] posts
- Conversation threads created: [N] (each = 75–150× multiplier)
- Estimated impact: Based on reply count and conversation depth
- Pending: Any comments you skipped that might be worth revisiting
- Time spent: Help the user calibrate their daily engagement routine
Rate Limiting
- Wait 3-5 seconds between posting each reply — rapid-fire replies look automated
- Maximum 10 replies per /engage session — stop and summarize after 10
- If X shows a rate limit or error, screenshot it, inform the user, and stop immediately
Dry-Run Mode
If the user says "dry run" or "just draft":
- Read comments, prioritize, draft replies — but do not open any reply boxes or post anything
- Present all drafted replies at once for review
- The user can then run
/engageagain without dry-run to post the approved drafts
Critical Rules
- NEVER post a reply without explicit user confirmation. Always show the draft and ask first.
- NEVER handle authentication. If not logged in, tell the user to log in manually.
- Quality over speed. A thoughtful reply that extends conversation is worth 100 "thanks!" replies.
- No self-promotion in replies. Replies to others' posts should add genuine value — no links to your stuff unless directly asked.
- Stay on-topic. Only engage with content in the user's niche.
- If rate-limited or blocked by X, stop immediately and inform the user.
- Respect boundaries. If a user indicates they don't want engagement, respect that.
- X may detect automation. Space replies naturally. If X presents a CAPTCHA or challenge, stop and inform the user.
Troubleshooting
- Reply button not found: Try clicking on the comment/post first to expand it, then look for the reply icon
- Can't type in reply box: Click directly on the text area, try using
findfor "reply text input" - Notifications not loading: Try refreshing the page or navigating to
x.com/notifications/mentions - Too many notifications: Focus on the most recent 10-15, prioritize replies to your own posts