Skip to content

D4vRAM369/ThreadsVault-desktop

Repository files navigation

ThreadsVault Desktop

threadsvault-desktop-icon

Platform Cross Platform Tauri Svelte TypeScript Tailwind CSS SQLite IndexedDB License PBL Claude Code Codex Ask DeepWiki

Leer en español

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 🗄🧵


Screenshots

Bóveda vacía
Empty vault
Main screen on first launch
Categorías
Categories
Create and organize with color and icon
Ajustes
Privacy & Settings
Backup, privacy, keyboard shortcuts
Bóveda con posts en modo claro
Vault on light mode (included in v2.1)
Main screen with new light mode
Categorías - Modo claro
Categories
Category view in light mode
Ajustes
Privacy & Settings
Backup, privacy, keyboard shortcuts

Main Features

  • 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: Esc back, Ctrl+N add, / or Ctrl+F search, 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.

Installation

Windows

Download the .exe installer from Releases and run it.
It installs to %LocalAppData%\threadsvault-desktop and creates a shortcut in the Start Menu.

Linux

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.


How It Works

  1. Copy the URL of a Threads post (e.g. https://www.threads.net/@user/post/abc123)
  2. Open the app → click the +Add button in the top-right corner.
  3. Paste the URL, click Save, and optionally add extra notes.
  4. 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.
  5. The post is stored locally. Done.

Privacy

  • All data is stored in a local SQLite database (%AppData%\threadsvault-desktop on Windows, ~/.local/share/threadsvault-desktop on Linux)
  • External requests are limited to r.jina.ai (primary extraction) and threads.net (fallback when Jina is unavailable).
  • No usage data, no crash reports, no telemetry of any kind.

Known Limitations

  • Threads only — specifically designed for Threads posts; other URLs may not extract properly
  • Extraction uses Jina as primary source — if r.jina.ai is 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).

Build from Source

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 build

The compiled binary will be located in src-tauri/target/release/bundle/.

For development with hot-reload:

npm run tauri dev

Browser-only mode (without Tauri, uses IndexedDB instead of SQLite):

npm run dev

Tech Stack

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)

Development Method

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.


License

GPL-3.0 — same as ThreadsVault for Android.