Mirror your GitHub org structure to the local filesystem: parallel clone, incremental sync, TUI dashboard.
![]() |
|---|
![]() |
|---|
+--------------------------------------+------------+------------------------------------+
│ GITHUB PLATFORM │ Sync │ LOCAL FILE SYSTEM │
│ github.com │ │ /users/m/same-github/ │
+--------------------------------------+------------+------------------------------------+
│ github.com/manuelgruber │ <<==>> │ manuelgruber/ │
│ github.com/manuelgruber/.github │ <<==>> │ manuelgruber/.github/ │
│ github.com/manuelgruber/dotfiles │ <<==>> │ manuelgruber/dotfiles/ │
+--------------------------------------+------------+------------------------------------+
│ github.com/zaai-com │ <<==>> │ zaai-com/ │
│ github.com/zaai-com/powernight │ <<==>> │ zaai-com/powernight/ │
│ github.com/zaai-com/clean-autofill │ <<==>> │ zaai-com/clean-autofill/ │
│ github.com/zaai-com/git-same │ <<==>> │ zaai-com/git-same/ │
│ github.com/zaai-com/jekyll-aeo │ <<==>> │ zaai-com/jekyll-aeo/ │
+--------------------------------------+------------+------------------------------------+
│ github.com/company1 │ <<==>> │ company1/ │
│ github.com/company1/example.ai │ <<==>> │ company1/example.ai/ │
+--------------------------------------+------------+------------------------------------+
│ 3 orgs · 7 repos │ │ 3 dirs · 7 repos │
+--------------------------------------+------------+------------------------------------+
One command discovers every repo across your GitHub orgs and mirrors them locally, cloning new repos in parallel, fetching updates for existing ones, and skipping repos with uncommitted changes.
brew install zaai-com/tap/git-sameOther installation methods
cargo install git-sameDownload pre-built binaries from GitHub Releases for Linux (x86_64, ARM64), macOS (x86_64, Apple Silicon), and Windows (x86_64, ARM64).
git clone https://github.com/zaai-com/git-same
cd git-same
cargo install --path .Interactive (TUI)
git-sameLaunches the full terminal UI with dashboard, sync, status, and workspace management, all via keyboard shortcuts.
CLI
git-same init # 1. Create user config
git-same setup # 2. Configure workspace (interactive wizard)
git-same sync # 3. Clone new repos, fetch/pull existing
git-same status # 4. Check repo status across orgs| Command | Description |
|---|---|
git-same init |
Create config file with sensible defaults |
git-same setup |
Interactive wizard to configure a workspace |
git-same sync |
Discover, clone new, fetch/pull existing repos |
git-same status |
Show git status across all local repos |
git-same workspace |
List workspaces, set default |
git-same reset |
Remove all config, workspaces, and cache |
git-same scan |
Discover repos without cloning or syncing |
Initialize git-same configuration:
git-same init [-p <config-path>] [-f | --force]Creates a config file at ~/.config/git-same/config.toml with sensible defaults.
Configure a workspace (interactive wizard):
git-same setup [--name <NAME>]Walks through provider selection, authentication, org filters, and base path.
![]() |
|---|
Sync repositories: discover, clone new, fetch/pull existing:
git-same sync [OPTIONS]
Options:
-w, --workspace <WORKSPACE> Workspace to sync (path or unique folder name)
--pull Use pull instead of fetch for existing repos
-n, --dry-run Show what would be done
-c, --concurrency <N> Number of parallel operations (1-32)
--refresh Force re-discovery (ignore cache)
--no-skip-uncommitted Don't skip repos with uncommitted changesDiscovering repos
![]() |
|---|
Cloning & fetching
![]() |
|---|
Completed
![]() |
|---|
Show status of local repositories:
git-same status [OPTIONS]
Options:
-w, --workspace <WORKSPACE> Workspace to check (path or unique folder name)
-o, --org <ORG>... Filter by organization (repeatable)
-d, --uncommitted Show only repositories with uncommitted changes
-b, --behind Show only repositories behind upstream
--detailed Show detailed status information![]() |
|---|
Manage workspaces:
git-same workspace list # List configured workspaces
git-same workspace default [WORKSPACE] # Set default workspace (path or unique folder name)
git-same workspace default --clear # Clear default workspaceRemove all config, workspaces, and cache:
git-same reset [-f | --force]Git-Same installs multiple binary names so you can use whichever you prefer:
| Command | Description |
|---|---|
git-same |
Primary binary (always available) |
gitsame |
No-hyphen alias (symlink) |
gitsa |
Short alias (symlink) |
gisa |
Shortest alias (symlink) |
git same |
Git subcommand (requires git-same in PATH) |
Install method differences: Homebrew (
brew install zaai-com/tap/git-same) installs all aliases automatically.cargo install git-sameinstalls only the primary binary. The canonical alias list lives intoolkit/packaging/binary-aliases.txt.
All examples in this README use git-same, but any alias works interchangeably.
Git-Same depends on two external tools at runtime:
git— Git-Same shells out togitfor all repository operations — clone, fetch, pull, and status. Without it, no git operations can run.gh(GitHub CLI) — Git-Same callsgh auth tokento obtain GitHub API tokens for repo discovery andgh api userto resolve your username. Without it, Git-Same cannot authenticate with the GitHub API.
# Install GitHub CLI
brew install gh # macOS
# or: sudo apt install gh # Ubuntu
# Authenticate
gh auth login
# Git-Same will now use your gh credentials
git-same syncRunning git-same without a subcommand launches the interactive terminal UI.
| Screen | Purpose | Key bindings |
|---|---|---|
| Dashboard | Overview with stats, quick actions | s: Sync, t: Status, w: Workspaces, ?: Settings |
| Workspace Selector | Pick active workspace | [←] [↑] [↓] [→]: Move, 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 | [←] [↑] [↓] [→]: Move, /: Filter, D: Uncommitted, B: Behind, r: Refresh |
| Org Browser | Browse discovered repos by organization | [←] [↑] [↓] [→]: Move |
| Settings | View workspace settings | Esc: Back |
git-same syncgit-same sync --workspace work --pullgit-same status --uncommittedgit-same sync --dry-runMIT License - see LICENSE for details
- GitHub support
- Parallel cloning
- Smart filtering
- Progress bars
- Interactive TUI mode
- Workspace management
- GitLab support
- Bitbucket support
- Repo groups
- Web dashboard






