Your studio assets, unified.
A centralizing indexing and tracking system for studio environments where media assets, projects, and source files are scattered across multiple disks and storage devices.
From scanning drives to detecting duplicates, one unified dashboard.
Scan multiple disks and directories to build a centralized SQLite database of all your assets.
Navigate scanned files using an explorer-style tree view with breadcrumbs, infinite scroll, search, sort, right-click context menus, and file type icons with duplicate badges.
Identify identical files via SHA-256 hashing with per-file counts, matching filenames, and aggregated waste statistics.
Mark files as uploaded or deleted (soft delete) with bulk operations and optional disk deletion.
Non-blocking scan jobs with SHA-256 hashing, duplicate detection, real-time progress tracking (scanning → hashing → completed), and job termination.
Active job progress with status badges, progress bars, inline duplicate lists, ETA display, and searchable history.
Real-time stats at a glance: total files, storage size, uploaded count, duplicates found, and wasted space. Quick-action links to all major pages.
Search the entire library by filename, filepath, or SHA-256 hash from a dedicated search page with paginated results and duplicate badges.
Connect external machines via WebSocket with token-based auth. Dispatch scans from the web UI — clients scan locally, compute SHA-256 hashes, and stream results back. Remote client scans are 10–30% faster than server-side scanning.
In a professional studio setting, resources are frequently fragmented. Media assets on one drive, projects on another, source files on a NAS. Keeping track of what you have, where it lives, and whether duplicates exist becomes a full-time job.
Library Watcher solves this by providing a single, unified interface that indexes everything across all your storage. Browse by folder, search across the entire database, detect duplicates by content hash, manage file lifecycle, and even scan remote machines via WebSocket-connected clients. All from one clean dashboard.
Clone, install, scan. You'll be browsing your assets in no time.
git clone https://github.com/Mrdhnto/library-watcher.git
cd library-watcher
pnpm install
pnpm dev
Open http://localhost:3000 in your browser.
For production: pnpm build && pnpm preview
Navigate to the Scan page, enter a directory path, and start indexing. The scan runs in the background with real-time progress.
Use the Explorer to navigate scanned folders, the Files table for advanced search and bulk actions, and the Dashboard for an overview of your entire library.
Extend scanning to every machine in your studio.
Library Watcher is self-hosted — you run the server on your own machine or studio server. Remote scanning lets you index machines that can't run the full web server. The server runs centrally on your network, and each client machine connects to it via WebSocket. Both the server and clients must have network connectivity to each other.
In the web UI, go to Clients → Generate Token and copy the one-time token.
Make sure your Library Watcher server is running and accessible from the client machine on your network.
lw-client -u ws://your-server:8080/api/client/ws -t <token>
The first machine that connects with that token claims it, bound by hostname. That same machine can always reconnect, even after reboots.
In the web UI, go to Scan → switch to Remote Client → pick the client → enter a path. The client scans the directory locally, hashes files, and streams results back.
The client is a standalone Node.js app — no database or web server dependencies.
lw-client on GitHub →Library Watcher is a file indexing and management tool designed for studio environments. It scans multiple disks and directories, builds a centralized SQLite database, and provides a web dashboard to browse, search, and manage all your assets.
Each scanned file is hashed using SHA-256. Files with identical hashes are grouped and reported as duplicates. The dashboard shows wasted space, and the file views let you compare and manage duplicate groups.
Any locally mounted drive. NTFS, ext4, APFS, network shares, external USB drives. If your OS can see it, Library Watcher can scan it.
No. Library Watcher uses soft delete (you can also check to delete the real file), it flags files in the database without touching the filesystem. You can always revert or review before taking any real action.
Yes. Scans run as background jobs with real-time progress tracking. You can queue multiple scans, monitor each one independently, and terminate them if needed.
Yes. Library Watcher is self-hosted — you run the server on your own machine over your local network. Remote scanning uses a lightweight CLI client (lw-client) that connects to your server. Generate a one-time token from the Clients page, run lw-client on the target machine, and dispatch scans from the web UI. Remote client scans are 10–30% faster than server-side scanning — we recommend using them for all production indexing.
Absolutely. Library Watcher is MIT-licensed and available on GitHub. Contributions, issues, and feature ideas are all welcome.