Every GitHub repo you own,
synced to your filesystem.
Mirror GitHub org and repo structures locally. One Homebrew install, interactive TUI, parallel cloning.
What it mirrors
The folder structure on GitHub is the folder structure on disk.
GitHub URLs on the left, your filesystem tree on the right. Same names, same nesting, no surprises.
URL hierarchy
github.com
Filesystem hierarchy
~/same-github/
URL hierarchy
- github.com
- github.com/manuelgruber
- github.com/manuelgruber/.github
- github.com/manuelgruber/dotfiles
- github.com/zaai-com
- github.com/zaai-com/clean-autofill
- github.com/zaai-com/git-same
- github.com/zaai-com/jekyll-aeo
- github.com/zaai-com/powernight
- github.com/company1
- github.com/company1/example.ai
Filesystem hierarchy
- ~/same-github/
- manuelgruber/
- .github/
- dotfiles/
- zaai-com/
- clean-autofill/
- git-same/
- jekyll-aeo/
- powernight/
- company1/
- example.ai/
Workflow
Interactive when you want it. Scriptable when you need it.
Run git-same for the full TUI, or use subcommands directly in repeatable shell workflows.
git-same init Create config
Run init to create a config file at ~/.config/git-same/config.toml with sensible defaults.
git-same setup Set up a workspace
Choose GitHub.com or GitHub Enterprise, authenticate through GitHub CLI, select organizations, and choose the local root folder.
git-same sync Sync in parallel
Clone missing repositories and fetch or pull existing ones concurrently, while skipping local repos with uncommitted work by default.
git-same status Check status anytime
See which repositories are dirty, behind upstream, or ready before you switch projects or shut down for the day.
Installation
Three ways to install.
On macOS, the signed and notarized Homebrew cask is the recommended path. On Linux and headless macOS, install the git-same-cli formula. Both install all aliases automatically. Cargo works on any platform with the Rust toolchain.
brew install --cask zaai-com/tap/git-sameScreenshots
The whole workspace, visible in the terminal.
TUI dashboard
Workspace stats, quick actions, recent sync activity, and repo health in one terminal view.
Light mode
The same dashboard adapts cleanly for light terminal themes.
Workspace setup
Pick providers, organizations, filters, and the local base path interactively.
Discovery
Build the sync plan from GitHub before cloning or fetching anything.
Live sync
Parallel clone and fetch progress with active workers and per-repo status.
Completed run
Review updated, cloned, skipped, and failed repos after the sync finishes.
CLI status
Script-friendly status checks for dirty repos, behind branches, and workspace health.
Commands
Every subcommand, in one place.
| Command | Description |
|---|---|
git-same | Launch the interactive TUI (no subcommand) |
git-same init | Create config file with sensible defaults |
git-same setup | Interactive wizard to configure a workspace |
git-same sync | Discover, clone new, and fetch/pull existing repos |
git-same status | Show git status across all local repos |
git-same workspace | List workspaces, set or clear default |
git-same scan | Discover repos without cloning or syncing |
git-same reset | Remove all config, workspaces, and cache |
TUI
Every screen, every shortcut.
Run git-same without a subcommand to open the full-screen terminal UI. Navigate with keyboard shortcuts across all screens.
| Screen | Purpose | Key bindings |
|---|---|---|
| Dashboard | Overview with stats and quick actions | s: Sync · t: Status · w: Workspaces · ?: Settings |
| Workspace Selector | Pick active workspace | Enter: Select · d: Set default · n: New |
| Init Check | System requirements check | Enter: Check · c: Create config · s: Setup |
| Setup Wizard | Interactive workspace configuration | Step-by-step prompts |
| Command Picker | Choose operation to run | Enter: Run |
| Progress | Live sync progress with per-repo updates | Esc: Back when complete |
| Repo Status | Table of local repos with git status | /: Filter · D: Uncommitted · B: Behind · r: Refresh |
| Org Browser | Browse discovered repos by organization | ← ↑ ↓ → Navigate |
| Settings | View workspace settings | Esc: Back |
Aliases
Use the name that fits your muscle memory.
The Homebrew cask (macOS) and the git-same-cli formula (Linux) both install the primary binary plus short aliases automatically. All aliases work identically.
git-same gitsame gitsa gisa git same
Note: cargo install git-same installs only the primary binary. Both Homebrew install paths include all aliases.
# All of these run the same sync
git-same sync
gitsame sync
gitsa sync
gisa sync
git same syncRequirements
Uses the tools already in a GitHub developer setup.
- git
- Git-Same shells out to Git for clone, fetch, pull, and status operations. Must be in your PATH.
- GitHub CLI (
gh) -
Authentication uses
gh auth login, so there is no separate token flow to manage. Git-Same callsgh auth tokento obtain API credentials.
# Install GitHub CLI
brew install gh
# Authenticate
gh auth login
# Sync your workspace
git-same syncRoadmap
What's shipped. What's next.
Git-Same 3.0 ships with full GitHub support, an interactive TUI, and signed and notarized macOS builds via Homebrew cask. Provider support for GitLab and Bitbucket is next.
Shipped
- GitHub support
- Parallel cloning
- Smart filtering
- Progress bars
- Interactive TUI mode
- Workspace management
Planned
- GitLab support
- Bitbucket support
- Repo groups
- Web dashboard
Install Git-Same and sync your workspace.
Homebrew installs the binary and aliases. After that, run git-same setup once and git-same sync whenever your GitHub orgs change.