AnyPost
All guides
6 min read

Test it now: replace x.com with anypost.md in any post URL.

Xx.comXanypost.md

Before

https://x.com/trq212/status/2052809885763747935

After

https://anypost.md/x.com/trq212/status/2052809885763747935?thread=full

Try the live preview

How to convert an X post or thread to Markdown

Turn any X/Twitter post or thread into clean, portable Markdown. One URL swap gives you the full text and thread order, without scraping the X website.

Why not scrape X?

The website is a reader UI, not a clean export.

Copy-pasting from x.com or running a scraper on the page sounds simple, but you usually get layout noise, missing thread context, or numbers that do not match what you saw in the app.

ApproachWhat you get
Scrape x.comDOM clutter, partial threads, unreliable stats
anypost.mdOrdered Markdown with post text and metadata

01: UI chrome
X pages ship nav, sidebars, suggested posts, login prompts, and cookie banners. Scraping the DOM means cleaning noise before you get to the content.

02: Incomplete threads
Anonymous visitors often do not see the full thread. X may show only the target post, hide earlier self-replies, or stop the chain behind a sign-in wall.

03: Stale stats
Engagement numbers scraped from the page can be wrong or stale, rounded counts, layout A/B tests, and client-rendered numbers that change after load.

Step-by-step workflow

01: Copy the X/Twitter status URL
Use the permalink for the post you care about, or any post in the thread chain.

02: Replace x.com with anypost.md
Swap the domain in the URL bar and open the page. Prefix the path with x/ (twitter.com URLs work the same way).

Before: https://x.com/jack/status/20
After:  https://anypost.md/x/jack/status/20?thread=full

Add ?thread=full to include the full same-author thread. Paid API keys (apk_…) unlock thread unrolling and author metadata; free tier is single-post only (10/day).

03: Copy the Markdown output
The page returns plain Markdown (text/plain). Select all, or use your browser’s copy, no JSON to parse.

04: Use the Markdown wherever you need plain text
Drop it into a doc, note, CMS, email draft, RAG pipeline, or any workflow that works better with structured text than a live URL.

Good for

Markdown is easy to search, diff, archive, and reuse. AnyPost gives you the post body, author handle, timestamps, media links, and thread order in one copy-pasteable block.

  • Save a thread in your notes app or knowledge base without copy-pasting post by post.
  • Quote or cite the exact wording in a blog post, newsletter, or research doc.
  • Archive a conversation before it gets deleted or buried in the timeline.
  • Paste structured text into ChatGPT, Claude, Gemini, Cursor, or any editor that accepts Markdown.

For agents: fetch Markdown, not web pages

Give AnyPost to OpenClaw, Codex, Cursor agents, Claude Code, and RAG workers as their X/Twitter fetch layer. Instead of driving the original site, the agent should rewrite the URL to anypost.md or call /api/convert, then read the clean Markdown response.

That keeps agents out of brittle DOM scraping, rate-limit loops, login walls, and browser automation noise.

Agent setup

  • Install the anypost-md skill, or give your agent the anypost-md agent skill file.
  • Store an apk_ key from Login for Agents and send it as Authorization: Bearer apk_live_xxx for paid options.
  • Use the domain-swap URL when the agent wants a plain Markdown document; use /api/convert when it needs JSON fields such as markdown, credits, or structured errors.
Original: https://x.com/jack/status/20
Agent:    https://anypost.md/x/jack/status/20?thread=full

What you get

AnyPost normalizes each supported platform into the same Markdown shape. Output is consistent whether you use domain swap or the API.

# Nous Research (@NousResearch)

Hermes Agent v0.15.0 - "The Velocity Release"

Changelog below [pic.twitter.com/33YL6GmGyq](https://t.co/33YL6GmGyq)

[video](https://pbs.twimg.com/amplify_video_thumb/2060080166341169156/img/o3_PB2CIyewh4ADe.jpg)

---
2026-05-28 · X · [Original post](https://x.com/NousResearch/status/2060085673848193127)

Long-form X Articles use the same status permalink; AnyPost pulls the full article body when the platform supports it.

Under the hood

The domain swap is not a separate scraper, it calls the same backend as /api/convert. Next.js rebuilds https://x.com/…, forwards options, then returns only the markdown field as text/plain.

Paid options on a swapped URL

Append your key and options to the anypost URL (browser or script):

https://anypost.md/x/jack/status/20?thread=full&apikey=apk_live_xxx

Same with author metadata:

https://anypost.md/x/jack/status/20?thread=full&userinfo=author&apikey=apk_live_xxx

Scripts: catch-all (plain Markdown)

Use the swapped path when you want raw Markdown in the response body (no JSON wrapper):

# Query param auth
curl -sS "https://anypost.md/x/jack/status/20?thread=full&apikey=apk_live_xxx"

# Header auth (same route)
curl -sS -H "Authorization: Bearer apk_live_xxx" \
  "https://anypost.md/x/jack/status/20?thread=full"

Local dev (frontend on :3000, backend on :8000):

curl -sS -H "Authorization: Bearer apk_live_xxx" \
  "http://localhost:3000/x/jack/status/20?thread=full"

Scripts: /api/convert (JSON)

When you need credits, postCount, or other fields, pass the full x.com URL:

curl -sS -H "Authorization: Bearer apk_live_xxx" \
  "https://anypost.md/api/convert?url=https%3A%2F%2Fx.com%2Fjack%2Fstatus%2F20&thread=full"
Entry pointResponseBest for
/x/…/status/… (swap)text/plain MarkdownBrowser, curl pipes, agents that want a document
/api/convert?url=…JSON + markdownApps that need metadata and structured errors

See Documentation for all query params. The AI agents block at the bottom of this page includes the installable SKILL.md (tweet.md-style).

Next

AI agents

Want to use AnyPost from an agent for X posts? Give it the skill below plus your API key, and it can read any tweet or thread.

The skill instructs your agent to replace any x.com URL with anypost.md. Markdown output is optimized for LLMs, saving tokens.

Install with npx skills (recommended)

Same flow as npx skills add anthropics/skills --skill …. Installs from the open AnyPostMD/anypostrepo into your agent's skills folder.

bash
npx skills add AnyPostMD/anypost --skill anypost-md -y

Global (all projects): npx skills add AnyPostMD/anypost --skill anypost-md -g -y

Quick install (live URL)

Downloads to skills/ — copy the folder into your agent's path below. Paste your API key at Login for Agents.

bash
mkdir -p skills/anypost-md && curl -fsSL https://anypost.md/i/skill.md -o skills/anypost-md/SKILL.md

Install from GitHub raw

Same SKILL.md as in the public repo — useful before deploy or for pinned installs.

bash
mkdir -p skills/anypost-md && curl -fsSL https://raw.githubusercontent.com/AnyPostMD/anypost/main/skills/anypost-md/SKILL.md -o skills/anypost-md/SKILL.md

Global install: mkdir -p skills/anypost-md && curl -fsSL https://anypost.md/i/skill.md -o skills/anypost-md/SKILL.md

Per-agent

Cursor

bash
mkdir -p .cursor/skills/anypost-md && curl -fsSL https://anypost.md/i/skill.md -o .cursor/skills/anypost-md/SKILL.md

Claude Code

bash
mkdir -p .claude/skills/anypost-md && curl -fsSL https://anypost.md/i/skill.md -o .claude/skills/anypost-md/SKILL.md

Codex (ChatGPT)

bash
mkdir -p .agents/skills/anypost-md && curl -fsSL https://anypost.md/i/skill.md -o .agents/skills/anypost-md/SKILL.md

OpenCode

bash
mkdir -p .opencode/skills/anypost-md && curl -fsSL https://anypost.md/i/skill.md -o .opencode/skills/anypost-md/SKILL.md

OpenClaw

bash
mkdir -p skills/anypost-md && curl -fsSL https://anypost.md/i/skill.md -o skills/anypost-md/SKILL.md

Windsurf

bash
mkdir -p .windsurf/skills/anypost-md && curl -fsSL https://anypost.md/i/skill.md -o .windsurf/skills/anypost-md/SKILL.md

Gemini CLI

bash
mkdir -p .gemini/skills/anypost-md && curl -fsSL https://anypost.md/i/skill.md -o .gemini/skills/anypost-md/SKILL.md

Factory

bash
mkdir -p .factory/skills/anypost-md && curl -fsSL https://anypost.md/i/skill.md -o .factory/skills/anypost-md/SKILL.md

Kiro

bash
mkdir -p .kiro/skills/anypost-md && curl -fsSL https://anypost.md/i/skill.md -o .kiro/skills/anypost-md/SKILL.md

Skill file: anypost-md agent skill file (SKILL.md)

Agents: curl https://anypost.md/i/skill.md and install into your agent's skills directory.

Humans: run mkdir -p skills/anypost-md && curl -fsSL https://anypost.md/i/skill.md -o skills/anypost-md/SKILL.md or open /i/skill.

After install, read SKILL.md and add your apk_ key for paid options (threads, comments, author metadata).

Full agent docs

More guides

Browse all guides