An open API service indexing awesome lists of open source software.

https://github.com/nwund/vault-project

Vault is a powerful, privacy-focused desktop application for organizing, viewing, and enjoying your adult media collection. Built with Electron and React, it offers a sleek, immersive experience with AI-powered features, customizable visual effects, and comprehensive library management.
https://github.com/nwund/vault-project

adult-ai aggregator ai downloader editor gallery library media nsfw nsfw-detection pmv stash tagging video

Last synced: about 12 hours ago
JSON representation

Vault is a powerful, privacy-focused desktop application for organizing, viewing, and enjoying your adult media collection. Built with Electron and React, it offers a sleek, immersive experience with AI-powered features, customizable visual effects, and comprehensive library management.

Awesome Lists containing this project

README

          

# ๐Ÿ” VAULT

### *Your Private Media Sanctuary*

[![Version](https://img.shields.io/badge/v2.8.5-Latest-brightgreen?style=for-the-badge)](https://github.com/Nwund/vault-project/releases)
[![Platform](https://img.shields.io/badge/Windows%20%7C%20macOS%20%7C%20Linux-Platform-blue?style=for-the-badge)](https://github.com/Nwund/vault-project)
[![Electron](https://img.shields.io/badge/Electron-32.0-47848F?style=for-the-badge&logo=electron&logoColor=white)](https://electronjs.org)
[![React](https://img.shields.io/badge/React-19.2-61DAFB?style=for-the-badge&logo=react&logoColor=white)](https://react.dev)
[![TypeScript](https://img.shields.io/badge/TypeScript-5.7-3178C6?style=for-the-badge&logo=typescript&logoColor=white)](https://typescriptlang.org)


**The ultimate private media library for discerning adults.**

*AI-powered โ€ข Privacy-first โ€ข Beautifully designed*


[**โฌ‡๏ธ Download**](https://github.com/Nwund/vault-project/releases) ยท [**๐Ÿ“– Documentation**](#features) ยท [**๐Ÿš€ Quick Start**](#quick-start)


---


AI
DLNA
Mobile
GPU


## ๐Ÿ†• v2.8.5 โ€” AI Review scheduler + tagger sanity + regen-anywhere (2026-06-18)

Bug-fix + small-feature release. Most of these came out of a long live-review session where the user surfaced model failure modes the calibration layer wasn't catching.

- **Content-ratio scheduler in the AI processing queue** โ€” animated/hentai content currently produces worse Tier 2 titles + descriptions than IRL, so the review backlog was clogging with garbage. The queue now interleaves at 50 real : 10 animated per cycle. Detection uses a media-tag check (any of `hentai` / `animation` / `3d` / `sfm` / `cartoon` / `drawn` on the item) plus filename/path keywords (`hentai`, `anime`, `koikatsu`, `honey select`, `mmd`, `blender`, `rule34`, etc.). If a bucket is empty the scheduler falls back to the other so the worker never idles.
- **Trans/transgender/shemale/futa never auto-apply** โ€” bare `trans` was firing on cis-female content constantly. The model overuses it. New `isAutoApplyBlocked()` in `canonical-tags.ts` runs the never-auto-apply checks **before** the canonical-wins shortcut in `isJunkTag()` (which was letting `trans` through because the tag exists in canonical for manual selection). Same gate catches "implied X" hedge forms that slipped past the prefix-strip. Used in tier3-tag-matcher, description-tag-extractor, and the Tier 2 richTags filter โ€” but NOT in the cleanup IPC, so existing manually-applied `trans` tags survive. `mtf` and `ftm` still auto-apply, gated by the existing corroboration rule (must have another trans indicator OR conf โ‰ฅ 0.85).
- **Description no longer concatenates JoyCaption local caption** โ€” Venice's description was getting a `[Local caption]` block appended from the JoyCaption sidecar, intended for backend tag-mining but ugly in the UI. The companion JoyCaption `tags-danbooru` call already feeds tag candidates directly into rich_tags, so removing the description concat doesn't lose tag-extraction signal. Sidecar still runs; user just sees one clean description.
- **`ai:regenerate-title` / `ai:regenerate-description` work on never-analyzed media** โ€” both IPCs were throwing "No analysis record found" because they `INNER JOIN`'d on `ai_analysis_results`. Switched to `LEFT JOIN media` and an `INSERT โ€ฆ ON CONFLICT(media_id) DO UPDATE` so the row gets created on first regen instead of silently no-op'ing. Tier 1 hints just stay empty when there's no prior context.

## ๐Ÿ†• v2.8.4 โ€” Theme reactivity + AI Review polish + LAION installer (2026-05-25)

Follow-up patch addressing five user-reported issues, plus a new install script for the LAION aesthetic predictor.

- **Theme text no longer pink across every theme** โ€” Tailwind `text-pink-*` / `-rose-*` / `-fuchsia-*` / `-violet-*` / `-purple-*` classes now remap to `var(--primary)` globally so they flow with the active theme (was hardcoded #f9a8d4 etc.).
- **Quick Actions sidebar block removed** โ€” collapsed dropdown at the bottom of the sidebar. Cycle Theme / Rescan Library / etc. are reachable from the Command Palette (Ctrl+K) instead.
- **AI Review sort now actually works** โ€” uncertainty sort was scoring 0 on rows with no `rich_tags` JSON (most older items), so the list looked identical to newest sort. Added an `nsfw_confidence`-based fallback so the toggle re-orders even on legacy rows.
- **AI Review preview is click-to-play with full timeline** โ€” replaced the hover-preview with a click-to-play `` so reviewers can pause, scrub, and seek frame-by-frame to verify tags against specific moments.
- **AI Review frame grid spreads across the whole video** โ€” `mpdecimate` dedup was clustering tiles from a narrow window on slow-pan videos ("first 10 seconds 12 times" symptom). Disabled for the review contact-sheet. Plus an ffmpeg-side duration probe for videos missing `durationSec` in DB โ€” was falling to `select=not(mod(n,30))` which packs frames from t=0.
- **New `npm run install:aesthetic`** โ€” Node script that downloads the LAION aesthetic-predictor `.pth` from GitHub and converts it to the JSON schema Vault's loader expects, writing to `%APPDATA%\vault\models\aesthetic-linear.json` directly. Supports the 1-layer linear MSE (default) and the 5-layer MLP variant (`--variant=mlp`). No PyTorch dependency โ€” parses the .pth zip + raw float32 tensors in pure Node.

## ๐Ÿ†• v2.8.2 โ€” Unified optional-models UI + one-click installers (2026-05-24)

Replaces the previous two-card split (ModelFileCard grid + ExtraDetectorsCard) with one consolidated **Optional models & sidecars** panel under AI Tools โ†’ Setup. Same models, organized by capability instead of file type, with one-click installers where the upstream URL is stable. Per-model download progress bars stream live.

- **One-click installers** for JoyTag (model.onnx + top_tags.txt from HuggingFace), Real-ESRGAN x4 upscaler, and Chromaprint fpcalc.
- **Categorized rows**: Vision ยท Faces & people ยท Text ยท Audio ยท Voice. Scaffold-only detectors (wrappers without inference paths wired yet) collapsed behind a toggle so the main view stays scannable.
- **Three install affordances**: `Install` button when we know the URL; `Setup guide` for Python sidecars (WhisperX, F5-TTS); `Manual` for models with no canonical community ONNX (AI-image, deepfake, AdaFace, PaddleOCR, BEATs, PANNs).
- **No more duplicate rows** โ€” the v2.7.1 split had `ai-image` and `deepfake` listed in both cards with different framings.
- **No more stuck-on-Checkingโ€ฆ** โ€” the bug that the v2.8.1 ModelFileCard fix addressed is preserved in the new card's tristate `loading | ok | error | empty` status.
- **Progress streaming**: `models:install-progress` event lets the UI show real `N MB / N MB ยท 73%` instead of a generic spinner.

## ๐Ÿ†• v2.8.1 โ€” Build-fix + freeze-perf patch (2026-05-24)

Followup to v2.8.0. No new features; two fixes for stability.

- **Build fix**: an upstream electron-vite bug (PR #838, still open) was splicing the CJS-shim header mid-line in the bundled main.js, breaking the build. The `media:importBuffer` IPC for Brainwash clipboard paste was moved into its own file (`src/main/ipc-media-import.ts`) with all comment patterns that could trip the regex stripped out.
- **Perf โ€” AI Review autocomplete didn't freeze, but felt that way**: the Custom Tag autocomplete's render-time substring scan walked the entire tag DB on every keystroke without an early break, and the SQLite writes in `approveEdited` weren't transactioned. Both fixed: hard break once 6 visible matches are gathered, and tag inserts wrapped in a single transaction (~200ms โ†’ ~5ms on 20-tag approves).
- React 19 `fetchPriority` casing fix in CaptionsPage (was `fetchpriority`, lowercase โ€” Chromium worked, React 19 logged a dev warning).

## ๐Ÿ†• v2.8.0 โ€” UX & perf polish (2026-05-23)

A ~50-item polish + perf release on top of v2.7.1. Headline numbers:
**53 features / fixes shipped**, **~30 new keyboard shortcuts**, **1 new
visibility-gated polling hook** that cut background IPC chatter to ~zero
when the app is in the background.

- **Voice Intake fix** โ€” `getIntakeStatus()` was returning only 3 of the 8 fields the renderer card reads, so the panel rendered "Stopped" with "undefined done ยท undefined failed" even while the watcher was active. All counters now wire through.
- **Theme text reactivity** โ€” hardcoded Tailwind `text-white` / `text-zinc-*` / `text-gray-*` / `text-slate-*` now follow the active theme's `--text` variable in **every** theme (was only doing so in `light`).
- **Library**: Untagged / Recent 24h / `<5min` / `5โ€“20min` / `>20min` quick-filter pills ยท vim `gg`/`G`/`/`/`d` shortcuts ยท PageUp/PageDown paging ยท selection-bar additions (`+Tag` / `-Tag` / AI re-tag / Generate Thumbs / Open up to 4) ยท TopBar subtitle showing `N items ยท X GB` (or `N selected` in selection mode) ยท Random Pick excludes Continue Watching items ยท Library count badge in sidebar.
- **Floating Player**: Ctrl+S saves current frame as PNG ยท `r` rotates 90ยฐ ยท `q`/Ctrl+W close ยท Shift+Q closes all ยท `[`/`]` rate ยฑ10% (rate persists) ยท floating speed badge when rate โ‰  1ร— ยท Shift+S / Shift+E explicit A-B loop endpoints ยท Skip-intro overlay (configurable offset) ยท pause-on-blur (default ON) ยท Retry button on error overlay.
- **AI Tools**: bare `a` approves / `x` rejects + auto-advance ยท Approve โ‰ฅ85% bulk-confidence button ยท 1-4 keys swap tabs ยท ETA line in queue status.
- **Sessions**: 1-5 keys swap sub-tabs ยท top-right End Session button (broadcasts `sessions:end-all`; verifier, stroke tempo, HR band, lockout all listen and stop themselves).
- **Browse**: `sortBy` persists across sessions ยท vim `gg` / `G` jump to top / bottom.
- **GoonWall**: `p` pauses all tiles ยท `1`-`9` set tile count.
- **Performers**: `j`/`k` cluster navigation with focus ring + scroll-into-view ยท sort dropdown (by size / name / recent).
- **Playlists**: search field ยท Cmd/Ctrl+N focuses new-playlist input.
- **Brainwash**: Tab ping-pongs topโ†”bottom text inputs ยท **clipboard paste imports the image into your library** via new `media:importBuffer` IPC.
- **Toast**: Logs button on error toasts ยท Dismiss-all when โ‰ฅ3 stacked ยท dimmed during Zen mode.
- **Settings**: Open userData folder ยท Reload from disk ยท API key reveal toggles.
- **Command palette** gained 5 new entries: Pause/Resume AI Queue, Reload Settings, Open Logs Folder, Close All Floating Players.
- **Perf**: new `useVisibilityInterval` hook applied to 10 polling cards (QueueDashboard 2s, DevicesView 2s, LiveSessionView 5s, CrossDeviceCard 5s, SidecarWatcherBadge 5s, VaultMlSidecarCard 8s, HomeAssistantCard 10s, ExtraDetectorsCard 30s, SubscriptionsBellButton 60s, App-level untagged count 30s) so polls pause when the tab is hidden. App-level AI status poll backs off 5s โ†’ 30s while hidden.

See [CHANGELOG.md](CHANGELOG.md) for the full v2.8.0 notes.

## ๐Ÿ†• v2.7.0 โ€” The integration sweep (2026-05-17)

The largest release since v2.6.0. Every preload bridge that had no UI surface now has one. **32 new components**, **23 new Settings cards**, **6 player overlay buttons**, **8 Library Tools entries**, plus React 19 + React Compiler.

- **Settings โ†’ Services tab** gained 23 cards across themed sections: Decentralized (Iroh / Hyperswarm / Helia / Syncthing), Privacy (Veilid / Tor / WebTransport / Nostr), Social (Bluesky labeler / UnifiedPush / IMAP), AI gen (Video Diffusion / VaultMl sidecar), Tag intelligence (Tag implications / Folder actions), Security (WebAuthn / Shamir / ntfy), Content imports (Coomer / AudioErotica / CaptionPool / yt-dlp profiles)
- **Library page** got Stack Mode pager, Quick Look (hold-Q), Color Palette filter chip, Duplicate Triage modal, Animated sub-library facet picker, Sprite-sheet Chapter editor, Export Pipeline recipe builder, SidecarWatcher status badge in TopBar
- **Floating player** gained a right-edge overlay rail with 7 toggles: LUT grade ยท Subtitles ยท Scopes ยท Beats (Cock-Hero) ยท Heatmap ยท Quick Look ยท Capture moment
- **Right-click context menu** added Share via Iroh, Pin to IPFS, Open Export Pipeline, Auto-tease, Deny for, Feature less
- **MediaInfoModal** gained an Obsidian-style backlinks panel
- **AI Tools** added JoyTag + Real-ESRGAN cards + an Audits section (Quality auditor + Clip similarity)
- **MessagePort scrub-thumb fast-path** โ€” ffmpeg-backed disk-cached thumbnails, second-pass scrubbing is near-instant
- **View Transitions API** wrapping page navigation for GPU-accelerated cross-page morph
- **React 19.2 + React Compiler** in annotation mode, 21 v2.7 components opted in
- **Bug fixes**: watch-history `m.rating` SQL error, PlaylistsPage `allMedia.filter` crash, bridge access paths corrected across 9 files

See [CHANGELOG.md](CHANGELOG.md) for the full v2.7.0 notes.

## ๐Ÿ†• v2.6.1 โ€” Polish patch

- **One-click installs** โ€” CLIP BPE vocab + NudeNet model (Nano / Medium) now install with a single click from AI Tools. No more "open DevTools and drop a file."
- **8 more detector status cards** โ€” SFace, Person ReID, DB+CRNN OCR, LAION aesthetic, deepfake / AI-face, AI-image, WhisperX sidecar, F5-TTS sidecar โ€” all probe their own state and show install path + size in AI Tools.
- **WhisperX auto-start + consumer** โ€” when the WhisperX Python sidecar is configured + opted in, transcripts route through it for word-level + speaker-diarized output instead of whisper.cpp.
- **TS sweep** โ€” `npx tsc --noEmit` clean across the codebase.
- **Booru video CDN fix** โ€” gray-frame playback on xbooru / gelbooru / realbooru / tbib / hypnohub / paheal solved at the network layer via Electron `webRequest.onBeforeSendHeaders` Referer strip.
- **ML wrapper backlog doc** โ€” `docs/ML_WRAPPER_BACKLOG.md` is the single index of every optional ML add-on with status (shipped / functional / scaffold).

See [CHANGELOG.md](CHANGELOG.md) for full v2.6.1 notes.

## ๐Ÿ†• v2.6.0 โ€” What's new

- **Browse aggregator** โ€” 27-source parallel search across boorus, AI-gen platforms, tube sites, and social feeds (e621, rule34.xxx, Danbooru, AIBooru, Civitai, Gelbooru, Pixiv R-18, RedGifs, PornHub, RedTube, Eporner, xnxx, Bluesky, PullPush/Reddit archive, and more). Multi-select bulk save, custom filename templates, in-library duplicate detection, Vault-tag-blacklist application, source-family tabs, and a filter popover with active-count badge.
- **ML detector stack** โ€” six ONNX models wired into the AI tagging queue: YuNet face detection, SFace face recognition (with face_clusters table), Person ReID body embeddings, MoveNet pose detection, NudeNet v3 body-part detection, and a gender classifier. Plus whisper.cpp transcription, JoyCaption sidecar, and LAION aesthetic predictor.
- **Performers page** โ€” face-cluster grid driven by SFace. Name a cluster once and every video featuring that face auto-gets a `performer:NAME` tag.
- **HLS-aware video lightbox** โ€” xnxx + other tube playback now works via `hls.js` with yt-dlp as the universal fallback resolver.
- **Tag autocomplete** โ€” Vault's canonical-tags vocabulary now drives in-place autocomplete in the Browse search bar.
- **Migrations v17 โ†’ v23** โ€” face_clusters, face_embeddings, body_embeddings, multi-frame pHash, ai_analysis_results repairs, whisper transcripts (FTS5), CLIP embeddings.

See [CHANGELOG.md](CHANGELOG.md) for the full v2.6.0 release notes.

---

## โœจ Why Vault?

### ๐ŸŽฏ **Built for Privacy**
Your collection stays on YOUR machine. No cloud uploads, no tracking, no telemetry. Panic key instantly hides everything.

### ๐Ÿง  **AI That Understands**
3-tier AI system auto-tags content, generates captions, and learns your preferences. Works offline too.

### ๐ŸŽจ **Immersive Experience**
20+ visual overlays, 15+ themes, multiple view modes. From focused browsing to immersive walls.

### ๐Ÿ“ฑ **Everywhere Access**
Stream to smart TVs via DLNA. Control from your phone. Your library, your way.


---


## ๐Ÿ–ผ๏ธ Screenshots

| Library View | Goon Wall | Brainwash Editor |
|:---:|:---:|:---:|
| *Organize thousands of files* | *Multi-video immersive grid* | *AI captions & filters* |

| Feed Mode | PMV Editor | Mobile Sync |
|:---:|:---:|:---:|
| *TikTok-style navigation* | *Beat-synced video creation* | *Control from your phone* |


---


## ๐Ÿš€ Quick Start

```bash
# Clone & Install
git clone https://github.com/Nwund/vault-project.git
cd vault-project
npm install --legacy-peer-deps
npx electron-builder install-app-deps

# Launch
npm run dev
```

**That's it!** Add your media folders in Settings and start exploring.


---


## ๐ŸŽฌ Features

### ๐Ÿ“š Library Management

| | Feature | Description |
|:---:|---|---|
| ๐Ÿ” | **Smart Scanning** | Auto-imports from watched folders |
| ๐Ÿค– | **AI Auto-Tagger** | Venice AI + ONNX analyzes content |
| ๐Ÿท๏ธ | **Tag Categories** | Hierarchical organization system |
| ๐Ÿ”— | **Tag Aliases** | Synonyms auto-resolve |
| ๐Ÿ’พ | **Custom Filters** | Save complex filter combos |
| ๐Ÿ‘ฏ | **Duplicate Finder** | Hash, size, or name matching |
| โšก | **Batch Operations** | Bulk tag, rate, delete, organize |
| ๐Ÿ“‹ | **Watch Later** | Priority queue with reminders |


### ๐ŸŽฅ Viewing Modes

๐Ÿ“–


Library

Grid browsing with filters

๐Ÿ“ฑ


Feed

TikTok-style swipe

๐Ÿงฑ


Goon Wall

Multi-video grid

๐Ÿง 


Brainwash

Caption editor

๐ŸŽต


PMV Editor

Beat-synced edits


### ๐Ÿค– AI Intelligence (3-Tier System)

```
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ ๐ŸŒ TIER 3: Synonym โ†’ canonical-tag mapping โ”‚
โ”‚ โ€ข Maps free-text into Vault's porn-site tag vocab โ”‚
โ”‚ โ€ข Atomic tags only, deny-listed clinical/anime meta โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ โ˜๏ธ TIER 2: Venice vision LLM (qwen3-vl-235b) โ”‚
โ”‚ โ€ข Multi-frame scene understanding โ”‚
โ”‚ โ€ข Title + description + rich-tag generation โ”‚
โ”‚ โ€ข Library-wide rejection-pattern soft prior โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ โšก TIER 1: Local ONNX (offline, instant) โ”‚
โ”‚ โ€ข Multi-tagger ensemble (WD-Tagger variants + consensus)โ”‚
โ”‚ โ€ข NSFWJS, NudeNet v3, CLIP โ”‚
โ”‚ โ€ข 16 ML detector wrappers (face, pose, ReID, audioโ€ฆ) โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
```


### ๐ŸŽจ Visual Experience

| ๐ŸŒˆ Themes | ๐Ÿ’ซ Overlays | ๐ŸŽญ Effects |
|---|---|---|
| Obsidian, Neon Dreams, Ember | Film Grain, CRT, Matrix Rain | Vignette, Chromatic, Glitch |
| Velvet, Sapphire, Midnight | Bokeh, Hearts, Aurora | Thermal, Dreamy, VHS |
| Arctic, Mint, Peach Blossom | Sparkles, Fire, Neon Drip | Pixelate, Strobe, Shake |
| *+ Goon themes: Hypno, Latex* | *20+ total overlays* | *15+ PMV transitions* |


### ๐ŸŽฌ PMV/HMV Editor

Create professional-quality beat-synced videos:

- **๐ŸŽต BPM Detection** - Auto-detect beats from any audio
- **โœ‚๏ธ Smart Cuts** - 6 built-in templates (Classic, Hypno, Romantic...)
- **๐Ÿ”€ 16 Transitions** - Flash, Glitch, Zoom, VHS, Pixelate...
- **๐Ÿ“ Beat Text** - Synced text overlays with 6 animation styles
- **๐Ÿ”Š Audio Burner** - Extract audio from any video


### ๐Ÿ“ฒ Mobile & Streaming

| Feature | Description |
|:---:|---|
| ๐Ÿ“บ **DLNA Streaming** | Cast to smart TVs with full queue control |
| ๐Ÿ“ฑ **Mobile Sync** | Browse & control from your phone |
| ๐Ÿ”— **QR Pairing** | Instant device connection |
| ๐ŸŽฎ **Remote Control** | Playback controls from anywhere |


### ๐Ÿ† Gamification

> *Turn your sessions into achievements*

- **50 Achievements** to unlock
- **Daily Challenges** for XP rewards
- **Personal Records** & streaks
- **Weekly Stats** tracking
- **Streak Protection** warnings


---


## ๐Ÿ› ๏ธ Tech Stack

| Layer | Technology |
|:---:|:---:|
| **Framework** | Electron 32 |
| **Frontend** | React 19 + TypeScript + React Compiler |
| **Styling** | Tailwind CSS |
| **Database** | SQLite (better-sqlite3) |
| **Media** | FFmpeg + FFprobe |
| **AI** | ONNX Runtime + Venice vision LLM |
| **Browse** | 27-source booru / tube / social aggregator |
| **Downloads** | yt-dlp (bundled) |


---


## ๐Ÿ“Š By the Numbers

| | |
|:---:|:---:|
| **134** Backend Services | **140+** UI Components |
| **19** Database Tables | **23** Migrations |
| **27** Browse Sources | **16** ML Detector Wrappers |
| **23** Services-tab cards | **7** Player overlays |
| **58** Achievements | **20+** Visual Overlays |
| **16** PMV Transitions | **15+** Themes |


---


## โŒจ๏ธ Keyboard Shortcuts

| Key | Action | | Key | Action |
|:---:|---|---|:---:|---|
| `Space` | Play/Pause | | `L` | Like/Favorite |
| `โ†` `โ†’` | Navigate/Seek | | `B` | Bookmark |
| `โ†‘` `โ†“` | Volume/Scroll | | `D` | Downloader |
| `F` | Fullscreen | | `Ctrl+K` | Command Palette |
| `M` | Mute | | `Ctrl+Z` | Undo Delete |
| `H` | Hide UI | | `Esc` | **Panic Key** |


---


## ๐Ÿ”’ Privacy & Security

๐Ÿ’พ
100% Local
All data on your machine
๐Ÿšซ
No Telemetry
Zero data collection
๐Ÿšจ
Panic Key
Instant hide (Esc)

๐Ÿ‘ป
Incognito Mode
No history recording
๐Ÿ”
Encrypted Backup
Secure data export
๐Ÿ›ก๏ธ
Context Isolation
Secure Electron config


---


## ๐Ÿ“ Recent Updates

### v2.6.0 *(Latest)*

**๐ŸŒ Browse Aggregator + ๐Ÿง  ML Detector Stack + ๐Ÿ‘ค Performers UI**

- โœจ **Browse Aggregator** - 27 sources parallel-searched: e621, rule34, Danbooru, AIBooru, Civitai, Gelbooru, Pixiv R-18, RedGifs, PornHub, RedTube, Eporner, xnxx, Bluesky, PullPush (Reddit archive), and more
- โœจ **Multi-select + bulk save** with floating action bar and spring animations
- โœจ **Tag autocomplete** from Vault's canonical-tag vocabulary, with โ†‘โ†“ Tab Enter keyboard nav
- โœจ **Recent + saved searches** dropdown with star-to-pin
- โœจ **Source family tabs** (Booru / Tube / AI-gen / Social) narrow both the chip list and the fan-out
- โœจ **HLS-aware lightbox** via hls.js + universal yt-dlp fallback for all tube URLs
- โœจ **Filter chips**: rating, min-resolution (720p+/1080p+/4K), min-score, SFW-only, Vault-blacklist
- โœจ **6 ML detectors** - YuNet face + SFace recognition + Person ReID body + MoveNet pose + NudeNet v3 + gender classifier, all folding into the AI tagging queue
- โœจ **Performers page** - SFace face clusters, inline rename auto-applies `performer:NAME` tags
- โœจ **Whisper.cpp transcription** (opt-in) with FTS5-indexed dialogue search
- โœจ **JoyCaption sidecar** for high-quality VLM captioning
- โœจ **8 new achievements** for Browse + Performers + AI usage (First Crate Dig, Browse Explorer, Face Namer, AI Pioneer, Tag Curator, Performer Dossier, Bulk Dropper, Crate Digger)
- โœจ **XMP sidecar export** for Darktable / Lightroom / Immich interop
- โœจ **Stash interop** (`.stash.json` import/export)
- โœจ **Custom filename templates** + in-library duplicate badges + auto-tag `source:browse` on save
- โœจ **Multi-tagger ensemble** - load multiple WD-style tagger ONNX models simultaneously (`wdTaggerVariants` setting); tags merged with consensus boost (+10% on 2-variant agreement, +20% on 3+)
- โœจ **Browse UI condensed** - secondary filters collapsed into a single popover with active-count badge; double-click any source chip to mute it from "All sources" fan-out
- โœจ **PullPush Reddit-archive source** - replaces the gated Reddit Data API entirely (no auth required); NSFW-subreddit-name filter + dead-image URL pattern blocklist + tile auto-hide on load failure
- โœจ **Pixiv referer injection** - Electron `webRequest.onBeforeSendHeaders` interceptor rewrites Referer/Origin for `pximg.net` requests so Pixiv's hotlink-protected CDN serves images in the lightbox
- โœจ **Bluesky AT Protocol auth** - app-password session token, queries the user's PDS instead of the public appview to avoid 403s
- โœจ **xnxx playback** via `yt-dlp` universal fallback when all RapidAPI providers 403; bundled binary, HLS playback via `hls.js`
- โœจ **11 new ML wrappers** scaffolded โ€” InsightFace ArcFace, TransNet V2 shot detection, VideoMAE Kinetics-400 actions, X-CLIP zero-shot video, Chromaprint audio fingerprint, YAMNet 521-class events, LAION CLAP zero-shot audio, Demucs stem separation, WhisperX word-level transcripts (Python sidecar), F5-TTS voice cloning (Python sidecar), JoyTag + idolsankaku-eva02 (via the multi-tagger ensemble). Each has an in-source ACTIVATION block with download URLs and target paths.
- โœจ **6 UI library installs** ready for future integration: `@dnd-kit/*` (reorder/merge UX), `@base-ui-components/react` (a11y primitives), `echarts` + `echarts-for-react` (big-data dashboards), `masonic` (variable-aspect virtualized grid), `photoswipe` (standard lightbox)

### v2.4.0

**๐Ÿš€ Stability, Performance & Polish Release**

- โœจ **GoonWall Stability** - Improved video slot limiting and playback recovery
- โœจ **URL Downloader UX** - Quality selector, auto-import, toast notifications
- โœจ **Native Notifications** - OS notifications when downloads complete
- โœจ **Database Performance** - New indexes for faster duplicate detection and filtering
- โœจ **Memory Optimizations** - Fixed timer/listener leaks, improved cleanup
- โœจ **Code Quality** - Removed 935 lines of dead code, improved type safety
- โœจ **PMV Editor Polish** - Live preview, improved BPM detection
- โœจ **GIF Thumbnails** - Better GIF thumbnail generation with fallbacks

### v2.3.0

**๐ŸŽฌ 30 Professional Video Editing & Media Management Components**

- โœจ **Scene Detector** - AI-powered scene detection with frame analysis
- โœจ **Video Chapters** - Chapter navigation with custom markers and thumbnails
- โœจ **Color Grading** - Professional color grading with 5 cinematic presets
- โœจ **Loop Region** - A/B loop region selector with saved loops
- โœจ **Bookmark Manager** - Video timestamp bookmarks with notes/categories
- โœจ **Subtitle Editor** - Full subtitle editor with SRT import/export
- โœจ **Thumbnail Strip** - Video timeline with hover thumbnail preview
- โœจ **Audio Visualizer** - Real-time visualization (bars, wave, circular, spectrum)
- โœจ **PiP Controller** - Picture-in-Picture with position presets
- โœจ **Keyframe Extractor** - Extract keyframes at configurable intervals
- โœจ **Video Filters** - Real-time filters (vivid, warm, cool, noir, vintage, dreamy)
- โœจ **Split Screen** - Multi-video split screen player (2-6 videos)
- โœจ **Smart Crop** - AI-assisted cropping with aspect ratio presets
- โœจ **Metadata Editor** - Advanced metadata editor with custom fields
- โœจ **Playlist Sorter** - Advanced sorting with drag-reorder
- โœจ **Watch Progress** - Continue watching tracker with progress bars
- โœจ **Media Exporter** - Export with format conversion (mp4, webm, mkv, gif)
- โœจ **AI Tagger** - AI-powered auto-tagging with confidence thresholds
- โœจ **Thumbnail Selector** - Select/generate custom thumbnails from any frame
- โœจ **Related Media** - Smart related media suggestions
- โœจ **Media Timeline** - Timeline view by date (day/week/month)
- โœจ **Quick Note** - Quick notes with colors, pinning, and timestamps
- โœจ **View Mode Selector** - 7 view modes (grid, list, masonry, timeline, carousel...)
- โœจ **Auto Playlist** - Auto-generated playlists based on behavior
- โœจ **Media Merger** - Merge multiple videos with transitions
- โœจ **Media Rotator** - Rotate and flip with undo history
- โœจ **Watermark Adder** - Add text/image watermarks with 9 positions
- โœจ **Speed Ramp** - Variable speed ramping with graph editor
- โœจ **Media Queue** - Playback queue with shuffle and repeat modes
- โœจ **Aspect Ratio Switcher** - Quick aspect ratio switching with zoom/pan

Previous Versions

### v2.2.0

**๐ŸŽฏ 35 New Components for Ultimate Experience**

- โœจ **Command Palette** - Spotlight-style launcher (Ctrl+K)
- โœจ **Watch History Timeline** - Visual timeline with session groupings
- โœจ **Content Queue** - Smart queue with drag-reorder and shuffle
- โœจ **Discovery Engine** - AI-powered suggestions that learn preferences
- โœจ **Edge Mode** - Timer-based intensity sessions with 5 presets
- โœจ **Immersive Mode** - Distraction-free fullscreen with gesture controls
- โœจ **Quick Actions Panel** - Floating panel with Alt+key shortcuts
- โœจ **Session Summary** - Post-session stats and insights
- โœจ **Smart Playlist Builder** - Visual rule-based playlist creation
- โœจ **Ambient Mode** - Dynamic lighting from video frame colors
- โœจ **Video Preloader** - Smooth transitions with smart preloading
- โœจ **Streaks & Achievements** - Gamification with 50+ achievements
- โœจ **Gesture Controls** - Touch/swipe controls for mobile-like navigation
- โœจ **Theater Mode Controller** - Enhanced theater mode settings
- โœจ **Slideshow Controller** - Advanced slideshow with 8+ transitions
- โœจ **Quick Rating** - Star rating with hover preview
- โœจ **Playback Speed Control** - Speed selector with custom presets
- โœจ **Media Info Overlay** - Detailed media metadata panel
- โœจ **Search History** - Search suggestions with recent history
- โœจ **Playlist Quick Add** - Quick add to playlists with search
- โœจ **Tag Autocomplete** - Smart tag input with suggestions
- โœจ **Screenshot Capture** - Capture frames with format/scale options
- โœจ **Hotkey Help** - Full keyboard shortcut reference (press ?)
- โœจ **Context Menu** - Right-click menus with submenus
- โœจ **Media Preview** - Hover preview with video scrubbing
- โœจ **Batch Actions** - Bulk operations with confirmation dialogs
- โœจ **Import Progress** - Import queue with progress tracking
- โœจ **Folder Watcher** - Watch folder management with status
- โœจ **Volume Normalizer** - Audio normalization with compressor/limiter
- โœจ **Media Comparison** - Side-by-side comparison with sync playback
- โœจ **Duplicate Finder** - Find duplicates with hash comparison
- โœจ **Media Stats** - Analytics dashboard with trends
- โœจ **Quick Search** - Instant search with keyboard navigation
- โœจ **Performer Tagger** - Actor tagging with AI suggestions
- โœจ **Collection Manager** - Hierarchical collections with drag-drop

### v2.1.7
- Floating Labels - Draggable text anywhere on images
- Vignette Effect - Cinematic borders with slider control
- Beat-Synced Text - PMV text overlays synced to music
- 9 New Transitions - VHS, Spin, Blur, Pixelate, Wipe...
- 6 New Effects - Chromatic, Strobe, Thermal, Dreamy...
- Home Dashboard - Today's Picks, Trending, Unwatched sections
- Series Modal - View and play full series in order

### v2.1.6
- Audio Burner in PMV Editor
- GoonWall auto-shuffle control
- Climax point toggle

### v2.1.5
- Smart Playlists
- Venice AI Captions
- Welcome Tutorial
- Video Frame Capture
- Image Cropping
- Settings Search


---


## ๐Ÿ—บ๏ธ Roadmap

| Version | Features |
|:---:|---|
| **v2.7** | JoyTag + idolsankaku second-opinion taggers โ€ข InsightFace ArcFace face ID upgrade โ€ข TransNet V2 + VideoMAE action labels |
| **v2.8** | WhisperX word-level timestamps โ€ข Demucs vocal isolation โ€ข LAION CLAP zero-shot audio search |
| **v2.9** | F5-TTS voice cloning UI โ€ข Vidstack player core โ€ข dnd-kit reorder โ€ข ECharts analytics |
| **v3.0** | Plugin system โ€ข Cloud sync โ€ข Watch parties โ€ข Multi-user library |


---


## ๐Ÿ“ฅ Get Started


[![Download Latest](https://img.shields.io/badge/Download-v2.7.0-success?style=for-the-badge&logo=windows)](https://github.com/Nwund/vault-project/releases/latest)


**Requirements:** Node.js 20+ (Node 22 recommended) โ€ข npm 10+ โ€ข Windows 10+ / macOS 11+ / Linux


---


*Built with obsession by developers who understand the mission.*


๐Ÿ” Vault v2.7.0 โ€ข 134 backend services โ€ข 27 Browse sources โ€ข 140+ components โ€ข 16 ML detector wrappers โ€ข 23 v2.7 Settings cards