Free · Source-available · 100% local

Export X threads & articles as clean Markdown or PDF — or send them straight to Obsidian.

Clip a single post, or your entire Bookmarks, Likes, or a Profile in one batch. Seven formats — Markdown, PDF, HTML, JSON, TXT, CSV — all from one typed Content AST, so nested threads, quote-tweets, polls, and long-form Articles come out clean. No API keys. Nothing leaves your browser.

XClipper — export your entire X library to Markdown, PDF, HTML, JSON, CSV, and Obsidian

Why not just print the page

Other tools screenshot the page. XClipper rebuilds the document.

"Save as PDF" from the browser captures everything you don't want, breaks across pages in the wrong places, and loses everything that made the post worth keeping.

Browser "Save as PDF" / screenshot

A page that looks like X, mangled.

  • Sidebars, cookie banners, and faded "show more" overlays come along for the ride.
  • Page breaks split tweets mid-sentence; a long thread sprawls across nine pages of dead space.
  • Text isn't selectable, links aren't clickable, images get compressed, polls disappear.
  • Result: a PDF you can't search, edit, or share without apologising for.

XClipper

A print-ready document, rebuilt from the post.

  • Reads the underlying tweet, not the page chrome — no banners, no overlays, no engagement buttons.
  • Smart page breaks that never split a tweet; reply chains stay in order; quote-tweets nest with @handle attribution.
  • Selectable text, clickable links (with t.co resolved), original-resolution images, polls inlined with results.
  • Result: a PDF you'd actually keep — plus matching Markdown when you want it in a note.

Batch export

Clip one post — or your whole library.

Export your entire Bookmarks, Likes, a Profile, your home Timeline, or a hand-picked Selection in a single background job — then close the popup and let it run.

  • Live progress with pause / resume / stop, and a dedup ledger that skips what you've already saved.
  • Write separate per-post files, one combined file, or both — in any format except PDF.
  • Fast Batch ⚡ (opt-in) pulls Bookmarks, Profile, and Likes straight from your X session for a ~10× speed-up — no API key, nothing leaves your browser.
XClipper batch export — clip bookmarks, likes, a profile, or your timeline in one job

Features

Everything you need to clip X — nothing you don't.

Built for note-takers, researchers, and the LLM-curious. One click to clean Markdown or a print-ready PDF, with all the metadata you'd want.

  • Batch export

    Export many posts in one background job from five sources — Bookmarks, Profile, Likes, Timeline, or a hand-picked Selection. Live progress bar, pause / resume / stop, and a dedup ledger that skips what you've already saved. Write separate files, one combined file, or both.

  • Fast Batch ⚡

    An opt-in mode for Bookmarks, Profile, and Likes that pulls posts straight from your logged-in X session — roughly 10× faster, minutes to seconds. No API key, no password, nothing leaves your browser.

  • Seven export formats

    Save any post as Markdown, PDF, HTML, JSON, TXT, or CSV — or hand it to Obsidian. Batch jobs support all formats except PDF, and CSV pairs your metadata columns with the post body.

  • High-fidelity Markdown

    Tweets, nested threads, quoted posts, polls, link cards, and long-form X Articles converted to readable .md via a typed AST (no Turndown). Reply chains stay in order, t.co redirects resolve to the real URL, emoji and @mentions stay intact.

  • True PDF export

    Threads and articles printed through Chrome's native engine, not screenshotted. Selectable text, clickable links, embedded images, full Unicode and emoji support.

  • Send to Obsidian

    One-click handoff via the obsidian:// URI scheme, with an optional vault name. Obsidian-friendly frontmatter, [[@handle]] wikilinks, and customizable tags.

  • Local image downloads

    Download embedded X media alongside your file to prevent link rot. Limited to expected X media hosts — external URLs are kept as Markdown links.

  • Rich YAML frontmatter

    Author, handle, date, source URL, content type, and engagement stats (likes, reposts, replies, bookmarks, views). Toggle each field on or off per schema.

  • Local-only, no API keys

    Zero-API: everything runs in your browser. No accounts, no server-side processing, nothing leaves your device. Source available on GitHub.

How it works

Three ways to clip. Same clean Markdown and PDF.

Pick whichever entry point fits the moment. All three run the same extractor and respect the same settings.

01

Toolbar popup

Click the XClipper icon, then pick Download .md, Copy .md, Export .pdf, or Add to Obsidian. The toggles you change per-export — images, engagement stats, source link — sit right in the popup, not buried in settings.

XClipper popup with export options
02

Inline button on every tweet

A download icon sits next to share on every tweet's action bar. One click opens the permalink and exports it. Shift- or Alt-click to export just that tweet without its thread.

Inline download button on a tweet
03

Right-click anywhere

Right-click on a tweet — body, image, or timestamp — and pick Save tweet as Markdown, Copy tweet as Markdown, or Add tweet to Obsidian. XClipper figures out which tweet you meant.

Right-click context menu with XClipper items

Under the hood

All three entry points read X's DOM into one typed Content AST, then render to Markdown, PDF, or an Obsidian handoff. Format selectors live in one place, so an X redesign is a small patch.

DOMContent AST{ md·pdf·obsidian }

Start clipping in under a minute.

Install from the Chrome Web Store. Open any tweet or article on x.com. Hit Download. That's it.