Shotminer is a powerful, developer-friendly Dribbble Design Scraper CLI Tool. It allows you to search and download high-quality UI/UX designs directly from your terminal using a highly aesthetic and modular setup built with Node.js, TypeScript, and Puppeteer.
- π Deep Scraping: Navigates into individual shot pages to extract all available images, not just the thumbnail.
- πΌοΈ Asset Controls: CLI flags to control output format, resolution, and quality.
- β‘ Sharp Integration: High-performance image processing for fast conversions and resizing.
- β¬ Multi-Image Support: Downloads images sequentially to organized per-shot subfolders.
- π¨ Beautiful CLI UX: Interactive prompts, loaders, and real-time processing status.
- π±οΈ Interactive Multi-Select: Optionally choose exactly which designs to download from the search results.
- π¦ Batch Scraping: Supply multiple search prompts at once for automated sequential downloading.
- π‘οΈ Resilience & Performance: Built-in automatic retries for failed downloads, parallel downloading, and rate limiting.
- ποΈ Smart Caching: Avoids re-downloading the same designs with local caching and deduplication.
- π― Advanced Filtering: Filter search results by specific hex colors, timeframes, or Dribbble tags.
- π Pagination: Scrape multiple pages of search results to discover more designs.
- π οΈ Developer Friendly: Completely typed, modular, and optimized for contribution.
- Node.js (v18.x or above)
- NPM or Yarn
You can install the tool globally:
npm install -g shotminer
Execute the CLI from anywhere:
shotminer "dashboard UI" -l 5 -f png -r 4k -q high-l, --limit <number>: Limit the number of shots to fetch (Default:10).-f, --format <format>: Image format:original,png,jpg, orwebp(Default:original).-r, --resolution <res>: Resolution:original,1080p, or4k(Default:original).-q, --quality <level>: Compression quality:high,medium, orlow(Default:high).-s, --select: Interactive multi-select: manually choose which discovered shots to download.--batch <prompts>: Comma-separated list of search prompts for batch scraping.--retries <n>: Max retry attempts for failed downloads (Default:3).--concurrency <n>: Max parallel downloads (Default:3).--rate-limit <ms>: Delay between requests in ms to avoid rate limits (Default:1000).--no-cache: Disable download cache/deduplication.--color <color>: Filter by hex color code (e.g.,ff0000).--timeframe <tf>: Filter by timeframe:week,month,year,ever.--tag <tag>: Filter by Dribbble tag.--pages <n>: Number of search result pages to scrape (Default:1).-h, --help: Show help for command.
The application organizes downloads into a structured hierarchy based on your query and individual shot titles:
designs/
βββ dashboard_ui/
βββ shot_title_1/
β βββ image_1.png
β βββ image_2.png
βββ shot_title_2/
βββ image_1.png
Create a .env file in the root of the project to configure defaults:
# Disable or enable headless mode (default: true) HEADLESS=true # Limit how many pictures you want per command execution RESULTS_LIMIT=10 # Destination folder name DESIGNS_SUBDIR=designs