git-ripper

1.4.6 • Public • Published

Git-ripper

NPM version License Downloads Weekly Downloads Bundle Size GitHub issues GitHub stars GitHub forks Maintenance

Download specific folders from GitHub repositories without cloning the entire codebase

InstallationUsageFeaturesExamplesConfigurationTroubleshootingContributingLicense

Why Git-ripper?

Have you ever needed just a single component from a massive repository? Or wanted to reference a specific configuration directory without downloading gigabytes of code? Git-ripper solves this problem by letting you extract and download only the folders you need, saving bandwidth, time, and disk space.

Features

  • Selective Downloads: Fetch specific folders instead of entire repositories
  • Resume Interrupted Downloads: Automatically resume downloads that were interrupted or failed
  • Progress Tracking: Visual progress indicators with file-by-file download status
  • File Integrity Verification: Ensures downloaded files are complete and uncorrupted
  • Directory Structure: Preserves complete folder structure
  • Custom Output: Specify your preferred output directory
  • Branch Support: Works with any branch, not just the default one
  • Archive Export: Create ZIP archives of downloaded content
  • Checkpoint Management: View and manage saved download progress
  • Simple Interface: Clean, intuitive command-line experience
  • Lightweight: Minimal dependencies and fast execution
  • No Authentication: Works with public repositories without requiring credentials

Installation

Requirements

Git-ripper requires Node.js >=16.0.0 due to its use of modern JavaScript features and built-in Node.js modules.

Global Installation (Recommended)

npm install -g git-ripper

This installs Git-ripper as a global command-line tool accessible from anywhere in your terminal.

On-demand Usage

npx git-ripper <github-folder-url>

Run Git-ripper directly without installation using npx.

Usage

Basic Command

git-ripper https://github.com/username/repository/tree/branch/folder

With Custom Output Directory

git-ripper https://github.com/username/repository/tree/branch/folder -o ./my-output-folder

Creating ZIP Archive

git-ripper https://github.com/username/repository/tree/branch/folder --zip

Creating ZIP Archive with Custom Name

git-ripper https://github.com/username/repository/tree/branch/folder --zip="my-archive.zip"

Command Line Options

Option Description Default
-o, --output <directory> Specify output directory Current directory
--zip [filename] Create ZIP archive of downloaded content -
--no-resume Disable resume functionality -
--force-restart Ignore existing checkpoints and restart -
--list-checkpoints List all saved download checkpoints -
-V, --version Show version number -
-h, --help Show help -

Examples

Extract a Component Library

# Download React DOM package
git-ripper https://github.com/facebook/react/tree/main/packages/react-dom

Get Configuration Files

# Extract VS Code build configuration
git-ripper https://github.com/microsoft/vscode/tree/main/build -o ./vscode-build-config

Download Documentation

# Get Node.js documentation
git-ripper https://github.com/nodejs/node/tree/main/doc -o ./node-docs

Copy UI Templates

# Extract Tailwind components
git-ripper https://github.com/tailwindlabs/tailwindcss/tree/master/src/components -o ./tailwind-components

Download and Create Archive

# Download React DOM package and create a ZIP archive
git-ripper https://github.com/facebook/react/tree/main/packages/react-dom --zip

# Extract VS Code build configuration with custom archive name
git-ripper https://github.com/microsoft/vscode/tree/main/build --zip="vscode-build.zip"

Resume Downloads

Git-ripper now supports resuming interrupted downloads, making it perfect for large folders or unstable network connections.

Automatic Resume (Default Behavior)

# Start a download
git-ripper https://github.com/microsoft/vscode/tree/main/src/vs/workbench

# If interrupted (Ctrl+C, network issues, etc.), simply run the same command again
git-ripper https://github.com/microsoft/vscode/tree/main/src/vs/workbench
# It will automatically resume from where it left off

Force Restart

# Ignore any existing progress and start fresh
git-ripper https://github.com/microsoft/vscode/tree/main/src/vs/workbench --force-restart

Disable Resume

# Use traditional behavior without resume functionality
git-ripper https://github.com/microsoft/vscode/tree/main/src/vs/workbench --no-resume

Manage Checkpoints

# List all saved download progress
git-ripper --list-checkpoints

# Output shows:
# 1. ID: a1b2c3d4
#    URL: https://github.com/microsoft/vscode/tree/main/src/vs/workbench
#    Progress: 45/120 files
#    Last Updated: 2025-06-04T10:30:00Z

Resume Features

  • Automatic Progress Saving: Downloads are checkpointed every few files
  • File Integrity Verification: Ensures existing files are complete and valid
  • Smart Recovery: Detects corrupted or incomplete files and re-downloads them
  • Multi-Download Support: Manage multiple concurrent download projects
  • Progress Indicators: Visual feedback showing completed vs remaining files

How It Works

Git-ripper operates in five stages:

  1. URL Parsing: Extracts repository owner, name, branch, and target folder path
  2. Resume Check: Looks for existing download progress and validates already downloaded files
  3. API Request: Uses GitHub's API to fetch the folder structure
  4. Content Download: Retrieves each file individually while maintaining directory structure and saving progress
  5. Local Storage or Archiving: Saves files to your specified output directory or creates an archive

The resume functionality uses checkpoint files stored in .git_ripper_checkpoints/ to track download progress, file integrity hashes, and metadata for each download session.

Configuration

Git-ripper works out of the box without configuration. For rate-limited GitHub API usage, authentication support is under development.

Troubleshooting

Common Issues

Rate Limit Exceeded

Error: Request failed with status code 403

Solution: GitHub limits unauthenticated API requests. Wait a few minutes and try again.

Invalid URL Format

Error: Invalid GitHub URL format

Solution: Ensure your URL follows the pattern: https://github.com/owner/repo/tree/branch/folder

Folder Not Found

Error: Path not found in repository

Solution: Verify the folder path exists in the specified branch and repository.

Resume Issues

If you encounter problems with resume functionality:

# Clear all checkpoints and start fresh
git-ripper https://github.com/owner/repo/tree/branch/folder --force-restart

# Or disable resume entirely
git-ripper https://github.com/owner/repo/tree/branch/folder --no-resume

Corrupted Download

If files appear corrupted after resume:

# Force restart will re-download everything
git-ripper https://github.com/owner/repo/tree/branch/folder --force-restart

The resume feature automatically detects and re-downloads corrupted files, but --force-restart ensures a completely clean download.

Contributing

Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions to Git-ripper are greatly appreciated.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

See the open issues for a list of proposed features and known issues.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • GitHub API for making this tool possible
  • Everyone who has provided feedback and suggestions

Made with ❤️ by sairajB

If you find this tool useful, consider sponsoring its development

Package Sidebar

Install

npm i git-ripper

Weekly Downloads

81

Version

1.4.6

License

MIT

Unpacked Size

60.1 kB

Total Files

9

Last publish

Collaborators

  • sairajb