Skip to content

iziz/RuruGrab

Repository files navigation

RuruGrab

JavaScript Rust React Tauri Vite SQLite Chrome Edge Windows macOS

RuruGrab icon

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.

What It Does

Media Download Queue

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

RuruGrab download queue

Browser Extension

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 YouTube watch marks

File Manager Tools

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

RuruGrab organizer

RuruGrab renamer

RuruGrab duplicate finder

Local Utilities And Integrations

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

RuruGrab QR code studio

Repository Layout

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

Prerequisites

  • 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:update

Setup

Install dependencies for each workspace:

cd app && npm ci
cd ../extension && npm ci
cd ../app/site_template_sidecar/sidecar && npm ci

Run the desktop app in development:

cd app
npm run dev

Build the extension dist:

cd extension
npm run build

Build the sidecar runtime:

cd app
npm run build:sidecar

Verification

Full app-side verification:

cd app
node dev-tools/test-all.mjs

Focused 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:run

Versioning And Releases

The version source of truth is:

app/package.json

Sync the desktop, Rust, and extension versions with:

cd app
npm run version:sync

Release workflow details live in docs/release-workflow.md.

Guides

License

MIT License.

About

Custom desktop app and Chrome/Edge extensions for personal use

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

 
 
 

Contributors