X/Twitter thread → Markdown
How to convert an X (Twitter) thread to Markdown
Convert a complete X/Twitter thread to ordered Markdown, or export one post on its own. Choose the thread scope, keep source links, and save the result anywhere.
Test it out now!
Simply replace x.com with tweet.md in any Tweet URL.
Post or thread?
Choose one post or the full thread.
Every conversion starts from a status URL. Use thread=off when you only need that post, or choose a thread scope to follow the conversation in chronological order. The URL stays the same; the query parameter controls how much comes back.
thread=off → the linked post only
thread=branch-20 → ancestors and replies in one ordered branch
When a thread looks incomplete
Scope, caps, and source availability determine which posts can be included.
The free tier returns one post only, so use paid credits for thread scopes.
thread=branch follows the selected reply chain; sibling branches require thread=all.
A numeric cap such as branch-20 or all-20 can stop before a longer conversation ends.
Deleted, private, withheld, or otherwise unavailable posts cannot be returned by the X API.
Workflow
Step-by-step
- 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 tweet.md.
Swap the domain in the URL bar and open the tweet.md page.
URL transformBefore
https://x.com/jack/status/20→After
https://tweet.md/jack/status/20?thread=branch-20 - 03
Copy the Markdown output.
Add ?thread=branch-20 to include the reply chain up to the original post plus replies underneath. Paid accounts default to branch-15 when thread is omitted. - 04
Use the Markdown wherever you need plain text.
Drop it into a doc, note, CMS, email draft, or any workflow that works better with structured text than a live URL.
Thread scope options
Export the part of the conversation you need
Add a numeric cap from 2–500, such as branch-20 or all-50. See the post and thread API documentation for defaults, credit behavior, and every query parameter.
One post
thread=offReturn only the post in the URL. This is the only scope available on the free tier.
Earlier chain
thread=ancestorsInclude the selected post and the reply chain above it, back to the conversation root.
One thread branch
thread=branchInclude ancestors plus replies below the selected post. Paid requests default to branch-15.
Whole conversation
thread=allInclude sibling reply branches as well as the selected branch, up to your numeric cap.
Complete example
A full thread branch as Markdown
Each post keeps its author, source URL, reply relationship, text, and stats. Thread metadata records the original post, capture time, order, and total post count.
# 1/3 — Post by Example Account (@exampleuser)
Post ID: 9000000000000000001
Source: https://x.com/exampleuser/status/9000000000000000001
Reply to: none
Stats:
- Replies: 8
- Reposts: 42
- Quotes: 3
- Likes: 610
- Bookmarks: 54
- Impressions: 92,000
Text:
> Shipping notes: what changed in this release and why.
# 2/3 — Post by Example Account (@exampleuser)
Post ID: 9000000000000000002
Source: https://x.com/exampleuser/status/9000000000000000002
Reply to: https://x.com/exampleuser/status/9000000000000000001
Stats:
- Replies: 2
- Reposts: 9
- Quotes: 1
- Likes: 88
- Bookmarks: 12
- Impressions: 18,000
Text:
> Full changelog and migration notes are linked below.
# 3/3 — Post by Sample Dev (@sampledev)
Post ID: 9000000000000000004
Source: https://x.com/sampledev/status/9000000000000000004
Reply to: https://x.com/exampleuser/status/9000000000000000002
Stats:
- Replies: 1
- Reposts: 0
- Quotes: 0
- Likes: 6
- Bookmarks: 0
- Impressions: 1,900
Text:
> Does this release change the v1 API endpoints?
# Thread Metadata
Original post: https://x.com/exampleuser/status/9000000000000000001
Captured: 2026-05-17T00:00:00.000Z
Order: original-post-first
Posts: 3
Root author: Example Account (@exampleuser)
Good for
Archive it, save it to Obsidian, or give it to AI
Markdown is easy to search, diff, archive, and reuse. tweet.md keeps the source text and conversation order in one portable block instead of a stack of screenshots or copied posts.
Archive a complete thread before posts are deleted, edited, or buried in the timeline.
Save ordered source text in Obsidian, a notes app, or a searchable knowledge base.
Give ChatGPT, Claude, Gemini, or another AI tool the full thread instead of a fragile link.
Quote and cite the exact wording in a research doc, newsletter, article, or CMS.
Scraper alternative
Use structured API output, not the reader page.
tweet.md reads posts through the X API and formats the result. Scraping x.com means parsing a changing interface that may omit thread context or hide content behind sign-in.
Scrape x.com → DOM clutter, partial threads, changing markup
tweet.md → ordered Markdown with source metadata
X pages ship a lot of UI chrome: nav, sidebars, suggested posts, login prompts, and cookie banners. Scraping the DOM means cleaning noise before you ever get to the content.
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.
Engagement stats scraped from the page can be wrong or stale—rounded counts, A/B layout differences, and client-rendered numbers that change after load.
Next
Continue with profiles, ChatGPT, or the API docs
Fetch a full profile, paste a complete thread into an AI assistant, or customize thread scope and output through the X post and thread documentation.
Convert an X Article to Markdown
Export a long-form X Article with its headings, links, media references, and document structure intact.
long-form structure, links, and media
Save X posts and threads to Obsidian
Turn X/Twitter posts, threads, Articles, and profiles into vault-ready Markdown with YAML frontmatter.
YAML frontmatter, source metadata, vault import
Fetch an X profile as Markdown
Get bio, stats, pinned post, and recent content from any X profile as clean Markdown.
bio, stats, pics, and recent posts
Save X threads as Markdown with Apple Shortcuts
Use Siri, the share sheet, or clipboard input to call tweet.md and save X posts as Markdown on iPhone, iPad, or Mac.
Siri, share sheet, clipboard
Copy an X thread or post to ChatGPT
Paste complete X posts and threads into ChatGPT without missing content or broken links.
reads pasted Markdown, not a raw URL
Copy an X thread or post to Claude
Give Claude the full post or thread text as Markdown instead of a brittle X link.
reads pasted Markdown, not a raw URL
Copy an X thread or post to Gemini
Make X posts and threads readable for Gemini with one tweet.md URL swap.
reads pasted Markdown, not a raw URL