Installation
GitSetu is designed to be as lightweight and accessible as possible. It runs natively across macOS, Linux, and Windows with zero external runtimes (no Node.js, Python, or Go required for shell installations). On Windows, the only prerequisite is Git for Windows.
1. Quick Onboarding (Zero-Dependency Shell Installers)
macOS & Linux (POSIX Bash)
Run in your standard terminal (Terminal, iTerm2, Alacritty, Kitty):
curl -sL https://raw.githubusercontent.com/bhaskarjha-dev/gitsetu/main/install.sh | bash
# Or via custom domain:
# curl -sL https://gitsetu.bhaskarjha.dev/install | bash
Windows (Native PowerShell)
Open PowerShell, Windows Terminal, or Command Prompt and run:
irm https://raw.githubusercontent.com/bhaskarjha-dev/gitsetu/main/install.ps1 | iex
# Or via custom domain:
# irm https://gitsetu.bhaskarjha.dev/install.ps1 | iex
[!IMPORTANT] Windows Prerequisite: GitSetu requires Git for Windows (which provides standard
git.exeandbash.exe). If you do not have Git installed yet, run:winget install Git.Gitor download from git-scm.com/download/win.
[!TIP] Zero Friction on Windows: The PowerShell installer automatically configures native
gitsetu.cmdandgitsetu.ps1command shims and adds%LOCALAPPDATA%\gitsetu\bindirectly to your Windows UserPATH. You can rungitsetuorgit setuimmediately in PowerShell, Command Prompt, or VS Code without opening Git Bash!
Windows (via Git Bash)
If you prefer working exclusively inside Git Bash:
curl -sL https://raw.githubusercontent.com/bhaskarjha-dev/gitsetu/main/install.sh | bash
2. Package Managers & Ecosystem Wrappers
Node.js — npm & npx
Run instantly without global installation, or install globally across any OS:
# Instant one-shot setup (no installation needed)
npx gitsetu setup --auto
# Or global install
npm install -g gitsetu
Windows — Microsoft WinGet
Install via the official Windows Package Manager:
# Official Microsoft Package Identifier (Publisher.PackageName)
winget install BhaskarJha.GitSetu
# Or once indexed in local manifests:
winget install GitSetu
[!NOTE]
BhaskarJha.GitSetuis the canonical, collision-proof Package Identifier in Microsoft’s officialwinget-pkgsrepository.
Windows — Scoop
Install via Scoop bucket:
scoop bucket add gitsetu https://github.com/bhaskarjha-dev/scoop-gitsetu
scoop install gitsetu
macOS & Linux — Homebrew
Install via Homebrew tap:
brew tap bhaskarjha-dev/tap
brew install gitsetu
Arch Linux — AUR
Install via your preferred AUR helper:
yay -S gitsetu
# or
paru -S gitsetu
Nix & NixOS — Nix Flake
Execute or install hermetically via Nix Flakes:
# Run directly without polluting system state
nix run github:bhaskarjha-dev/gitsetu -- setup --auto
# Or install to your user environment
nix profile install github:bhaskarjha-dev/gitsetu
GitHub CLI Extension
Integrate directly into gh CLI:
gh extension install bhaskarjha-dev/gh-gitsetu
gh gitsetu setup
3. Standalone Monolith (Direct Curl)
If you need a single, zero-dependency executable without cloning the repository or downloading extra folders:
mkdir -p ~/.local/bin
curl -sL https://raw.githubusercontent.com/bhaskarjha-dev/gitsetu/main/dist/gitsetu -o ~/.local/bin/gitsetu
chmod +x ~/.local/bin/gitsetu
4. Manual Installation (From Source)
If your machine is behind an air-gapped firewall:
# 1. Clone the repository
git clone https://github.com/bhaskarjha-dev/gitsetu.git ~/.local/share/gitsetu
# 2. Symlink or copy the binary
mkdir -p ~/.local/bin
ln -sf ~/.local/share/gitsetu/gitsetu ~/.local/bin/gitsetu
ln -sf ~/.local/share/gitsetu/gitsetu ~/.local/bin/git-setu
# 3. Ensure ~/.local/bin is in your PATH
export PATH="$HOME/.local/bin:$PATH"
Post-Installation First Steps
Once installed, verify that GitSetu is available:
gitsetu --version
# Outputs: gitsetu v1.0.0
Instant 1-Second Setup
Bootstrap all detected identities without prompts:
gitsetu setup --auto
Interactive Dashboard Setup
Review and tweak your identities visually:
gitsetu setup
# Or use the native Git alias:
git setu setup
Testing in Windows Sandbox
If you are on Windows and want to test GitSetu safely in an isolated, disposable virtual machine without touching your personal configuration, clone the repository and launch the sandbox harness:
.\sandbox\launch_sandbox.bat
Upgrading
GitSetu includes an atomic self-updater:
gitsetu update
Or upgrade through your package manager:
npm update -g gitsetu # npm
winget upgrade BhaskarJha.GitSetu # WinGet
scoop update gitsetu # Scoop
brew upgrade gitsetu # Homebrew
yay -Syu gitsetu # Arch AUR
Complete Uninstallation
Because GitSetu integrates cleanly into your global ~/.gitconfig and OpenSSH configuration files, always run teardown first before deleting files:
gitsetu teardown --deep
Removing Binaries & Files
- macOS / Linux:
curl -sL https://raw.githubusercontent.com/bhaskarjha-dev/gitsetu/main/uninstall.sh | bash - Windows (PowerShell):
irm https://raw.githubusercontent.com/bhaskarjha-dev/gitsetu/main/uninstall.ps1 | iex - npm:
npm uninstall -g gitsetu - WinGet:
winget uninstall BhaskarJha.GitSetu - Homebrew:
brew uninstall gitsetu - Scoop:
scoop uninstall gitsetu - GitHub CLI:
gh extension remove gh-gitsetu