Lars

tweet.md - X posts as clean Markdown

by
Get any X post or thread as clean Markdown for LLMs, agents, and research. Swap x.com for tweet.md or use the API.

Add a comment

Replies

Best
Lars
Maker
📌
Hey Product Hunt 👋 I built tweet.md because I kept running into the same annoying problem: X posts are often useful context for AI tools, but copying them usually gives you messy text, embeds, screenshots, or browser clutter. tweet.md turns X posts and threads into clean, attribution-preserving Markdown. The workflow is as simple as rewriting the URL to tweet.md: x.com/ProductHunt/status/2057518338419634198 → tweet.md/ProductHunt/status/2057518338419634198 There’s also an AI agent skill, so agents can use tweet.md directly in their workflows. It supports: * single X posts * threads * quoted posts * articles * Obsidian-friendly Markdown The goal is simple: make public X content easier to use with ChatGPT, Claude, Cursor, Codex, Obsidian, and other Markdown/LLM workflows — without scraping HTML or pasting messy copied content. Would love your feedback, especially from people using X content in research, AI workflows, or note-taking.
Csaba Kissi

@builditn0w It's an amazing idea, Lars!

Finally, something different. Everything is flooded with AI stuff.

Lars

@csaba_kissi thank you Csaba! Means a lot coming from you :)

Anant Gupta

@csaba_kissi This is amazing for sure, but isn't this AI too?

Lars

@csaba_kissi  @iamanantgupta well, it doesn't use AI itself but one use case is definitely using it inside AI that's right :)

Büşra Şeker

@builditn0w This is actually very practical problem. I often copy useful X threads into AI tools or notes but the context gets mess soo quickly. The URL rewrite flow is a nice touch because it does not add another complicated step. Does tweet.md also keep the original post structure clearly when a thread has quotes, links or media inside it?

Lars

@busra_seker1 exactly! HTML is super messy and when you let your agent just browse the page there might be a login wall or complettly blocked - those are the main reasons I built this :)

Yes tweet.md does keep the original post structure clearly.
- Threads are showed as Post 1/2, 2/2
- Qutes are showed inline in a post
- images and medias are shown as Markdown media links
so an AI agent has all context needed to see the post/thread/quote as it really is!

Daniel Baum

@builditn0w Love how simple this is. How does the skill file work? Are you hosting it anywhere? Would love for Claude to be able to find + use this by itself

Lars

@daniel_baum Thank you Daniel!

The skill is currently only available here: https://tweet.md/i/skill.md

It triggers whenever an X post must be read.

Will publish it now to skill.sh :D anywhere else that would make sense in your opinion?

Artem Fedorovich

@builditn0w The URL-swap workflow (x.comtweet.md) is the kind of frictionless that actually gets used, no auth dance, no scraper to maintain. The attribution-preserving part is the underrated bit: when you feed X content into an LLM, losing the author/timestamp is exactly how you get confident hallucinated quotes. One question on the agent skill: does the Markdown output stay stable for the same post over time, or can it drift if the embed/quote structure changes? For research and citation workflows, reproducible output matters as much as clean output. Upvoted.

Lars

@artem_fedorovich thank you!

the content can change when the post changes. if this would not be the case it could break the easy url swap to tweet.md feature. But let me know in DM's if such a "snapshot" feature would be useful for you and how you would use it! Happy to chat about it :)

Nika

Also, any ambition to do this for LinkedIn? I am there recently and it is also a big market to cover :)

Lars

@busmark_w_nika definitely worth checking! but need to make sure they have APIs I can use properly. Will come back to you when I do! :)

Nika

@builditn0w Thank you that you think about it too :)

Valentin

Concrats Lars! Not sure how often I need it but I can imagine it can be super helpful. Also I like the domain!

Lars

@vuhrmeister thank you Valentin!
even if you never need it I am happy for your support :)

Valentin

@builditn0w of course, you can count on me!

Lars

@vuhrmeister 🙌🙌

Stan Kolotinskiy

Looks impressive! I can't say that I'm using Twitter a lot, but that's definitely a nice thing

Lars

@sk_uxpin thank you! maybe it changes now you can use markdown, lol :D

Stan Kolotinskiy

@builditn0w hahah, well, that's fair point :D

Rudra Narayan Boitei

Finally a simple way to turn good X threads into something actually reusable ❤️

Lars

@rdrudra99 thank you! happy you like it :)

Felix Li

Long threads with images sometimes break copy-paste. Does tweet.md keep image URLs in the Markdown or text-only?

Lars

@novamaker01 images get rendered in markdown syntax with public image url like this thread:

Peter Mick

congrats on the launch mate!! :)

Lars

@thepetermick Thank you Peter 🥳

Tina Chhabra

this is one of those tools that solves a problem you didn't realise you had until you see it. I copy tweets into docs all the time and the formatting is always a mess. the agent skill is a nice touch too

Lars

@tina_chhabra and it's not only formatting, sometimes you even lose context when copying the html!

thanks for the support Tina :)

Jim Jeffers

This is exactly the kind of tiny utility that becomes more valuable because agents can use it reliably.

One thing I’d want in the Markdown output is a small provenance block: original URL, canonical URL, author handle, fetched-at time, and whether the post/thread was complete at fetch time. For research and AI workflows, that helps distinguish “this is what the post said when I captured it” from “this is the live state of X right now.”

If you ever add LinkedIn or other sources, that same receipt would matter even more because public posts move, disappear, or get reformatted in ways that can quietly change downstream summaries.

Lars

@jim_jeffers you do actually get all of those information with paid credits :)

just not sure what you mean by "post/thread was complete at fetch time"?

you are not the first one requesting Linkedin! Will definitely check it. Thanks for your support!

fmerian
neat product
Lars

@fmerian thank you! 🙌

12
Next
Last