|
1 | 1 | # git-scope |
2 | 2 |
|
3 | | -A **fast TUI dashboard** to view the git status of **all your repositories** in one place — no more `cd` → `git status` loops. |
4 | | - |
5 | | - |
6 | | - |
7 | | -<p align="left"> |
8 | | - <a href="https://github.com/Bharath-code/git-scope"> |
9 | | - <img src="https://img.shields.io/github/stars/Bharath-code/git-scope?style=flat-square" /> |
10 | | - </a> |
11 | | - <a href="https://github.com/Bharath-code/git-scope/blob/main/LICENSE"> |
12 | | - <img src="https://img.shields.io/github/license/Bharath-code/git-scope?style=flat-square" /> |
13 | | - </a> |
14 | | - <a href="https://goreportcard.com/report/github.com/Bharath-code/git-scope"> |
15 | | - <img src="https://goreportcard.com/badge/github.com/Bharath-code/git-scope?style=flat-square" /> |
16 | | - </a> |
17 | | - <a href="https://pkg.go.dev/github.com/Bharath-code/git-scope"> |
18 | | - <img src="https://pkg.go.dev/badge/github.com/Bharath-code/git-scope.svg" /> |
19 | | - </a> |
20 | | -</p> |
| 3 | +> **A fast TUI dashboard to view the git status of *all your repositories* in one place.** > Stop the `cd` → `git status` loop. |
21 | 4 |
|
22 | | ---- |
23 | | - |
24 | | -## 🚀 Overview |
25 | | - |
26 | | -`git-scope` helps you manage *many* git repositories from a single terminal UI. |
27 | | - |
28 | | -It auto-discovers repos, shows which ones are dirty/ahead/behind, and lets you jump into your editor instantly — ideal for multi-repo workflows, microservices, dotfiles, OSS contributions, and experimentation folders. |
| 5 | +[](https://goreportcard.com/report/github.com/Bharath-code/git-scope) |
| 6 | +[](https://opensource.org/licenses/MIT) |
| 7 | +[](https://github.com/Bharath-code/git-scope/stargazers) |
29 | 8 |
|
30 | | -🌐 **Landing Page:** https://bharath-code.github.io/git-scope/ |
| 9 | + |
31 | 10 |
|
32 | 11 | --- |
33 | 12 |
|
34 | | -## ✨ Features |
35 | | - |
36 | | -- 🔍 **Fuzzy Search** — find any repo by name, path, or branch (`/`) |
37 | | -- 🛡️ **Dirty Filter** — show only repos with uncommitted changes (`f`) |
38 | | -- ⚡ **Fast Startup** — JSON caching → ~10ms launch time |
39 | | -- 📊 **Dashboard** — branch, staged/unstaged counts, last commit time |
40 | | -- ⌨️ **Keyboard-Driven** — Vim navigation (`j/k`), sorting (`s`, `1–4`) |
41 | | -- 🚀 **Editor Jump** — open in VSCode, nvim, vim, helix (`Enter`) |
42 | | -- 🌿 **Contribution Graph** — GitHub-style local heatmap (`g`) |
43 | | -- 💾 **Disk Usage View** — `.git` + `node_modules` sizes (`d`) |
44 | | -- ⏰ **Timeline View** — see recent repo activity (`t`) |
45 | | -- 🔄 **Rescan Anytime** (`r`) |
| 13 | +## ⚡ Installation |
46 | 14 |
|
47 | | ---- |
| 15 | +Get started in seconds. |
48 | 16 |
|
49 | | -## 💡 Why I Built This |
50 | | - |
51 | | -I work across many small repositories — experiments, configs, microservices, side projects — and I kept forgetting which repos had uncommitted changes. |
52 | | - |
53 | | -Every morning started like this: |
| 17 | +### Homebrew (macOS/Linux) |
| 18 | +```bash |
| 19 | +brew tap Bharath-code/tap |
| 20 | +brew install git-scope |
| 21 | +```` |
| 22 | +### Update |
| 23 | +```bash |
| 24 | +brew upgrade git-scope |
| 25 | +```` |
| 26 | +### From Source (windows) |
54 | 27 |
|
55 | 28 | ```bash |
56 | | -cd repo-1 && git status |
57 | | -cd repo-2 && git status |
58 | | -cd repo-3 && git status |
59 | | -# ...repeat for 20+ repos |
| 29 | +go install github.com/Bharath-code/git-scope/cmd/git-scope@latest |
60 | 30 | ``` |
61 | 31 |
|
62 | | -It was slow, repetitive, and easy to miss dirty repos. |
| 32 | +*If you find this useful, please consider giving it a ⭐ star to help others find it\!* |
63 | 33 |
|
64 | | -I wanted a **single screen** that showed: |
| 34 | +----- |
65 | 35 |
|
66 | | -- which repos were dirty |
67 | | -- which were ahead/behind |
68 | | -- which had recent changes |
69 | | -- which needed attention |
| 36 | +## 🚀 Usage |
70 | 37 |
|
71 | | -No existing tool solved this well, especially for *many* repos. |
72 | | -So I built `git-scope` to reduce friction and keep everything visible at a glance. |
73 | | - |
74 | | ---- |
| 38 | +Simply run it in any directory containing your projects: |
75 | 39 |
|
76 | | -## 🆚 Comparison: git-scope vs lazygit |
77 | | - |
78 | | -| Feature | git-scope | lazygit | |
79 | | -|---------|-----------|---------| |
80 | | -| **Scope** | Many repos at once | One repo at a time | |
81 | | -| **Purpose** | Workspace overview | Deep repo interaction | |
82 | | -| **Dirty status across repos** | ✔ Yes | ❌ No | |
83 | | -| **Fuzzy repo search** | ✔ Yes | ❌ No | |
84 | | -| **Jump to repo/editor** | ✔ Yes | ❌ No | |
85 | | -| **Commit graph / diffs** | ❌ No | ✔ Yes | |
86 | | -| **Disk usage** | ✔ Yes | ❌ No | |
87 | | -| **Activity timeline** | ✔ Yes | ❌ No | |
88 | | -| **Ideal for** | Multi-repo devs, microservices, config folders | Single-repo workflows | |
89 | | - |
90 | | -**Summary:** |
91 | | -`git-scope` = overview of all repos |
92 | | -`lazygit` = powerful UI for one repo |
93 | | -Most developers use both. |
| 40 | +```bash |
| 41 | +git-scope |
| 42 | +``` |
| 43 | +#### Help |
| 44 | +```bash |
| 45 | +git-scope -h |
| 46 | +``` |
| 47 | +*By default, it recursively scans the current directory. You can configure permanent root paths later.* |
94 | 48 |
|
95 | | ---- |
| 49 | +----- |
96 | 50 |
|
97 | | -## 📦 Installation |
| 51 | +## 🆚 git-scope vs. lazygit |
98 | 52 |
|
99 | | -### **Homebrew (macOS/Linux)** |
100 | 53 |
|
101 | | -```sh |
102 | | -brew tap Bharath-code/tap |
103 | | -brew install git-scope |
104 | | -``` |
| 54 | + * **git-scope** is for your **workspace** (bird's-eye view). |
| 55 | + * **lazygit** is for a specific **repository** (deep dive). |
105 | 56 |
|
106 | | -**Upgrade:** |
| 57 | +| Feature | **git-scope** | **lazygit** | |
| 58 | +| :--- | :--- | :--- | |
| 59 | +| **Scope** | **All repos at once** | One repo at a time | |
| 60 | +| **Primary Goal** | Find what needs attention | Stage/Commit/Diff | |
| 61 | +| **Fuzzy Search** | Find repo by name/path | ❌ | |
| 62 | +| **Integration** | Press `Enter` to open editor | Press `Enter` to stage files | |
| 63 | +| **Performance** | \~10ms startup (cached) | Slower on large monorepos | |
107 | 64 |
|
108 | | -```sh |
109 | | -brew upgrade git-scope |
110 | | -``` |
| 65 | +----- |
111 | 66 |
|
112 | | -### **From Source** |
113 | | - |
114 | | -```sh |
115 | | -go install github.com/Bharath-code/git-scope/cmd/git-scope@latest |
116 | | -``` |
| 67 | +## ✨ Features |
117 | 68 |
|
118 | | -Upgrade by running the install command again. |
| 69 | + * **🔍 Fuzzy Search** — Find any repo by name, path, or branch (`/`). |
| 70 | + * **🛡️ Dirty Filter** — Instantly show only repos with uncommitted changes (`f`). |
| 71 | + * **🚀 Editor Jump** — Open the selected repo in VSCode, Neovim, Vim, or Helix (`Enter`). |
| 72 | + * **⚡ Blazing Fast** — JSON caching ensures \~10ms launch time even with 50+ repos. |
| 73 | + * **📊 Dashboard Stats** — See branch name, staged/unstaged counts, and last commit time. |
| 74 | + * **🌿 Contribution Graph** — GitHub-style local heatmap for your activity (`g`). |
| 75 | + * **💾 Disk Usage** — Visualize `.git` vs `node_modules` size (`d`). |
| 76 | + * **⏰ Timeline** — View recent activity across all projects (`t`). |
119 | 77 |
|
120 | | ---- |
| 78 | +----- |
121 | 79 |
|
122 | | -## 🖥️ Usage |
| 80 | +## ⌨️ Keyboard Shortcuts |
123 | 81 |
|
124 | | -```sh |
125 | | -git-scope |
126 | | -``` |
| 82 | +| Key | Action | |
| 83 | +| :--- | :--- | |
| 84 | +| `/` | **Search** repositories (Fuzzy) | |
| 85 | +| `f` | **Filter** (Cycle: All / Dirty / Clean) | |
| 86 | +| `s` | Cycle **Sort** Mode | |
| 87 | +| `1`–`4` | Sort by: Dirty / Name / Branch / Recent | |
| 88 | +| `Enter` | **Open** repo in Editor | |
| 89 | +| `c` | **Clear** search & filters | |
| 90 | +| `r` | **Rescan** directories | |
| 91 | +| `g` | Toggle **Contribution Graph** | |
| 92 | +| `d` | Toggle **Disk Usage** view | |
| 93 | +| `t` | Toggle **Timeline** view | |
| 94 | +| `q` | Quit | |
127 | 95 |
|
128 | | ---- |
| 96 | +----- |
129 | 97 |
|
130 | 98 | ## ⚙️ Configuration |
131 | 99 |
|
132 | | -Edit `~/.config/git-scope/config.yml`: |
| 100 | +Edit workspace location and code editor of your choice in `~/.config/git-scope/config.yml`: |
| 101 | + |
133 | 102 |
|
134 | 103 | ```yaml |
| 104 | +# ~/.config/git-scope/config.yml |
135 | 105 | roots: |
136 | 106 | - ~/code |
137 | | - - ~/work |
| 107 | + - ~/work/microservices |
| 108 | + - ~/personal/experiments |
138 | 109 |
|
139 | 110 | ignore: |
140 | 111 | - node_modules |
141 | 112 | - .venv |
| 113 | + - dist |
142 | 114 |
|
143 | | -editor: code # or nvim, vim, helix |
| 115 | +editor: code # options: code,nvim,lazygit,vim,cursor |
144 | 116 | ``` |
145 | 117 |
|
146 | | ---- |
147 | | -
|
148 | | -## ⌨️ Keyboard Shortcuts |
| 118 | +----- |
149 | 119 |
|
150 | | -| Key | Action | |
151 | | -|-----|--------| |
152 | | -| `/` | Search repos | |
153 | | -| `f` | Filter (All / Dirty / Clean) | |
154 | | -| `s` | Cycle sort mode | |
155 | | -| `1–4` | Sort by Dirty / Name / Branch / Recent | |
156 | | -| `Enter` | Open repo in editor | |
157 | | -| `c` | Clear search & filters | |
158 | | -| `r` | Rescan directories | |
159 | | -| `g` | Toggle contribution graph | |
160 | | -| `d` | Toggle disk usage view | |
161 | | -| `t` | Toggle timeline | |
162 | | -| `Esc` | Close panel | |
163 | | -| `q` | Quit | |
| 120 | +## 💡 Why I Built This |
164 | 121 |
|
165 | | ---- |
| 122 | +I work across dozens of small repositories—microservices, dotfiles, and side projects. I kept forgetting which repos had uncommitted changes or unpushed commits. |
166 | 123 |
|
167 | | -## 🗺️ Roadmap |
| 124 | +My mornings used to look like this: |
168 | 125 |
|
169 | | -- [ ] Background file watcher |
170 | | -- [ ] Quick actions (pull/push) |
171 | | -- [ ] Repo grouping (service/team/workspace) |
172 | | -- [ ] Team dashboards |
| 126 | +```bash |
| 127 | +cd repo-1 && git status |
| 128 | +cd ../repo-2 && git status |
| 129 | +# ... repeat for 20 repos |
| 130 | +``` |
173 | 131 |
|
174 | | ---- |
| 132 | +I built `git-scope` to solve the **"Multi-Repo Blindness"** problem. It gives me a single screen to see what is dirty, what is ahead/behind, and where I left off yesterday. |
175 | 133 |
|
176 | | -## 🔎 Related Keywords (SEO) |
| 134 | +----- |
177 | 135 |
|
178 | | -git workspace manager, git dashboard, git repository monitor, git repo viewer, multi-repo git tool, git status all repos, git TUI, terminal UI git manager, TUI dashboard for git, Bubble Tea TUI example, Go TUI application, Go CLI tool, git productivity tools, developer workflow tools, microservices repo management, local git analytics, contribution graph terminal, disk usage analyzer TUI, git repo activity timeline, fast TUI for git, Go project for beginners, open source Go tools, devops git utilities, multi-folder git scanner, git monorepo alternative |
| 136 | +## 🗺️ Roadmap |
179 | 137 |
|
180 | | ---- |
| 138 | + - [ ] Background file watcher (real-time updates) |
| 139 | + - [ ] Quick actions (bulk pull/fetch) |
| 140 | + - [ ] Repo grouping (Service / Team / Stack) |
| 141 | + - [ ] Custom team dashboards |
181 | 142 |
|
182 | 143 | ## 📄 License |
183 | 144 |
|
184 | | -MIT |
| 145 | +MIT © [Bharath-code](https://github.com/Bharath-code) |
185 | 146 |
|
186 | | ---- |
187 | | - |
188 | | -If you find this useful, a ⭐ star means a lot! |
| 147 | +``` |
| 148 | +``` |
0 commit comments