Install
openclaw skills install @j3ffyang/twitter-bookmarks-exporterExports all X/Twitter bookmarks into individual Markdown files with metadata.
openclaw skills install @j3ffyang/twitter-bookmarks-exporterExtracts all bookmarked tweets from X/Twitter into clean Markdown files for Obsidian, Notion, or any note-taking system.
bookmarks.json (captured from browser Network tab).output/bookmarks/ folder, named sequentially like 0001-title.md.X/Twitter does not provide a public bookmarks export API, so you need to capture the responses directly from your browser's Network tab. Follow these steps:
F12 (Windows/Linux) or Cmd+Option+I (Mac).Bookmarks to filter relevant requests.Bookmarks?variables=... requests — one per page.bookmarks.jsonFor each Bookmarks request in the Network panel:
Once you have all responses, save them into a single file named bookmarks.json inside the twitter-bookmarks-exporter/ folder. You can paste the responses one after another — the script handles multiple concatenated JSON objects automatically.
Example with two pages:
{ "data": { "bookmark_timeline_v2": { ... } } }
{ "data": { "bookmark_timeline_v2": { ... } } }
No special merging needed — just paste all responses end-to-end and save.
The script handles the current X GraphQL API response format as well as the legacy v1 format.
python scripts/main.py
This generates Markdown files in output/bookmarks/.
Each file follows this structure:
---
title: "Example tweet text here"
url: "https://x.com/username/status/123456789"
author: "@username"
saved_at: "2026-04-14"
type: "tweet" # tweet | note | article
---
# Example tweet text here
**Author:** Display Name (@username)
**Date:** 2026-04-14
**URL:** https://x.com/username/status/123456789
**Stats:** ❤️ 142 · 🔁 38 · 💬 12 · 🔖 95 · 👁 24000
Full tweet content here, with all t.co links expanded to real URLs.
 <!-- if media present -->
> **Quoted tweet** by @otheruser <!-- if quoting another tweet -->
> https://x.com/otheruser/status/987654321
> Quoted tweet text here.
output/bookmarks/
├── 0001-the-thing-that-surprises-me-most-about-llms.md
├── 0002-we-are-still-very-much-in-the-early-innings.md
└── ...
Agent prompt: "Export my Twitter bookmarks to Markdown using twitter-bookmarks-exporter."
Expected behavior:
bookmarks.json exists in the skill folder.python scripts/main.py.output/bookmarks/.Edit scripts/main.py to:
OUT_DIR)bookmark_to_markdown)MIT License. Free to use, modify, and distribute.