Hugging Face model, dataset, and Space downloader with multi-threaded queueing, live progress, and seamless local folder integration in one desktop-style workspace.
Quick Start | Key Features | Tech Stack | Installation | Configuration | License
Important
Disclaimer: ModelDock is an independent community project and is not affiliated with, endorsed by, sponsored by, or officially supported by Hugging Face, Inc. or the official Hugging Face platform. The name "Hugging Face" is used only to describe compatibility with publicly available Hugging Face repository APIs.
Users are solely responsible for how they use this software, including compliance with repository licenses, gated model terms, organization policies, API limits, and storage usage.
- Launch the application (via source code or pre-compiled Windows executable).
- Search for any Model, Dataset, or Space using simple queries or the Advanced Search panel.
- Explore files in the interactive repository file tree, filter by formats (GGUF, SafeTensors, etc.), and select files to download.
- Configure paths in Preferences to link ModelDock directly with your LM Studio model directory.
- Manage downloads through the live queue with pause, resume, cancel, and speed limits.
ModelDock provides a comprehensive desktop-style cockpit for managing Hugging Face assets.
- Multi-Repo Search: Browse models, datasets, and Spaces from a single unified workspace.
- Advanced Metadata Filters: Query using rich Hugging Face tags, categories, libraries, and sort options.
- Context Length Filters: Refine text-generation models by context window sizes (from
2Kup to256K+). - Dynamic Tag Discovery: Explore search tags dynamically loaded from Hugging Face metadata with robust local fallbacks.
- Stateful Navigation: Smooth transitions between search page results and repository details without losing pagination or query state.
- Granular Downloader Queue: Full control over downloads with start, pause, resume, cancel, and retry capabilities.
- Real-Time Speed & Progress: Visualizes active downloading files with live speeds, ETAs, and task states.
- Tqdm Log Parsing: Extracts live progress details (e.g.,
11.0M/4.48G) directly from stdout streams. - Pre-download Disk Scan: Automatically checks local drive storage space before queuing files to prevent out-of-disk crashes.
- Multi-Threaded Concurrency: Configurable parallel download queue slots and worker execution.
- LM Studio Integration: Seamlessly sync your downloads directly with your local LM Studio models directory, featuring an easy-to-use directory lock/reset.
- Native Folder Browsing: Dedicated Browse button with dual-mode folder pickers (uses native Electron shell picker in packages, PowerShell script fallback in browser dev modes).
- Auto-Update Engine: Background check for latest releases via the GitHub API, showing custom Markdown changelogs inside a custom dialog.
- Complete App Reset: Instantly re-initializes SQLite database tables and frontend storage configs without needing an app restart.
- Systematic Session Recovery: Auto-pauses orphaned download workers on app launch to preserve system stability.
| Layer | Technologies | Role / Description |
|---|---|---|
| Frontend | React 19, TypeScript, Vite, Tailwind CSS v4, Motion | Responsive desktop GUI, smooth transitions & animations |
| Desktop Shell | Electron 35, electron-builder | Native OS wrapper, file explorer integration, auto-updater |
| Backend | Express.js, SQLite (better-sqlite3), TSX |
Settings store, queue management, process orchestrator |
| Downloader | Python 3.10+, huggingface_hub |
High-speed, multi-chunk, resumable Hugging Face API agent |
Ensure you have Node.js v20+ and Python v3.10+ installed.
# Clone the repository
git clone https://github.com/thebestgoodguy/modeldock.git
cd modeldock
# Install Node dependencies
npm install
# Install Hugging Face Python library
pip install huggingface_hubYou can launch the frontend and backend API servers separately for live reloading:
# Terminal 1: Start backend API server
npm run start:api
# Terminal 2: Start Vite web frontend
npm run devOnce both are running, open your browser at http://localhost:3000.
Build the frontend assets and run ModelDock inside its Electron shell:
npm run electronTo package ModelDock into a standalone Windows desktop executable:
# Generate a Windows Setup Installer (.exe)
npm run package:win
# Generate a portable, unpacked directory build
npm run package:dirThe packaging artifacts will be created in the release/ directory.
Open the Preferences panel in ModelDock to configure your environment:
- Hugging Face Token: Provide a token to search and download private or gated repositories.
- Default Download Path: Set the destination directory for downloaded files.
- LM Studio Integration: Map your model folder directly to LM Studio's path for instant model loading.
- Queue Concurrency: Limit simultaneous active downloads.
- Worker Management: Tweak the number of parallel Python download helpers and download speeds.
A high-level view of the repository layout:
modeldock/
βββ electron/ # Electron main and preload entry points
β βββ main.cjs # Main process lifecycle and IPC handlers
β βββ preload.cjs # Sandbox bridge and version exposures
βββ public/ # Static assets and desktop icons
βββ src/ # React 19 Frontend source code
β βββ components/ # Page components (Search, Queue, Settings)
β βββ App.tsx # Main application layout
β βββ index.css # Core styling system (Tailwind CSS v4)
βββ downloader.py # Python script containing the download worker
βββ server.js # Express API server with SQLite persistence
βββ package.json # App manifests and script configurations
βββ README.md # Project documentation
- ASAR Path Correction: The backend automatically resolves absolute script paths (
resources/downloader.py) and discovers system Python binaries inside packaged installations. - Queue Protection: Any active downloads that were interrupted due to app shutdown are automatically paused on startup to avoid corrupting files.
- Hugging Face Mirroring: You can configure custom Hugging Face proxy endpoints (e.g.
HF_ENDPOINT) directly in your backend settings or.envfiles.
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0). Under these terms, you are free to share and adapt the software, provided you give appropriate credit to Sadri ERCAN and link back to the official repository. Commercial use, sales, or monetization of this software is strictly prohibited. See the LICENSE file for details.
Made with β€οΈ by Sadri ERCAN


