close
Skip to content

Repository files navigation

GitFuse

GitFuse ⚡

Carry committed Git work across your machines — without pushing WIP branches.

Website  ·  Documentation  ·  Releases  ·  Issues

GitFuse Docs GitFuse v0.1.1 AGPL-3.0 Built by VectorSolus

macOS Linux Windows Homebrew WinGet


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.

⚡ CLI first

Stay inside the Git workflow you already use.

commit → sync → pull

🔒 Private workflow

Move committed work without publishing unfinished branches to your Git remote.

🖥 Trusted devices

Connect, inspect, and revoke machines from your GitFuse workspace.

📦 Git-native

GitFuse works with committed Git objects rather than copying arbitrary folders.

↩ Recovery tools

Restore repositories, reconnect machines, inspect history, and recover transferred work.

📊 Dashboard

See repositories, devices, history, usage, account settings, and plans in one place.


Quick Install

Linux / macOS

curl -fsSL https://gitfuse.dev/install.sh | sh

Homebrew

brew tap VectorSolus/gitfuse https://github.com/VectorSolus/GitFuse.git
brew install VectorSolus/gitfuse/gitfuse

Windows

winget install gitfuse

Or install using the exact package ID:

winget install --id GitFuse.GitFuse -e

Manual binaries

Pre-built binaries and checksums are available from:

GitFuse v0.1.1 → GitHub Releases


Getting Started

1. Authenticate your machine

gitfuse auth login

For a headless environment:

gitfuse auth login --headless

2. Add a repository

cd your-project
gitfuse add .

3. Sync committed work

gitfuse sync

4. Continue on another machine

gitfuse auth login
gitfuse pull

📖 Read the full documentation →


Why GitFuse?

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 vs. common workarounds

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.


How It Works

       Device A                     GitFuse Relay                     Device B
       ────────                     ─────────────                     ────────

     git commit
         │
         ▼
   gitfuse sync  ───────────────▶  committed bundle  ─────────────▶  gitfuse pull
                                                                          │
                                                                          ▼
                                                                  continue working

GitFuse is focused on committed Git work.

GitFuse moves

  • committed Git objects
  • repository sync state
  • commit history required for the sync workflow

GitFuse does not move

  • 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.


CLI Reference

Common commands

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

Authentication

gitfuse auth login
gitfuse auth login --headless
gitfuse auth whoami
gitfuse auth logout

Repositories

gitfuse add .
gitfuse repo list
gitfuse repo remove <repo>
gitfuse repos
gitfuse use <name>

Sync

gitfuse sync
gitfuse sync --dry-run
gitfuse sync --pick
gitfuse sync --all
gitfuse rebase-sync

Pull

gitfuse pull
gitfuse pull --as-branch <branch>

Status & History

gitfuse status
gitfuse status --all
gitfuse history
gitfuse log

Devices

gitfuse devices
gitfuse devices revoke <id>

Auto Sync

gitfuse autosync status
gitfuse autosync enable
gitfuse autosync enable --delay 5s
gitfuse autosync disable

Recovery

gitfuse restore <relay-entry-name>
gitfuse claim
gitfuse connect
gitfuse undo
gitfuse drop
gitfuse doctor

Account & Utilities

gitfuse limits
gitfuse config-dir
gitfuse version
gitfuse update

Dashboard

The 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.

Sign-in methods

Email OTP Google GitHub


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

Security

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.


Documentation

Full documentation is available at:

gitfuse.dev/docs →

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

Built With

Go TypeScript Next.js Supabase Vercel Render Resend


Development

Requirements

  • 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 install

Build the CLI:

go -C apps/cli build -o ../../bin/gitfuse .
./bin/gitfuse --help

Run tests:

go -C apps/cli test ./...
pnpm --filter @gitfuse/dashboard test

Run the dashboard:

pnpm --filter @gitfuse/dashboard dev

Contributing

Contributions to the open-source GitFuse CLI are welcome.

For bugs and feature requests:

Open an issue →


License

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

About

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages