GitHub Folder Uploader
Drag a folder from Finder and push everything — including hidden dotfiles — to a GitHub repo in one commit.
⚠ Open this file in your browser to upload. It's running inside a preview window, which blocks connections to GitHub.
Download
github-uploader.html, then double-click it in Finder (or drag it onto Chrome/Safari).
Quick fill
Accepts any of these:
johntan/my-website ·
https://github.com/johntan/my-website ·
…/tree/main/some/folder (also fills branch + folder) ·
git@github.com:johntan/my-website.git.
Paste a token (github_pat_…) here and it goes into the token box.1 · Connect
What it is: a password-like key that lets this tool upload to your GitHub account.
Where to get it: github.com → your photo (top right) → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token. Give it a name, under Repository access pick your repo, under Permissions → Contents choose Read and write, then click Generate and copy it (it starts with
Where to get it: github.com → your photo (top right) → Settings → Developer settings → Personal access tokens → Fine-grained tokens → Generate new token. Give it a name, under Repository access pick your repo, under Permissions → Contents choose Read and write, then click Generate and copy it (it starts with
github_pat_ and is shown only once).What it is: which GitHub project the files go into, written as
Where to get it: open the repo on GitHub and look at the address bar. For
your-username/repo-name.Where to get it: open the repo on GitHub and look at the address bar. For
https://github.com/johntan/my-website type johntan/my-website (pasting the full link also works).
No repo yet? Click + (top right on github.com) → New repository.What it is: the line of history the files are added to. Most repos use
Where to get it: on the repo page, the button at the top left of the file list shows it (e.g. "main"). Leave blank to use the repo's default. Typing a new name (e.g.
main.Where to get it: on the repo page, the button at the top left of the file list shows it (e.g. "main"). Leave blank to use the repo's default. Typing a new name (e.g.
backup-nov) creates that branch.What it is: where in the repo your files land. Blank puts them at the top level.
Example:
Example:
backups/2026 puts your .gitignore at backups/2026/.gitignore. Folders that don't exist yet are created automatically.What it is: a short note describing this upload, shown in the repo's history so you can find it later. You make it up yourself. Blank uses "Upload N files".
2 · Add files
Drop folders or files here
Hidden files inside dropped folders are included automatically.
Tip: press ⌘ ⇧ . in Finder to see hidden files.
Tip: press ⌘ ⇧ . in Finder to see hidden files.
3 · Review & upload
No files yet
Files you add will appear here. Hidden files are highlighted.