A local vault for your Threads posts. No cloud. No tracking. No account required.
ThreadsVault Desktop is the desktop version of ThreadsVault for Android. Its workflow is simple: paste the URL of a Threads post, it gets extracted, stored locally, and becomes yours. Close the app and open it whenever you want: the text and images of your saved posts will still be there (the program stores everything locally in the background after each save).
You can classify posts into different categories. The app indexes hashtags from publications, and you can also use them in personal notes when saving a post for easier searching inside your small personal vault of threads that you find interesting or relevant — stored locally without relying only on the basic “Saved” feature of Threads 🗄🧵
- Save posts by URL — paste a Threads link and click save. Title, author, text, and images are extracted automatically.
- Dark / light mode — toggle between the default dark theme and light mode from any screen. Preference is saved automatically.
- Local storage — SQLite on desktop (via Tauri), IndexedDB in the browser. Nothing leaves your device.
- Categories — organize posts into custom categories. Uncategorized posts go to a default inbox.
- Backup & restore — export your entire vault as JSON and import it whenever you want. When importing, the app shows the progress and confirms how many posts and categories were restored. ThreadsVault backups for Android can be imported here without any problems (Android → Desktop ✅). The reverse direction (Desktop → Android) is not yet supported and will be resolved in a future version.
- Media caching — images are cached locally as data URLs so posts survive CDN expiration.
- Personal notes — add, edit, or delete notes on any saved post directly from its detail screen.
- Keyboard shortcuts — navigate and search without a mouse:
Escback,Ctrl+Nadd,/orCtrl+Fsearch,←→navigate between posts. - No telemetry — no analytics, no crash reports, no external requests beyond post extraction. Everything runs 100% locally (client-side): not even the developer has access to your data.
Download the .exe installer from Releases and run it.
It installs to %LocalAppData%\threadsvault-desktop and creates a shortcut in the Start Menu.
Two options available in Releases:
| Format | How to use |
|---|---|
.AppImage |
chmod +x ThreadsVault_*.AppImage && ./ThreadsVault_*.AppImage |
.deb |
sudo dpkg -i threadsvault-desktop_*.deb |
Note: If the AppImage does not launch on Ubuntu 22.04+, run
sudo apt install libfuse2.
Flatpak planned for future versions.
- Copy the URL of a Threads post (e.g.
https://www.threads.net/@user/post/abc123) - Open the app → click the +Add button in the top-right corner.
- Paste the URL, click Save, and optionally add extra notes.
- The app fetches content in parallel: Jina Reader acts as the primary source (a proxy that renders the page like a real browser), while the HTML from Threads itself serves as a fallback for images and text.
- The post is stored locally. Done.
- All data is stored in a local SQLite database (
%AppData%\threadsvault-desktopon Windows,~/.local/share/threadsvault-desktopon Linux) - External requests are limited to
r.jina.ai(primary extraction) andthreads.net(fallback when Jina is unavailable). - No usage data, no crash reports, no telemetry of any kind.
- Threads only — specifically designed for Threads posts; other URLs may not extract properly
- Extraction uses Jina as primary source — if
r.jina.aiis rate-limited or unavailable, the extractor falls back to Threads' embedded React state to recover images and text directly from the HTML. - macOS not supported — requires an Apple Developer account ($99/year) for notarization; not planned for v1.x (likely not for 2.x either).
Prerequisites:
- Node.js 20+
- Rust (stable toolchain)
- On Linux:
libwebkit2gtk-4.1-dev,libgtk-3-dev,librsvg2-dev,libayatana-appindicator3-dev,patchelf(sudo apt install ...)
git clone https://github.com/D4vRAM369/threadsvault-desktop
cd threadsvault-desktop
npm install
npm run tauri buildThe compiled binary will be located in src-tauri/target/release/bundle/.
For development with hot-reload:
npm run tauri devBrowser-only mode (without Tauri, uses IndexedDB instead of SQLite):
npm run dev| Layer | Technology |
|---|---|
| Shell | Tauri v2 |
| Frontend | Svelte 5 (runes) + TypeScript |
| Styling | Tailwind CSS v4 |
| Storage (desktop) | SQLite via @tauri-apps/plugin-sql |
| Storage (browser) | Dexie (IndexedDB) |
| Post extraction | Jina Reader (r.jina.ai) |
Built using PBL (Project-Based Learning) — documented with learning artifacts not included in the repository for personal use and theoretical study sessions with the program open.
Developed primarily with assistance from Claude Code, and to a lesser extent with ChatGPT-5.3-Codex.
GPL-3.0 — same as ThreadsVault for Android.





