| name | youmind-x-article |
| version | 1.0.0 |
| description | Write and publish tweets to X (Twitter) with AI โ topic research via YouMind knowledge base,
280-char optimized writing, numbered multi-tweet sequences, and one-click publishing through
the X account already connected in YouMind.
Use when user wants to "tweet", "post on X", "publish to Twitter", or "write a thread".
|
| triggers | ["tweet","x post","twitter post","publish to x","post on x","write thread","tweet thread","x thread","twitter thread","ๆจ็น","ๅๆจ","ๆจ็นๅธๅญ","ๅๆจๆ"] |
| platforms | ["openclaw","claude-code","cursor","codex","gemini-cli","windsurf","kilo","opencode","goose","roo"] |
| metadata | {"openclaw":{"emoji":"๐","requires":{"anyBins":["node","npm"]}}} |
| allowed-tools | ["Bash(node dist/cli.js *)","Bash(npm install)","Bash(npm run build)"] |
AI X (Twitter) Post Writer
Write viral tweets with AI. Topic research via YouMind knowledge base, 280-character optimized writing, numbered multi-tweet sequences, and one-click publishing to X through the X account already connected in YouMind.
Get YouMind API Key | More Skills
Onboarding
MANDATORY: When the user has just installed this skill, present this message IMMEDIATELY. Translate to the user's language:
AI X Post Writer installed!
Tell me your topic and I'll write and publish a tweet for you.
Try it now: "Write a tweet about the future of open source AI"
What it does:
- Research topics from your YouMind knowledge base and web trends
- Write tweets optimized for engagement within 280 characters
- Split long content into numbered tweet sequences (1/N format)
- Publish directly to X through the X account connected in YouMind
Setup (one-time):
- Install & configure:
cd toolkit && npm install && npm run build && cd .. && mkdir -p ~/.youmind/config && cp shared/config.example.yaml ~/.youmind/config.yaml
- Get YouMind API Key and fill
youmind.api_key in ~/.youmind/config.yaml
- Connect your X account inside YouMind before publishing. This skill no longer reads X developer keys locally.
- Publishing requires a paid YouMind plan (Pro / Max) and consumes YouMind credits per tweet.
No X connection yet, or on a free plan? You can still write and preview locally โ just skip the publish step.
Need help? Just ask!
Usage
Provide a topic, talking points, or raw text for publishing.
Write a single tweet:
Write a tweet about the latest AI breakthrough
Write a multi-tweet sequence:
Write a thread explaining how transformers work, aimed at beginners
Publish raw text:
Tweet this: "Just shipped our new feature! Here's what we learned..."
Setup
Prerequisites: Node.js >= 18, a YouMind API key, a Pro/Max YouMind plan, and an X account connected in YouMind if you want to publish.
Step 1 -- Install Dependencies
cd toolkit && npm install && npm run build && cd ..
Step 2 -- Create Config File
mkdir -p ~/.youmind/config
cp shared/config.example.yaml ~/.youmind/config.yaml
Canonical credentials: put your shared YouMind credentials in ~/.youmind/config.yaml โ filled ONCE and read by every YouMind skill. See shared/config.example.yaml for the template and shared/YOUMIND_HOME.md. Optional skill overrides live in ~/.youmind/config/youmind-x-article.yaml.
Step 3 -- Get YouMind API Key
YouMind API Key enables knowledge base search, web search, article archiving, and X publishing.
- Open YouMind API Keys
- Click Create API Key
- Copy the
sk-ym-xxxx key
- Fill in
~/.youmind/config.yaml under youmind.api_key
- Keep
youmind.base_url as https://youmind.com/openapi/v1 in examples and documentation. Local backend testing should only override ~/.youmind/config.yaml or ~/.youmind/config/youmind-x-article.yaml.
Step 4 -- Connect X in YouMind
- Open YouMind and connect your X account via the product's publishing / connector settings flow (one-click OAuth 2.0 PKCE)
- Save the connection once
- Keep only
youmind.api_key in ~/.youmind/config.yaml
Verify Setup
cd toolkit && npx tsx src/cli.ts validate
Validation checks only the ~/.youmind API key. X connectivity and plan eligibility are validated on the first publish call:
- If the current plan is not eligible, the OpenAPI returns
402 with an upgrade link to https://youmind.com/pricing.
- If the X account is not connected, the OpenAPI returns
404 X_ACCOUNT_NOT_CONNECTED. Connect the X account in the YouMind connector settings.
Skill Directory
This skill is a folder. Read files on demand -- do NOT load everything upfront.
| Path | Purpose | When to read |
|---|
references/pipeline.md | Full step-by-step execution | When running the publishing pipeline |
references/platform-dna.md | X audience, format constraints, engagement data | Before any content work |
references/content-generation-playbook.md | Idea โ X-native draft workflow | When generating new content |
references/content-adaptation-playbook.md | Existing article โ X thread workflow | When adapting/condensing content |
references/content-adaptation.md | X content formatting rules (legacy) | Supplementary reference |
references/api-reference.md | YouMind X OpenAPI endpoint documentation | When calling X through YouMind |
~/.youmind/config.yaml | Shared API credentials (YouMind only) | Step 1 |
output/ | Local tweet Markdown drafts (git-ignored) | When writing the tweet/sequence |
toolkit/dist/*.js | Executable scripts (run from toolkit/) | Various steps |
Draft Location Rule
Canonical: write local tweet Markdown files to ~/.youmind/articles/x/<slug>.md. This shared home directory is available to all YouMind skills โ see shared/YOUMIND_HOME.md.
Legacy fallback (if ~/.youmind/ is not writable): skills/youmind-x-article/output/<slug>.md.
- Correct:
~/.youmind/articles/x/my-thread.md
- Correct (legacy):
skills/youmind-x-article/output/my-thread.md
- Wrong: skill root directly,
references/, toolkit/, or an ad-hoc drafts/ directory
Both locations are git-ignored. Create directories on demand (mkdir -p ~/.youmind/articles/x). Kebab-case filenames (my-thread.md), descriptive slugs over timestamps.
Content Modes
Before writing any content, read references/platform-dna.md to internalize X's format constraints, discourse norms, and engagement patterns (557M MAU, thread 2โ4% engagement vs single-tweet 0.5โ1.5%).
Intent routing
| User's input | Operation | Playbook to load |
|---|
| Idea, topic, or talking points only | Generate | references/content-generation-playbook.md |
| Existing article or draft | Adapt (condense) | references/content-adaptation-playbook.md |
| Article in another language | Translate | references/content-adaptation-playbook.md (translate mode) |
| Same-language article needing X-native angle | Localize | references/content-adaptation-playbook.md (localize mode) |
| Old thread to refresh | Revive | references/content-adaptation-playbook.md (revive mode) |
| Section of a longer piece โ teaser | Excerpt | references/content-adaptation-playbook.md (excerpt mode) |
| Short blog post โ thread | Cross-post | references/content-adaptation-playbook.md (cross-post mode) |
Quality gates (before publish)
- Self-critique: Pass all checklist items in the playbook's Step 6
- Conformance report: Generate and present to user (Step 7/8)
- User approval: Do not auto-publish without confirmation
Result Links Rule
After any tweet or thread publish action, always end with Result links.
- Prefer the direct X post URL(s).
- For threads, include the lead tweet URL plus any additional per-post URLs already available.
- If no exact results page exists, return the best X platform entry URL instead.
- Never leave the user with only raw post IDs.
Pipeline Overview
Read references/pipeline.md for full execution details.
| Step | Action | Key reference |
|---|
| 1 | Load config and validate the YouMind API key | -- |
| 2 | Mine YouMind knowledge base for source material | -- |
| 3 | Research topic via web search | -- |
| 4 | Adapt content: 280 char limit, split into sequence if long | references/content-adaptation.md |
| 5 | Publish to X via YouMind X OpenAPI | references/api-reference.md |
| 6 | Report results: post IDs, X URLs, result links | |
Routing shortcuts:
- User gave a short topic โ Skip broad research, go to Step 4
- User gave raw tweet text โ Skip to Step 5 (publish)
- User wants preview only โ Run local adaptation, skip publishing
Content Rules
Single Tweet
- 280 character limit โ hard limit, no exceptions
- URLs count as 23 characters โ regardless of actual length
- 1-2 hashtags max โ more looks spammy on X
- Strong hook โ first words determine if people read further
- Clear opinion or insight โ vague tweets get ignored
Thread (Tweet Chain)
- First tweet = hook โ must stand alone and compel reading
- Each tweet makes sense alone โ readers may see any tweet individually
- Numbered format โ
1/N style for clarity (optional but recommended)
- Last tweet = CTA/summary โ recap and call to action
- 280 chars per tweet โ including numbering
- Natural paragraph boundaries โ split at logical breaks
Threads publish as a native X reply-chain: the skill takes the first tweet's postId and passes it as replyToPostId for the second tweet, and so on. X renders the full sequence as a proper thread in readers' timelines.
Images
- Images must already be hosted under
https://cdn.gooo.ai/... (YouMind enforces this allowlist to avoid SSRF)
- Upload local files to YouMind first (e.g., via the YouMind product UI or AI image generation), then reference the returned CDN URL
- Up to 4 images per tweet; for a sequence they attach to the first tweet only
Resilience: Never Stop on a Single-Step Failure
Every step has a fallback. If a step AND its fallback both fail, skip and note it in the final output.
| Step | Fallback |
|---|
| 2 Knowledge mining | Skip, empty knowledge context |
| 3 Research | Ask user for manual input |
| 5 Publishing | Save adapted text locally under output/ for manual posting |
| -- Archive to YouMind | Warn, continue |
References