Shelved keeps every post you save on X, sorts it into topics on its own, and lets you search the whole pile by what it means. It runs on your computer. Nothing leaves it.
Open source, MIT. Needs Bun or Docker. Works without any API key.

Every post is embedded on your machine and grouped with its neighbors. Claude names the groups when you give it a key. Without one, they are named from their own words.
“How to sleep better” finds the sleep protocol thread that never uses the word better. Words and meaning, together or apart.
Pin, archive, note, tag. Move a post to a different topic and it stays there. Rename or merge topics. Photos, videos, link cards and long posts all render cleanly.
Shelved reads your bookmarks the same way the x.com website does, with your own login cookies. New saves show up within half an hour. Bookmarks you remove on X drop out.
A small open model turns each post into a vector, locally. Clusters form around the natural groups in what you save, and your renames survive rebuilds.
One SQLite file in a folder. Run it in the foreground, as a background service on macOS or Linux, or in Docker. Delete the file to start over.
Then open localhost:4747 and paste two cookies from your x.com session. The first sync builds your topics in about a minute.
git clone https://github.com/ashot/shelved
cd shelved && bun install
bun run dev # or: docker compose up -d
Shelved talks to X's private web API, the one the website itself uses, with your cookies. It is not the official API, which does not offer bookmarks on its free tier. X's terms restrict automated access, so this is a tool for your own account, used at your own discretion.
Your bookmarks and your session stay on the machine that runs Shelved. The only outside call besides X is the optional one to Claude, which sees fourteen posts per topic and returns a name.