A minimalistic, Material Design 3 enabled web tool to download specific folders or files from GitHub repositories as ZIPs. Works strictly client-side.
Access the main tool here: https://GitFolderDownloader.github.io/
Access the API here: https://GitFolderDownloader.github.io/api/
Git Folder Downloader Api includes a powerful "Headless API" page (api.html). This allows you to trigger downloads programmatically or via direct links without interacting with the main UI.
https://GitFolderDownloader.github.io/api/
| Parameter | Required | Description | Example |
|---|---|---|---|
url |
Yes | The full GitHub URL to the folder or file. | https://github.com/user/repo/tree/main/src |
filename |
No | Custom name for the downloaded file (auto-adds extension). | my-backup |
token |
No | GitHub Personal Access Token (for private repos). | ghp_xxxxxxxx |
Download the packages folder from the React repo:
https://GitFolderDownloader.github.io/api/?url=https://github.com/facebook/react/tree/main/packages
Download the folder but save it as react-core.zip:
https://GitFolderDownloader.github.io/api/?url=https://github.com/facebook/react/tree/main/packages&filename=react-core
You can also use the hash or ?= syntax:
https://GitFolderDownloader.github.io/api/?=https://github.com/facebook/react/tree/main/packages
If a repository is too large, you can limit the number of files to download using &st (Start) and &mx (Max).
https://GitFolderDownloader.github.io/?=https://github.com/facebook/react/tree/main/packages&st=50&mx=150&st=50: Start downloading from the 50th file.&mx=150: Stop downloading at the 150th file.
When the user visits this link, the app will:
- Parse the URL.
- Auto-fill the input and limit fields.
- Immediately start fetching and zipping files 50 to 150.
You can use an iframe or window.open to trigger downloads from your own website:
function triggerDownload() {
const repo = "https://github.com/facebook/react/tree/main/packages";
const apiUrl = `https://git-zip-pro.vercel.app/api/?url=${repo}`;
window.open(apiUrl, '_blank');
}- No Server: All logic runs in your browser.
- Tokens: If you enter a GitHub Token, it is saved to
localStorageon your device only. It is never sent to us.
Open Source. GNU GENERAL PUBLIC LICENSE Version 3