Skip to content
Back to skills

Engage

ASecurity

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.

  • 3 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added May 26, 2026
content-marketingjavascriptgojavaapi

Works with

  • cli
  • api
  • mcp

Security analysis

A100/100

Scanned May 27, 2026

npx -y skills add Epistates/sparX --skill engage --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Engage?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Engage
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/epistates-engage/badge)](https://www.skillsdirectory.com/skills/epistates-engage)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: engage
description: 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.
argument-hint: "[post URL to engage on, or 'notifications' for recent mentions]"
allowed-tools: mcp__claude-in-chrome__tabs_context_mcp, mcp__claude-in-chrome__tabs_create_mcp, mcp__claude-in-chrome__navigate, mcp__claude-in-chrome__read_page, mcp__claude-in-chrome__find, mcp__claude-in-chrome__form_input, mcp__claude-in-chrome__computer, mcp__claude-in-chrome__javascript_tool, mcp__claude-in-chrome__get_page_text, AskUserQuestion, Read, Grep, Glob
---

# 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:**

1. Scroll through the replies section below the post:
```
mcp__claude-in-chrome__get_page_text(tabId: <tab>)
```

2. 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>)
```

3. 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:**

1. Read the notifications:
```
mcp__claude-in-chrome__get_page_text(tabId: <tab>)
```

2. Identify which notifications are replies to your posts (vs. likes, follows, etc.)

3. 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:
>
> 1. **[Username]**: "[Reply preview]" — [why this is high priority]
> 2. **[Username]**: "[Reply preview]" — [why]
> ...

### Step 5 — Draft Replies

For each high-priority comment, draft a reply that:

1. **Adds value beyond "thanks"** — The algorithm weights substantive replies higher
2. **Extends the conversation** — Ask a follow-up question to encourage another reply
3. **Is concise** — 1-3 sentences max for replies
4. **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:

1. 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>)
```

2. Wait for reply compose to open:
```
mcp__claude-in-chrome__computer(action: "wait", duration: 1, tabId: <tab>)
```

3. Type the reply:
```
mcp__claude-in-chrome__computer(action: "type", text: "<reply_content>", tabId: <tab>)
```

4. Take a screenshot for verification:
```
mcp__claude-in-chrome__computer(action: "screenshot", tabId: <tab>)
```

5. 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.

6. 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>)
```

7. 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:

1. Ask: "Want me to find posts in your niche to engage with? This warms up the algorithm before your next post."

2. If yes, search for relevant posts:
```
mcp__claude-in-chrome__navigate(url: "https://x.com/search?q=[niche_topic]&f=live", tabId: <tab>)
```

3. Find posts with active engagement that the user could add value to.

4. Draft thoughtful replies (no self-promotion — genuine value only).

5. Present for approval and post as in Step 6.

### Step 8 — Summary

After the engagement session, summarize:

1. **Replies posted**: [N] replies across [N] posts
2. **Conversation threads created**: [N] (each = 75–150× multiplier)
3. **Estimated impact**: Based on reply count and conversation depth
4. **Pending**: Any comments you skipped that might be worth revisiting
5. **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 `/engage` again without dry-run to post the approved drafts

## Critical Rules

1. **NEVER post a reply without explicit user confirmation.** Always show the draft and ask first.
2. **NEVER handle authentication.** If not logged in, tell the user to log in manually.
3. **Quality over speed.** A thoughtful reply that extends conversation is worth 100 "thanks!" replies.
4. **No self-promotion in replies.** Replies to others' posts should add genuine value — no links to your stuff unless directly asked.
5. **Stay on-topic.** Only engage with content in the user's niche.
6. **If rate-limited or blocked by X**, stop immediately and inform the user.
7. **Respect boundaries.** If a user indicates they don't want engagement, respect that.
8. **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 `find` for "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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.