Upload files and folders to GitHub with a single click.
No Git. No terminal. No stress. Just click.
π Download Now Β· π Documentation Β· π Report a Bug Β· π‘ Request a Feature
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β OneClickGit Workflow β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ
β π Log ββββββΆβ π Pick ββββββΆβ π― Pick ββββββΆβ π€ Drop β
β In β β Repo β β Branch β β Files β
ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ
β
ββββββββββββ ββββββββββββ ββββββββββββ β
β β
Done βββββββ π Push βββββββ βοΈ Commitββββββββββββ
β Merged! β β to GitHubβ β Message β
ββββββββββββ ββββββββββββ ββββββββββββ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β‘ Total time from open to merged: < 30 seconds
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Icon | Feature | Description |
|---|---|---|
| π | GitHub OAuth | Secure single-click GitHub login β no tokens to copy-paste |
| π¦ | Repository Selector | Browse and select any repo you have access to |
| πΏ | Branch Selector | Target any branch β main, dev, feature branches, all of it |
| π | Folder Upload | Upload entire folder structures in one go |
| ποΈ | Nested Structure Preservation | Deep folder trees arrive on GitHub exactly as they are on your machine |
| π±οΈ | Drag & Drop | Drag files or folders directly into the app window |
| π | Upload Progress Tracking | Real-time per-file and overall progress bars |
| β‘ | Upload Speed Tracking | Live speed indicator so you know it's actually doing something |
| π€ | Auto Commit Messages | Sensible commit messages generated automatically |
| βοΈ | Custom Commit Messages | Write your own message when you actually care |
| π» | Skip Hidden Files | Automatically ignores .DS_Store, Thumbs.db, and other gremlins |
| π | .gitignore Support |
Respects your project's .gitignore rules out of the box |
| π | Upload Into Subfolders | Target a specific subdirectory in your repo as the upload destination |
| π | Overwrite Existing Files | Replace existing files without manually deleting them first |
| ποΈ | Optimized Upload Engine | Batched API calls for fast, reliable uploads even on large folders |
"Why not just use GitHub's website?" β someone, probably
Great question. Here's why OneClickGit slaps harder:
| Feature | GitHub Web Upload | OneClickGit |
|---|---|---|
| Upload individual files | β | β |
| Upload entire folders | β | β |
| Preserve nested folder structure | β | β |
| Drag and drop support | β | |
| Upload more than 100 files at once | β | β |
| Custom commit messages | β | β |
| Auto-generated commit messages | β | β |
Respect .gitignore |
β | β |
| Skip hidden files automatically | β | β |
| Upload into a specific subfolder | β | β |
| Upload progress bar | β | β |
| Upload speed indicator | β | β |
| Requires Git installed | β | β |
| Requires terminal knowledge | β | β |
OneClickGit keeps your folder hierarchy intact β no flattening, no chaos.
What you have locally:
my-project/
βββ index.html
βββ assets/
β βββ logo.png
β βββ banner.jpg
βββ css/
β βββ main.css
β βββ theme/
β βββ dark.css
β βββ light.css
βββ js/
βββ app.js
βββ utils/
βββ helpers.js
What lands on GitHub:
your-repo/
βββ my-project/ β uploaded subfolder (if specified)
βββ index.html
βββ assets/
β βββ logo.png
β βββ banner.jpg
βββ css/
β βββ main.css
β βββ theme/
β βββ dark.css
β βββ light.css
βββ js/
βββ app.js
βββ utils/
βββ helpers.js
β Every file. Every subfolder. Exactly where it should be. First try.
β οΈ OneClickGit currently supports Windows only. macOS and Linux builds are planned β see the Roadmap.
πͺ Windows
- Go to the Releases page
- Download
OneClickGit-Setup-x.x.x.exe - Run the installer
- Launch OneClickGit from the Start Menu or Desktop shortcut
Note: Windows may show a SmartScreen warning since the app isn't code-signed yet. Click More Info β Run Anyway to proceed.
π οΈ Build From Source
Prerequisites: Node.js 18+, npm or yarn
# Clone the repository
git clone https://github.com/imFluxray/OneClickGit.git
cd OneClickGit
# Install dependencies
npm install
# Start in development mode
npm run tauri dev
# Build for your current platform
npm run tauri buildBuilt binaries will appear in the dist/ folder.
Follow these steps to go from zero to committed in under a minute:
Step 1 β Log In
Click Sign in with GitHub. OneClickGit will open your browser for OAuth authentication. No passwords stored. No tokens to manage.
Step 2 β Select a Repository
Choose any repository from the dropdown. Public and private repos are both supported based on your GitHub permissions.
Step 3 β Select a Branch
Pick your target branch from the branch selector. Defaults to
main, but you can target any branch.
Step 4 β Choose Files or a Folder
- Click Add Files to select individual files, or
- Click Add Folder to select an entire directory, or
- Simply drag and drop files or folders directly into the app window.
Step 5 β (Optional) Configure Upload Settings
Set a destination subfolder, toggle
.gitignorerespect, or choose whether to overwrite existing files.
Step 6 β Write or Generate a Commit Message
Type your own commit message or let OneClickGit auto-generate one based on the files being uploaded.
Step 7 β Click Upload
Hit the big Upload button. Watch the progress bar. That's literally it.
Step 8 β You're Done
Your files are now on GitHub. Go touch grass.
OneClickGit includes a built-in Settings panel with the following options:
| Setting | Default | Description |
|---|---|---|
| Default Branch | main |
Pre-select a branch on launch |
| Auto-generate Commit Message | On |
Generate commit messages automatically |
| Skip Hidden Files | On |
Ignore files starting with . |
Respect .gitignore |
On |
Parse and apply .gitignore rules before upload |
| Overwrite Existing Files | Off |
Replace files that already exist in the repo |
| Default Upload Subfolder | (empty) | Pre-fill the destination subfolder field |
| Theme | System |
Light, Dark, or follow system preference |
| Launch at Login | Off |
Start OneClickGit automatically on system login |
| Show Upload Speed | On |
Display live transfer speed during upload |
Does OneClickGit require Git to be installed?
Nope. Not at all. That's the whole point. OneClickGit talks directly to the GitHub API β your machine doesn't need Git, a terminal, or any developer tooling whatsoever.
Is my GitHub token stored securely?
Yes. OAuth tokens are stored in your operating system's secure credential store (Credential Manager on Windows). They are never written to plain text files or sent anywhere other than GitHub's API.
What's the maximum upload size?
OneClickGit uses the GitHub Contents API, which has a 100 MB per-file limit. For files larger than 100 MB, you'll need to use Git LFS or the standard Git CLI. Total repo size limits are governed by GitHub's standard policies.
Can I upload to private repositories?
Yes. As long as your GitHub account has write access to the repository, OneClickGit can upload to it β public or private.
Does it work with GitHub Enterprise?
GitHub Enterprise support is on the roadmap! It's not available in the current release. Track progress in #42.
What happens if an upload fails halfway through?
Files that were successfully uploaded before the failure will remain in the repo. OneClickGit will display which files succeeded and which failed. You can retry the failed files without re-uploading everything.
Will macOS and Linux be supported?
Yes, eventually! Cross-platform support is planned. Windows is the focus for now while the core feature set is being built out. Star the repo and watch for release announcements.
Can I use this for CI/CD or automation?
OneClickGit is a desktop GUI app intended for manual use. For automation, scripting, or CI/CD workflows, the GitHub CLI or GitHub Actions are better-suited tools.
- GitHub OAuth login
- Repository & branch selector
- Single file upload
- Folder upload with structure preservation
- Drag and drop support
- Auto-generated commit messages
- Custom commit messages
- Upload progress tracking
- Upload speed indicator
- Skip hidden files
-
.gitignoresupport - Upload into subfolders
- Overwrite existing files toggle
- Optimized batched upload engine
- Upload history / recent uploads log
- Multi-account GitHub support
- Dark/light/system theme toggle
- macOS support
- Linux support
- GitHub Enterprise support
- GitLab support
- Gitea / self-hosted support
- File conflict preview before overwriting
- Undo last upload (revert commit)
- Scheduled / automatic uploads
- CLI companion tool
- Browser extension
- Mobile app (iOS / Android)
π‘ Have an idea? Open a feature request β we actually read them.
Contributions are what make open source worth waking up for. Any contribution you make is genuinely appreciated.
Fork it β Branch it β Build it β PR it β Ship it π
Getting started:
# 1. Fork the repo on GitHub, then clone your fork
git clone https://github.com/YOUR_USERNAME/OneClickGit.git
cd OneClickGit
# 2. Create a feature branch
git checkout -b feature/your-amazing-feature
# 3. Install dependencies and run in dev mode
npm install
npm run tauri dev
# 4. Make your changes, then commit
git commit -m "feat: add your amazing feature"
# 5. Push to your fork
git push origin feature/your-amazing-feature
# 6. Open a Pull Request on GitHubBefore submitting a PR, please:
- Run
npm run lintand fix any issues - Run
npm testand ensure all tests pass - Update documentation if you're changing behavior
- Keep PRs focused β one feature or fix per PR
Ways to contribute beyond code:
- π Report bugs
- π‘ Suggest features
- π Improve documentation
- π Add or improve translations
- β Star the repo (the most underrated contribution)
Please read CONTRIBUTING.md before contributing.
Distributed under the MIT License. See LICENSE for full details.
MIT License β do whatever you want with it.
Just don't remove the license header. That's it. That's the rule.
- Electron β for making cross-platform desktop apps with web tech possible
- Octokit β for the excellent GitHub API client
- GitHub REST API β for existing and being documented well
- Every open-source project that made this one possible
If OneClickGit saved you from opening a terminal today, consider leaving a β
It takes 2 seconds and it means the world to open-source maintainers.
Made with β€οΈ and a deep personal hatred of typing git push
Β© 2026 OneClickGit Contributors Β· MIT License Β· Issues Β· Discussions