Table of Contents

star_rate

Git Folder Downloader. Open Source Client-Side App.

rocket_launchQuick Start

1

Copy GitHub URL

Go to any GitHub repository, navigate to the specific folder you want, and copy the URL from your browser's address bar.

Sample link to copy and paste in input bar:

https://github.com/facebook/react/tree/main/packages/react-dom
2

Paste & Download

Paste the link into Git Folder Downloader. The app automatically detects the branch, recursive path, and file structure. Click Download to get a ZIP file.

Use the Paste button to automatically paste a GitHub URL from your clipboard.

You can optionally set a custom filename in the input box to override the default download name.

3

Private Repos?

Click the Settings (Gear icon) on the main page, paste your GitHub Personal Access Token, and save. Tokens are stored locally on your device.

linkSmart Links

You can generate direct download links for your team or documentation using the URL query feature.

How it works:

Append the GitHub URL after ?= to the Git Folder Downloader URL:

https://GitFolderDownloader.github.io/?=/user/repo/tree/branch/folder

https://GitFolderDownloader.github.io/?url=/user/repo/tree/branch/folder

When a user opens this link, Git Folder Downloader will automatically launch, fetch the files, and prepare the download without any user input.

Advanced URL Parameters

Examples

https://GitFolderDownloader.github.io/api/?url=https://github.com/user/repo/tree/main/folder&st=0&mx=10&name=part1

https://GitFolderDownloader.github.io/api/?url=https://github.com/user/repo/blob/main/readme.md&name=readme.md&return=https://example.com/

terminalHeadless API Mode (detailed)

The /api/ endpoint (headless mode) is designed for automated downloads and link integrations. It runs without UI inputs and supports the same options as the main app through query parameters.

Behavior

Request Parameters Recap

?url=GITHUB_LINK   (or use ?=GITHUB_LINK)
&st=START_INDEX (zero-based)
&mx=END_INDEX (end index, not inclusive — max files to include)
&name=CUSTOM_FILENAME (optional)
&return=URL_AFTER (optional)

Progress & Feedback

The API page provides a simple progress card: title, numeric progress text, and a progress bar. When using the API from other pages, the calling page should handle UX (e.g., show a spinner while the new tab runs the API).

Errors & Exit Codes

Security & Tokens

For private repositories you must provide a Personal Access Token (PAT). The app stores it locally in localStorage. Recommended minimal scope:

Important: Keep tokens secure — only use PATs you control. The app never sends tokens anywhere except to GitHub's API from your browser session.

Performance Notes

settingsSettings

Click the Gear icon to open settings:

view_weekPartial Folder Download (start/mx)

Use &st and &mx to target a specific range of files inside a folder. This is useful for:

Indexing rules:

pending_actionsPreview & Progress

Before downloading, Git Folder Downloader shows a live preview of the first 50 files and a progress bar during the download process. The API/headless page also exposes a simple progress UI (title, numeric status, and a bar).

extensionBrowser Extension / GitHub Integration

The integration script injects a small "Download" menu item into GitHub's context/action lists and provides a lightweight modal to configure name, st, and mx.

What the extension does

Modal Options

How it constructs the URL

finalUrl = 'https://GitFolderDownloader.github.io/api/?url=' + encodeURIComponent(location.href) + '&name=' + encodeURIComponent(name) + (st ? '&st=' + encodeURIComponent(st) : '') + (mx ? '&mx=' + encodeURIComponent(mx) : '');

Installation / Usage

  1. Install the browser extension or add this script as a userscript (Tampermonkey/Violentmonkey) — the injector relies on the modern GitHub DOM structure.
  2. Open any GitHub repo/folder/file and open the action list (three-dot menu / context menu). You will see a new "Download ..." item inserted.
  3. Click the item, set the options in the modal, and click Download. The API page opens in a new tab and performs the download.

Compatibility & Notes

helpTroubleshooting & FAQ

Why do I get "No files in selected range"?

Check your st and mx values — they are zero-based indices. If stmx, the script will fallback to downloading everything.

Network errors / raw.githubusercontent blocked

Raw content is fetched from raw.githubusercontent.com. If you see network errors, check your network, ad-blockers, or corporate proxies. Private repos require a token — raw fetch won't work for private content.

Token scopes — what do I need?

For private content, provide a PAT with repo scope. For read-only public access, you do not need a token.

Rate limits & failures

GitHub imposes rate limits on unauthenticated and authenticated requests. If you download many large repos quickly, you may hit rate limits. Using a token increases your rate limit quota.

Download takes too long

Large repos can be slow. Use &st and &mx to download in chunks. JSZip keeps everything client-side so memory is a limiting factor for very large zips.

auto_awesomeFeatures

folder_zip

Recursive Zip

Maintains full folder structure inside the downloaded ZIP.

lock

Private Support

Securely supports private repos via GitHub Tokens.

palette

8+ Themes

Cyberpunk, Dracula, AMOLED, and more built-in.

smartphone

Mobile Ready

Works perfectly on iOS and Android browsers.

code

Headless Mode

API version with no UI inputs, perfect for automated links.

reply

Smart Return

API automatically detects referrer and redirects back after download.

brush

Material Design 3

API interface uses a beautiful MD3 Forest Minimalist theme.

insert_drive_file

Partial Downloads

Download only selected files from large folders using start/max limits.

content_paste

Clipboard Support

Paste GitHub URLs directly from clipboard with one click.

pending

Live Progress & Preview

See file previews and real-time progress bar during downloads.

notifications

Notifications

Toast messages for success, errors, clipboard actions, and settings save.