|
2 | 2 |
|
3 | 3 | > A fast TUI to see the status of all git repositories on your machine. |
4 | 4 |
|
5 | | - |
6 | | - |
| 5 | + |
| 6 | + |
| 7 | +[](LICENSE) |
| 8 | + |
| 9 | +<p align="center"> |
| 10 | + <img src="demo.gif" alt="git-scope demo" width="600"> |
| 11 | +</p> |
| 12 | + |
| 13 | +**[🌐 Visit the Landing Page](https://bharath-code.github.io/git-scope/)** |
7 | 14 |
|
8 | 15 | ## Overview |
9 | 16 |
|
10 | 17 | **git-scope** is a terminal-based dashboard that helps you manage multiple git repositories. It scans your configured directories, shows you which repos have uncommitted changes, and lets you jump into your editor with a single keystroke. |
11 | 18 |
|
12 | 19 | ### Features |
13 | 20 |
|
14 | | -- 🔍 **Scan** configured directories for git repos |
15 | | -- 📊 **Dashboard** showing branch, dirty files, and last commit |
16 | | -- ⌨️ **Keyboard-driven** navigation |
17 | | -- 🚀 **Jump** into your editor from the TUI |
18 | | -- ⚡ **Fast** concurrent scanning with goroutines |
| 21 | +- 🔍 **Fuzzy Search**: Find any repo by name, path, or branch with `/` |
| 22 | +- 🛡️ **Dirty Filter**: Press `f` to see only repos with uncommitted changes |
| 23 | +- ⚡ **Fast caching**: Instant startup using JSON caching |
| 24 | +- 📊 **Dashboard**: Shows branch, staged/unstaged counts, and last commit |
| 25 | +- ⌨️ **Keyboard-driven**: Vim-like navigation (`j`/`k`) and sorting (`s`) |
| 26 | +- 🚀 **Quick Jump**: Open any repo in your editor (VSCode, nvim, etc.) with `Enter` |
19 | 27 |
|
20 | 28 | ## Installation |
21 | 29 |
|
22 | | -### From Source |
23 | | - |
| 30 | +### Homebrew (macOS/Linux) |
24 | 31 | ```bash |
25 | | -go install github.com/Bharath-code/git-scope/cmd/git-scope@latest |
| 32 | +brew install Bharath-code/tap/git-scope |
26 | 33 | ``` |
27 | 34 |
|
28 | | -Or clone and build: |
29 | | - |
| 35 | +### From Source |
30 | 36 | ```bash |
31 | | -git clone https://github.com/Bharath-code/git-scope.git |
32 | | -cd git-scope |
33 | | -go build -o git-scope ./cmd/git-scope |
| 37 | +go install github.com/Bharath-code/git-scope/cmd/git-scope@latest |
34 | 38 | ``` |
35 | 39 |
|
36 | 40 | ## Usage |
37 | 41 |
|
38 | | -### Launch TUI Dashboard |
39 | | - |
| 42 | +### Launch TUI |
40 | 43 | ```bash |
41 | 44 | git-scope |
42 | | -# or |
43 | | -git-scope tui |
44 | | -``` |
45 | | - |
46 | | -### Scan and Output JSON |
47 | | - |
48 | | -```bash |
49 | | -git-scope scan |
50 | 45 | ``` |
51 | 46 |
|
52 | 47 | ### Configuration |
53 | | - |
54 | | -Create a config file at `~/.config/git-scope/config.yml`: |
| 48 | +On first run, `git-scope` will auto-detect your directories. To customize, edit `~/.config/git-scope/config.yml`: |
55 | 49 |
|
56 | 50 | ```yaml |
57 | | -# Directories to scan for git repos |
58 | 51 | roots: |
59 | 52 | - ~/code |
60 | | - - ~/projects |
61 | 53 | - ~/work |
62 | 54 |
|
63 | | -# Directories to ignore |
64 | 55 | ignore: |
65 | 56 | - node_modules |
66 | | - - .next |
67 | | - - dist |
68 | | - - build |
69 | | - - target |
70 | 57 | - .venv |
71 | | - - vendor |
72 | 58 |
|
73 | | -# Editor to open repos (default: code) |
74 | | -editor: code |
| 59 | +editor: code # or nvim, vim, helix |
75 | 60 | ``` |
76 | 61 |
|
77 | 62 | ## Keyboard Shortcuts |
78 | 63 |
|
79 | 64 | | Key | Action | |
80 | 65 | |-----|--------| |
81 | | -| `↑/↓` or `j/k` | Navigate repos | |
82 | | -| `Enter` | Open repo in editor | |
83 | | -| `r` | Rescan directories | |
84 | | -| `q` | Quit | |
85 | | - |
86 | | -## Dashboard Columns |
87 | | - |
88 | | -| Column | Description | |
89 | | -|--------|-------------| |
90 | | -| Repo | Repository name | |
91 | | -| Path | File path (truncated) | |
92 | | -| Branch | Current branch | |
93 | | -| Stg | Staged file count | |
94 | | -| Unst | Unstaged file count | |
95 | | -| Untrk | Untracked file count | |
96 | | -| Last Commit | Last commit timestamp | |
| 66 | +| `/` | **Search** repos | |
| 67 | +| `f` | Toggle **Filter** (All/Dirty/Clean) | |
| 68 | +| `s` | Cycle **Sort** mode | |
| 69 | +| `1-4` | Sort by Dirty/Name/Branch/Recent | |
| 70 | +| `c` | **Clear** search & filters | |
| 71 | +| `Enter` | **Open** repo in editor | |
| 72 | +| `r` | **Rescan** directories | |
| 73 | +| `q` | **Quit** | |
97 | 74 |
|
98 | 75 | ## Roadmap |
99 | 76 |
|
100 | | -- [ ] Caching for faster startup |
101 | | -- [ ] Fuzzy search filter |
102 | | -- [ ] Sort by different columns |
103 | | -- [ ] Quick actions (pull, push) |
104 | 77 | - [ ] Background file watcher |
105 | | - |
106 | | -## Tech Stack |
107 | | - |
108 | | -- **Go** - Fast, compiled binary |
109 | | -- **Bubbletea** - TUI framework |
110 | | -- **Lipgloss** - Terminal styling |
111 | | -- **Bubbles** - TUI components |
| 78 | +- [ ] Quick actions (pull, push) |
| 79 | +- [ ] Team dashboards |
112 | 80 |
|
113 | 81 | ## License |
114 | 82 |
|
|
0 commit comments