Skip to content
Automation
Skill

/x-presence

Run an unattended X/Twitter presence — watch topics and mentions in real time, draft posts and replies in the user's own voice, publish original posts on a schedule, and hold replies for a one-tap approval. Trigger whenever the user wants to automate their X/Twitter account,

From plugin
twitr-skills
86 skills

Claude Code

$ npx -y skills add lnvestor/twitr-skills --skill x-presence --agent claude-code

SKILL.md

x-presence.SKILL.md
name: x-presence
description: Run an unattended X/Twitter presence — watch topics and mentions in real time, draft posts and replies in the user's own voice, publish original posts on a schedule, and hold replies for a one-tap approval. Trigger whenever the user wants to automate their X/Twitter account, grow an audience on X, schedule or draft tweets, set up an X routine or cron job, get alerted about topics or mentions on X, or run an X agent in the background — including casual phrasings like "post for me on X" or "keep an eye on Twitter for me". Works in Claude Code routines, Hermes cron, and OpenClaw cron. Paid per call in USDC via twitr.sh through an x402 wallet — no API key, no signup. Do NOT trigger for reading a single tweet or profile (use x-twitter-data), for bulk dataset exports (use x-twitter-research), or for non-X platforms.
license: MIT
compatibility: Requires network access and an x402/MPP payment client (AgentCash MCP recommended). Needs a connected X account for publishing. Scheduling is optional and runs on the user's own account or machine.
metadata:
  author: twitr.sh
  version: "1.0"

X presence — unattended posting, listening, and reply drafting

| Task | Approach | |---|---| | **First-time setup** | Follow **Setup** below in order. Do not skip the profile step — every draft depends on it. | | **Run one cycle now** | Jump to **The cycle**. Safe to run any time; it is idempotent. | | **Schedule it** | See `references/scheduling.md` — verified commands for Claude routines, Hermes, OpenClaw. | | **Approve queued replies** | Read `.twitr/pending.md`, confirm with the user, then post per **step 5**. | | **Change voice or topics** | Edit `.twitr/profile.json`; nothing else needs touching. |

> Every call is paid per request from the user's wallet. **State the cost before any batch, > and confirm before anything over $1.** Reads are free; a reply is $0.036.

What this skill will not do

These are prohibited by X's automation rules, so the tools are simply absent from the loop — not merely discouraged. If the user asks for them, explain why rather than complying:

  • **No automated following or unfollowing.** X bans automated following that is "bulk,

aggressive, or indiscriminate", and applications that claim to get users more followers are prohibited outright. The 400/day figure is a technical cap, not permission.

  • **No automated liking.** "You may not like posts... in an automated manner."
  • **No keyword-triggered auto-replies.** Banned by explicit example.
  • **No near-duplicate posting.** Same text across posts or accounts is spam.

This isn't only compliance. In X's published ranking weights, follows aren't scored at all and a like scores 0.5, while a single report scores −369.0. The banned tactics cost reach. See `references/ranking-signals.md`.

Setup

Run these once, in order. Report the cost of step 4 before running it.

**1. Payment.** Confirm the user has an x402 wallet available — AgentCash MCP is easiest, and in Claude routines its traffic is proxied so no domain allowlisting is needed. If absent, stop and tell them to connect one; nothing here works without it.

**2. Voice profile.** Interview the user, then write `.twitr/profile.json`. Ask about tone, an account whose style they like, and what they never want to say. Keep it local — never send this file anywhere.

{
  "handle": "myhandle",
  "topics": ["x402", "agent payments"],
  "voice": {
    "tone": "direct, dry, technical — no hype, no emoji",
    "styleUsername": "account_whose_voice_they_like",
    "doNotSay": ["game-changer", "🚀"]
  },
  "goal": "be known for practical agent-payment writing",
  "caps": { "repliesPerDay": 10, "postsPerDay": 2 },
  "monitors": {}
}

**3. Connect the X account** — free, wallet-signed, and **you never handle the password**. Mint a link, give it to the user, wait.

POST https://twitr.sh/api/x-accounts/start   {"username"}   → {connect_url, expires_in}
GET  https://twitr.sh/api/x-accounts                        → poll until "linked"

Show the user `connect_url` and say: *open this in your browser and sign in to X there.* They enter their password on twitr.sh, in their own browser; it never passes through you. The link is single-use and expires in 15 minutes — mint a fresh one if it lapses.

> **Never ask the user for their X password, email, or 2FA secret — and never accept one if > they offer it.** If a user pastes a credential into the chat, tell them not to, and send them > the link instead. There is no endpoint on this skill that takes a password.

**4. Create the listeners** — one per topic plus one for mentions. ~$4.20 per monitor per week. **Tell the user the total first.**

POST https://twitr.sh/api/tools/x_monitor
Idempotency-Key: <uuid>
{ "action": "create", "query": "x402", "hours": 168 }
{ "action": "create", "query": "@myhandle", "hours": 168 }

Save each returned `monitor_id` into `profile.json` → `monitors`. Monitors need a recoverable owner wallet, so pay on **Base or Tempo, not Solana**.

The cycle

One pass, then stop. Scheduling is what repeats it — never loop in-session.

**1. Read new events** (free)

GET https://twitr.sh/api/monitors/{id}/events?after={last_event_id}

`after` comes from `.twitr/state.json`. Events are returned oldest-first; the last id you process becomes the new cursor. A `monitor.expired` event means the monitor ended — tell the user it needs extending and stop.

**2. Shortlist** — at most `caps.repliesPerDay`. Priority: direct mentions, then genuine questions in-topic where the user actually knows the answer. Skip anything on `doNotSay` territory, anything political, anything already in `state.json.replied`, and anything older than ~12 hours (late replies read as automated).

**3. Draft** (~$0.001 each — draft freely, keep the best)

POST https://twitr.sh/api/tools/compose
{ "step": "generate", "topic": "<what you're answering + your angle>",
  "goal": "<profile.goal>"
Read more
@lnvestor
Ships withtwitr-skills

**Six installable X/Twitter skills for Claude Code, Cursor, OpenClaw and Hermes — paid per call in USDC. No X developer account, no API keys, no OAuth, no signup, no subscription.**

Stars on GitHub

Momentum

stars in total
8
Star history of lnvestor/twitr-skills on GitHub, a chart by star-history.com

Other skills on twitr-skills.

twitter-automation

twitter-automation

Build and run Twitter/X automations end-to-end — the user describes what they want in plain English and this skill designs it,…

x-twitter-data

x-twitter-data

Read live X/Twitter data — a single tweet or profile, tweet and user search with the full operator set, user timelines, replies,…

x-twitter-monitor

x-twitter-monitor

Watch an X/Twitter account or keyword in real time and receive events the moment they happen — new posts, replies, reposts,…

x-twitter-publish

x-twitter-publish

Publish to X/Twitter through an account the user connects once — draft and score post text with AI, then post, reply, quote,…

x-twitter-research

x-twitter-research

Export bulk X/Twitter datasets as downloadable files — follower and following lists, everyone who replied to or reposted or…

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n2w209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about x-presence.

Which coding agents can use x-presence?
x-presence installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.