x-articles
Publish viral X (Twitter) Articles with AI. Long-form content that gets engagement. Proven hook patterns, browser automation. Works with Claude, Cursor, OpenClaw.
What this skill does
# X Articles — Viral Long-Form for Twitter
**Beat the algorithm.** Create and publish X (Twitter) Articles with proven viral patterns.
AI-powered formatting, hook patterns, and browser automation. Handles Draft.js quirks, embed limitations, and image uploads.
## Quick Reference
### Content Formatting Rules (CRITICAL)
X Articles uses Draft.js editor with specific quirks:
1. **Line breaks = paragraph breaks** - Each newline creates a new paragraph block with spacing
2. **Join sentences on ONE LINE** - All sentences in the same paragraph must be on a single line
3. **Use plain text, not markdown** - X Articles uses rich text, not markdown
4. **No em dashes (—)** - Replace with colons or rewrite sentences
**Wrong:**
```
Sentence one.
Sentence two.
Sentence three.
```
**Right:**
```
Sentence one. Sentence two. Sentence three.
```
### Embed Limitation (IMPORTANT)
**Embedded posts ALWAYS render at the END of the content block, not inline.**
Workarounds:
- Structure article to reference "see posts below"
- Accept visual flow: text → text → embeds at bottom
- Use `Insert > Posts` menu (don't paste URLs)
### Image Specs
| Type | Aspect Ratio | Recommended Size |
|------|--------------|------------------|
| Cover/Header | 5:2 | 1792x716 or similar |
| Inline images | 16:9 or 4:3 | 1792x1024 (DALL-E HD) |
## Viral Article Structure
### The Template
```
HOOK (hit insecurity or opportunity)
WHAT IT IS (1-2 paragraphs with social proof)
WHY MOST PEOPLE WON'T DO IT (address objections)
THE [X]-MINUTE GUIDE
- Step 1 (time estimate)
- Step 2 (time estimate)
- ...
YOUR FIRST [N] WINS (immediate value)
- Win 1: copy-paste example
- Win 2: copy-paste example
THE COST (value comparison)
WHAT TO DO AFTER (next steps)
THE WINDOW (urgency)
CTA (soft or hard)
```
### Hook Patterns That Work
**Insecurity/FOMO:**
```
everyone's talking about X... and you're sitting there wondering if you missed the window
```
**Big Opportunity:**
```
this is the biggest opportunity of our lifetime
```
**News Hook:**
```
X just open sourced the algo. Here's what it means for you:
```
**RIP Pattern:**
```
RIP [profession]. This AI tool will [action] in seconds.
```
**WTF Pattern:**
```
WTF!! This AI Agent [does amazing thing]. Here's how:
```
**Personal Story:**
```
When I was young, I was always drawn to people who...
```
### CTA Patterns
**Hard CTA (engagement bait):**
```
RT + follow + reply 'KEYWORD' and I'll send the cheat sheet
```
**Soft CTA:**
```
If you take this advice and build something, let me know!
```
**Simple:**
```
Feel free to leave a like and RT if this helped.
```
## Style Guide
### Damian Player Style (Tactical)
- All lowercase (deliberate)
- Urgent, tactical tone
- 1500+ words
- Heavy step-by-step detail
- Hard CTA with lead magnet
### Alex Finn Style (Motivational)
- Normal capitalization
- Warm, motivational tone
- 800-1200 words
- Mix of WHY and HOW
- Soft CTA + product links
### Dan Koe Style (Philosophical)
- Long-form essay (2000+ words)
- Personal storytelling opener
- Named frameworks ("The Pyramid Principle")
- Deep teaching, not just tactics
- Newsletter CTA
## Common Mistakes to Avoid
- Short articles under 500 words
- Facts without story/emotion
- No clear sections or headers
- No objection handling
- No immediate wins section
- No CTA
- Generic AI-sounding language
- Em dashes (—) everywhere
- Excessive emojis
- Pasting tweet URLs instead of using Insert menu
## Browser Automation (agent-browser)
### Prerequisites
- clawd browser running on CDP port 18800
- Logged into X on the browser
### Navigate to Article Editor
```bash
# Open new article
agent-browser --cdp 18800 navigate "https://x.com/compose/article"
# Take snapshot to see current state
agent-browser --cdp 18800 snapshot
```
### Paste Content
```bash
# Put content in clipboard
cat article.txt | pbcopy
# Click content area, select all, paste
agent-browser --cdp 18800 click '[contenteditable="true"]'
agent-browser --cdp 18800 press "Meta+a"
agent-browser --cdp 18800 press "Meta+v"
```
### Upload Cover Image
```bash
# Upload to file input
agent-browser --cdp 18800 upload 'input[type="file"]' /path/to/cover.png
# Wait for Edit media dialog, click Apply
agent-browser --cdp 18800 snapshot | grep -i apply
agent-browser --cdp 18800 click @e5 # Apply button ref
```
### Publish
```bash
# Find and click Publish button
agent-browser --cdp 18800 snapshot | grep -i publish
agent-browser --cdp 18800 click @e35 # Publish button ref
# Confirm in dialog
agent-browser --cdp 18800 click @e5 # Confirm
```
### Cleanup (Important!)
```bash
# Close tab after publishing
agent-browser --cdp 18800 tab list
agent-browser --cdp 18800 tab close 1
```
### Troubleshooting: Stale Element Refs
If clicks fail due to stale refs, use JS evaluate:
```bash
agent-browser --cdp 18800 evaluate "(function() {
const btns = document.querySelectorAll('button');
for (let btn of btns) {
if (btn.innerText.includes('Publish')) {
btn.click();
return 'clicked';
}
}
return 'not found';
})()"
```
## Content Preparation Script
### Convert Markdown to X-Friendly Format
```bash
# scripts/format-for-x.sh
#!/bin/bash
# Converts markdown to X Articles format
INPUT="$1"
OUTPUT="${2:-${INPUT%.md}-x-ready.txt}"
cat "$INPUT" | \
# Remove markdown headers, keep text
sed 's/^## /\n/g' | \
sed 's/^### /\n/g' | \
sed 's/^# /\n/g' | \
# Remove markdown bold/italic
sed 's/\*\*//g' | \
sed 's/\*//g' | \
# Remove em dashes
sed 's/ — /: /g' | \
sed 's/—/:/g' | \
# Join lines within paragraphs (keeps blank lines as separators)
awk 'BEGIN{RS=""; FS="\n"; ORS="\n\n"} {gsub(/\n/, " "); print}' \
> "$OUTPUT"
echo "Created: $OUTPUT"
```
## Pre-Publish Checklist
- [ ] Hook grabs attention in first line
- [ ] Objections addressed early
- [ ] Step-by-step with time estimates
- [ ] Immediate wins section included
- [ ] CTA at the end
- [ ] No em dashes (—)
- [ ] Sentences joined on single lines
- [ ] Cover image 5:2 aspect ratio
- [ ] Embeds referenced as "see below"
- [ ] Proofread for AI-sounding language
## Tweetable Quote Patterns
For promoting your article:
**Result + Cost:**
```
I gave an AI agent full access to my MacBook. It checks email, manages calendar, pushes code. Costs $20/month. A VA costs $2000.
```
**You Don't Need X:**
```
You don't need a Mac Mini. You don't need a server. I'm running my AI agent on an old MacBook Air from a drawer.
```
**Gap Warning:**
```
The gap between 'has AI agent' and 'doesn't' is about to get massive. I set mine up in 15 minutes.
```
**Urgency:**
```
Most people will bookmark this and never set it up. Don't be most people. The window is closing.
```
## Example Workflow
1. **Write article** in markdown with clear sections
2. **Run format script** to convert to X-friendly plain text
3. **Generate cover image** with DALL-E (1792x716 or 5:2 ratio)
4. **Open X article editor** via browser automation
5. **Paste content** and add section headers manually in editor
6. **Upload cover image** via file input
7. **Add inline images** at section breaks
8. **Insert embeds** (they'll appear at bottom)
9. **Preview and proofread**
10. **Publish**
11. **Post promotional tweet** with hook + article link
## Related Skills
- `bird` - X/Twitter CLI for posting tweets
- `de-ai-ify` - Remove AI jargon from text
- `ai-pdf-builder` - Generate PDFs (for lead magnets)
---
Built by [@NextXFrontier](https://x.com/NextXFrontier)
Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.