RuruGrab is a local-first media and utility toolkit built from two pieces:
- a Tauri desktop app in
app/ - a Chrome / Edge extension in
extension/
The extension captures page context, cookies when needed, and browser-side actions. The desktop app owns the local HTTP API, SQLite data, download queue, file tools, and bundled runtimes.
Core data is kept on your device by default. Network access is used for the sites, metadata providers, downloads, update checks, or integrations that you enable.
Installable releases are available from RuruGrab Releases.
Queue downloads from supported sites and monitor progress in the desktop app.
- YouTube downloads through
yt-dlp - X / Twitter and Instagram downloads through
gallery-dl - optional MP3/audio-only queueing from the extension
- retry, cancel, clear, open-folder, and delete actions
- local thumbnail and metadata capture for queue items
Use the extension to send the current page or selected media to the desktop app.
- Chrome / Edge Manifest V3 extension
- context menu and popup actions
- YouTube watched-history tracking
- visual watch marks on YouTube thumbnails
- optional SQLite sync / restore workflow with the desktop app
- content scripts for YouTube, X / Twitter, Instagram, and Telegram Web helpers
RuruGrab includes a shared file-manager area with three focused tools.
- Organizer: move files into folders using filename rules
- Renamer: preview and apply rule-based filename transforms
- Duplicate finder: scan folders, group duplicates, and delete selected files
Additional tools are available from the desktop app and feature toggles.
- metadata provider search, caching, curated records, and translation settings
- text extraction jobs, local text browsing, and search previews
- QR code studio with PNG / SVG export
- XMPP chat with roster, message history, OMEMO state, and file transfer
- Telegram bot configuration with command and model-provider profiles
- external tool status and download management
- tray icon, local server settings, diagnostics, and in-place app updates
app/ Tauri + Vite + React desktop app
app/src/ frontend tabs, shared UI, bootstrap code
app/src-tauri/src/ Rust app, local API, worker, DB, commands
app/src-tauri/crates/ feature crates for organizer, duplicate finder, vault, VVV, XMPP, etc.
app/site_template_sidecar/ Node / Playwright sidecar runtime
extension/ Chrome / Edge extension source
docs/ human-facing docs
docs/ai/ feature-focused maintenance maps
extension_dist/ built extension output
- Node.js
- Rust toolchain
- Tauri build prerequisites for your platform
- required sidecar binaries under
app/binaries/
Common sidecar binaries:
yt-dlp-<target-triple>gallery-dl-<target-triple>ffmpeg-<target-triple>ffprobe-<target-triple>fpcalc-<target-triple>
On Windows these use .exe filenames such as yt-dlp-x86_64-pc-windows-msvc.exe. The helper script is host-aware:
cd app
npm run binaries:check
npm run binaries:updateInstall dependencies for each workspace:
cd app && npm ci
cd ../extension && npm ci
cd ../app/site_template_sidecar/sidecar && npm ciRun the desktop app in development:
cd app
npm run devBuild the extension dist:
cd extension
npm run buildBuild the sidecar runtime:
cd app
npm run build:sidecarFull app-side verification:
cd app
node dev-tools/test-all.mjsFocused checks:
cd app && npm run test:run
cd app && npm run lint
cd app && npm run build:frontend
cd app/src-tauri && cargo test
cd extension && npm run test:runThe version source of truth is:
app/package.json
Sync the desktop, Rust, and extension versions with:
cd app
npm run version:syncRelease workflow details live in docs/release-workflow.md.
MIT License.





