A smarter cd command that learns your most-used directories and lets you jump to them with a few keystrokes, across all major shells.
nosarthur/gita
A command-line tool for viewing the status of many git repos side by side and running git or shell commands across them.
- Stars
- 1,962
- Forks
- 95
- Open issues
- 40
- Last commit
- 17 days ago
What is it?
Gita manages a set of local git repositories from one place. Running `gita ll` shows each repo's branch, staged, unstaged, untracked and stashed state, and commit message in a single colored table, with branch colors indicating whether the local branch is ahead, behind, diverged, or has no remote.
Repos are registered with `gita add`, optionally grouped, and can be scoped with a context so that commands like `gita pull` apply only to a chosen group or to the group matching the current directory. Any git command or alias can be delegated to one or many repos from any working directory, and `gita shell` runs arbitrary shell commands across them.
Custom sub-commands are defined in a JSON file, and colors, displayed info items, status symbols and per-repo git flags (such as bare-repo dotfile setups) are configurable. Installation is available through pip, uv, or pipx.
Key features
- 01Shows branch, change state and last commit for all repos in one colored view.
- 02Delegates git commands and aliases to repos from any directory.
- 03Groups repos and sets a context so commands apply to a chosen subset.
- 04Recursively adds repos under a parent folder and builds hierarchical groups.
- 05Supports custom sub-commands, colors, status symbols and per-repo git flags.
Use cases
- Keeping an overview of many related repos in a monorepo-like project split across folders.
- Pulling or fetching updates across all of your local clones in one command.
- Restoring a set of repos on a new machine from a frozen configuration file.
- Running the same git or shell operation across several repositories at once.
Quick start
- 1
Install gita with pip
pip3 install -U gita - 2
Add your repos to gita
gita add <repo-path(s)> - 3
Show the status of all repos
gita ll
Things to know
- Shell and superman modes run arbitrary commands, so use them with care across many repos.
In collections
Topics
FAQ
- What is gita?
- A command-line tool for viewing the status of many git repos side by side and running git or shell commands across them. Gita manages a set of local git repositories from one place. Running `gita ll` shows each repo's branch, staged, unstaged, untracked and stashed state, and commit message in a single colored table, with branch colors indicating whether the local branch is ahead, behind, diverged, or has no remote.
- Is gita free to use? What license does it have?
- gita is open source under the MIT license. Check the license terms before using it in commercial products.
- Is gita still maintained?
- Actively maintained. The last commit to gita was on Oct 21, 2026.
- What can I use gita for?
- Keeping an overview of many related repos in a monorepo-like project split across folders. Pulling or fetching updates across all of your local clones in one command. Restoring a set of repos on a new machine from a frozen configuration file. Running the same git or shell operation across several repositories at once.
- How do I install gita?
- Install gita with pip: pip3 install -U gita Add your repos to gita: gita add <repo-path(s)> Show the status of all repos: gita ll
- Where can I get gita?
- The source code and installation instructions are on GitHub: https://github.com/nosarthur/gita
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
A feature-rich terminal pager for viewing text, with column mode, follow mode, exec mode and incremental search.
A command template and snippet manager for Bash, Zsh, Fish, Nushell and PowerShell that works like IntelliSense for your terminal.
A cat(1) clone for the terminal with syntax highlighting, Git change markers, and automatic paging.
A terminal directory navigator that shows trees with unlisted content collapsed, with fuzzy search, file operations, previews and git status.
A Git worktree CLI that auto-generates worktree paths from branch names, runs setup hooks, and removes worktrees together with their branches.