gitpulse-tui 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,8 @@
1
+ Metadata-Version: 2.4
2
+ Name: gitpulse-tui
3
+ Version: 1.0.0
4
+ Summary: Git Repo Dashboard TUI — live status, commits, diffs, and branches in your terminal
5
+ Requires-Python: >=3.10
6
+ Requires-Dist: textual>=0.50.0
7
+ Requires-Dist: rich>=13.0.0
8
+ Requires-Dist: gitpython>=3.1.0
@@ -0,0 +1,87 @@
1
+ # ⚡ GitPulse — Git Repo Dashboard TUI
2
+
3
+ A developer-focused terminal dashboard that scans a root directory for all local Git repositories and displays live status, recent commits, diffs, and branch management — all from the terminal.
4
+
5
+ Built with **Python**, **Textual**, **Rich**, and **GitPython**.
6
+
7
+ ## Screenshots
8
+
9
+ **📋 Status tab** — repo summary panel, staged/unstaged/untracked file lists, stash entries
10
+
11
+ ![Status tab](ss/status.png)
12
+
13
+ **📝 Commits tab** — last N commits with color-coded insertions/deletions
14
+
15
+ ![Commits tab](ss/commits.png)
16
+
17
+ ## Install (one command)
18
+
19
+ ```bash
20
+ git clone https://github.com/yourname/git-tui.git
21
+ cd git-tui
22
+ ./install.sh
23
+ ```
24
+
25
+ That's it. The installer:
26
+ - Checks your Python version (3.10+ required)
27
+ - Creates a virtual environment automatically
28
+ - Installs all dependencies
29
+ - Adds the `gitpulse` command to your shell (`~/.zshrc` / `~/.bashrc`)
30
+
31
+ Then reload your shell:
32
+ ```bash
33
+ source ~/.zshrc # or source ~/.bashrc
34
+ ```
35
+
36
+ ## Usage
37
+
38
+ ```bash
39
+ gitpulse # scans ~/projects (default)
40
+ gitpulse --root /path/to/repos # scans a custom directory
41
+ gitpulse --root . # scans current directory
42
+ gitpulse --commits 20 # show 20 commits per repo (default: 10)
43
+ gitpulse --version # print version
44
+ ```
45
+
46
+ ## Features
47
+
48
+ - **Sorted by Activity** — Repos ordered by most recent commit date
49
+ - **Status Badges** — Color-coded with file counts: 🟢 CLEAN / 🟡 MODIFIED (3) / 🔴 UNTRACKED (2)
50
+ - **Activity Sparkline** — 7-week commit frequency bar (`▁▂▃▅▇`) next to each repo
51
+ - **Relative Time** — "2h ago", "3d ago" shown next to each repo
52
+ - **Search/Filter** — Press `/` to filter repos by name instantly
53
+ - **Non-blocking scan** — Background worker keeps the UI responsive while scanning
54
+ - **Tabbed Main Panel**:
55
+ - **📋 Status** — Styled repo summary panel, staged/unstaged/untracked files with icons, stash list
56
+ - **📝 Commits** — Last N commits with color-coded `+green` / `-red` diff stats
57
+ - **🔀 Diff** — Syntax-highlighted uncommitted changes with line count footer
58
+ - **🌿 Branches** — All local branches, press Enter to switch
59
+ - **🌐 Remotes** — Remote URLs with ahead/behind sync status
60
+ - **🏷️ Tags** — Recent tags with date and tagger info
61
+ - **🌲 Tree** — Visual file hierarchy of all tracked files
62
+
63
+ ## Keybindings
64
+
65
+ | Key | Action |
66
+ |-----|--------|
67
+ | `↑` / `↓` | Navigate repo list |
68
+ | `/` | Focus search/filter |
69
+ | `Escape` | Clear search |
70
+ | `Tab` / `Shift+Tab` | Next/previous focus area |
71
+ | `Enter` | Switch branch (Branches tab) |
72
+ | `r` | Refresh / rescan all repos |
73
+ | `q` | Quit |
74
+
75
+ ## Requirements
76
+
77
+ - Python 3.10+
78
+ - Linux / macOS
79
+
80
+ ## Documentation
81
+
82
+ See [docs/](./gitpulse/docs/) for full developer documentation:
83
+ - [Architecture](./gitpulse/docs/architecture.md)
84
+ - [API Reference](./gitpulse/docs/api_reference.md)
85
+ - [UI Components](./gitpulse/docs/ui_components.md)
86
+ - [Theming](./gitpulse/docs/theming.md)
87
+ - [Contributing](./gitpulse/docs/contributing.md)
@@ -0,0 +1,4 @@
1
+ # gitpulse package
2
+ from gitpulse.utils import __version__
3
+
4
+ __all__ = ["__version__"]
@@ -0,0 +1,3 @@
1
+ """Allows running `python -m gitpulse` from anywhere."""
2
+ from gitpulse.main import main
3
+ main()