Carry committed Git work across your machines — without pushing WIP branches.
Website · Documentation · Releases · Issues
GitFuse is a CLI and dashboard for moving committed Git work between trusted devices through a private relay.
Commit on your laptop, run gitfuse sync, and continue from the same committed history on another machine with gitfuse pull — without creating a temporary remote branch just to move work around.
|
Stay inside the Git workflow you already use. |
Move committed work without publishing unfinished branches to your Git remote. |
Connect, inspect, and revoke machines from your GitFuse workspace. |
|
GitFuse works with committed Git objects rather than copying arbitrary folders. |
Restore repositories, reconnect machines, inspect history, and recover transferred work. |
See repositories, devices, history, usage, account settings, and plans in one place. |
curl -fsSL https://gitfuse.dev/install.sh | shbrew tap VectorSolus/gitfuse https://github.com/VectorSolus/GitFuse.git
brew install VectorSolus/gitfuse/gitfusewinget install gitfuseOr install using the exact package ID:
winget install --id GitFuse.GitFuse -ePre-built binaries and checksums are available from:
GitFuse v0.1.1 → GitHub Releases
gitfuse auth loginFor a headless environment:
gitfuse auth login --headlesscd your-project
gitfuse add .gitfuse syncgitfuse auth login
gitfuse pull📖 Read the full documentation →
A normal Git workflow becomes awkward when the code is committed but not ready to publish.
Without GitFuse, switching machines often means:
local commit
↓
create temporary WIP branch
↓
push it
↓
pull it elsewhere
↓
clean up the temporary branch later
With GitFuse:
local commit
↓
gitfuse sync
↓
gitfuse pull elsewhere
| GitFuse | WIP branch | Manual copy | Cloud folder | |
|---|---|---|---|---|
| Keeps unfinished work off your Git remote | ✅ | ❌ | ✅ | ✅ |
| Preserves Git commit history | ✅ | ✅ | ❌ | ❌ |
| CLI-native workflow | ✅ | ❌ | ❌ | |
| No temporary branch cleanup | ✅ | ❌ | ✅ | ✅ |
| Designed for multiple trusted devices | ✅ | ❌ | ||
| Repository-aware | ✅ | ✅ | ❌ | ❌ |
GitFuse does not replace GitHub, GitLab, or another Git remote.
It fills the gap before your work is ready to publish.
Device A GitFuse Relay Device B
──────── ───────────── ────────
git commit
│
▼
gitfuse sync ───────────────▶ committed bundle ─────────────▶ gitfuse pull
│
▼
continue working
GitFuse is focused on committed Git work.
- committed Git objects
- repository sync state
- commit history required for the sync workflow
- uncommitted working-tree changes
- untracked files
- ignored files
- stashes
- editor state
- arbitrary filesystem contents
If it is not committed to Git, GitFuse does not sync it.
| Action | Command |
|---|---|
| Sign in | gitfuse auth login |
| Headless sign in | gitfuse auth login --headless |
| Show identity | gitfuse auth whoami |
| Add current repository | gitfuse add . |
| List repositories | gitfuse repo list |
| Sync | gitfuse sync |
| Preview sync | gitfuse sync --dry-run |
| Select commits | gitfuse sync --pick |
| Pull | gitfuse pull |
| Pull to a branch | gitfuse pull --as-branch <branch> |
| Show status | gitfuse status |
| Show history | gitfuse history |
| List devices | gitfuse devices |
| Restore | gitfuse restore <relay-entry-name> |
| Diagnostics | gitfuse doctor |
| Version | gitfuse version |
| Update | gitfuse update |
View full CLI reference
gitfuse auth login
gitfuse auth login --headless
gitfuse auth whoami
gitfuse auth logoutgitfuse add .
gitfuse repo list
gitfuse repo remove <repo>
gitfuse repos
gitfuse use <name>gitfuse sync
gitfuse sync --dry-run
gitfuse sync --pick
gitfuse sync --all
gitfuse rebase-syncgitfuse pull
gitfuse pull --as-branch <branch>gitfuse status
gitfuse status --all
gitfuse history
gitfuse loggitfuse devices
gitfuse devices revoke <id>gitfuse autosync status
gitfuse autosync enable
gitfuse autosync enable --delay 5s
gitfuse autosync disablegitfuse restore <relay-entry-name>
gitfuse claim
gitfuse connect
gitfuse undo
gitfuse drop
gitfuse doctorgitfuse limits
gitfuse config-dir
gitfuse version
gitfuse updateThe GitFuse dashboard at gitfuse.dev gives you a visual workspace alongside the CLI.
| 📁 Repositories | View repositories currently connected to your workspace. |
| 🖥 Devices | Review and manage trusted machines. |
| ↻ History | Inspect recent GitFuse sync activity. |
| 📊 Usage | Track repository, device, storage, and history limits. |
| ⚡ Upgrade plans | Compare your current Free plan with upcoming Pro and Team plans. |
GitFuse is free during launch.
Pro and Team are coming soon with larger limits and additional workspace capabilities.
| Feature | Free | Pro | Team |
|---|---|---|---|
| Private repositories | 5 | Unlimited | Unlimited |
| Trusted devices | 2 | Unlimited | Unlimited |
| Relay storage | 500 MB | 30 GB | 30 GB |
| Sync history | 7 days | 365 days | 365 days |
| Private commit sync | ✅ | ✅ | ✅ |
| Priority workspace limits | — | ✅ | ✅ |
| Team workspace access | — | — | Coming soon |
| Shared repository controls | — | — | Coming soon |
| Managed device access | — | — | Coming soon |
| Repository-scoped API keys | Upcoming | Upcoming | Upcoming |
GitFuse is designed around explicit accounts, trusted devices, and committed Git history.
| Account authentication | A valid GitFuse account is required before workspace access is granted. |
| Explicit device trust | Machines are registered independently and can be revoked from your account. |
| Controlled pairing | CLI device authorization requires an explicit account-side approval flow. |
| Committed content boundary | GitFuse does not sync arbitrary uncommitted filesystem contents. |
| Workspace visibility | Repositories, device state, usage, and sync history are visible from the dashboard. |
GitFuse complements your existing Git remote and backup strategy rather than replacing either one.
Full documentation is available at:
| Section | Covers |
|---|---|
| Quick start | Install → authenticate → add repository → sync |
| Installation | Public installation methods |
| Authentication | Browser and headless sign-in |
| Repositories | Add, list, select, and remove repositories |
| Sync workflow | Sync, pull, commit selection, rewritten history |
| Status & history | Local and relay sync state |
| Devices | Trusted-device management |
| Auto sync | Automatic sync controls |
| Recovery | Restore, claim, connect, undo, doctor |
| Account & config | Limits, version, updates, config |
- Go 1.22+
- Node.js 20+
- pnpm
- PostgreSQL-compatible development database
Clone the repository:
git clone https://github.com/VectorSolus/GitFuse.git
cd GitFuse
pnpm installBuild the CLI:
go -C apps/cli build -o ../../bin/gitfuse .
./bin/gitfuse --helpRun tests:
go -C apps/cli test ./...
pnpm --filter @gitfuse/dashboard testRun the dashboard:
pnpm --filter @gitfuse/dashboard devContributions to the open-source GitFuse CLI are welcome.
For bugs and feature requests:
The GitFuse CLI is open source under the AGPL v3.
Hosted GitFuse infrastructure and managed services are operated separately.
GitFuse ⚡ ●
Your committed Git work, everywhere.
Website
·
Docs
·
Releases
