octotui 0.1.7__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.

Potentially problematic release.


This version of octotui might be problematic. Click here for more details.

@@ -0,0 +1,22 @@
1
+ # Python-generated files
2
+ __pycache__/
3
+ *.py[oc]
4
+ build/
5
+ dist/
6
+ wheels/
7
+ *.egg-info
8
+
9
+ # Virtual environments
10
+ .venv
11
+
12
+ .coverage
13
+
14
+ # Session memory
15
+ .puppy_session_memory.json
16
+
17
+ # Pytest cache
18
+ .pytest_cache/
19
+
20
+ dummy_path
21
+
22
+ .idea/
octotui-0.1.7/PKG-INFO ADDED
@@ -0,0 +1,207 @@
1
+ Metadata-Version: 2.4
2
+ Name: octotui
3
+ Version: 0.1.7
4
+ Summary: A blazing-fast TUI replacement for GitKraken - manage your Git repos with style!
5
+ Project-URL: Repository, https://github.com/never-use-gui/octotui
6
+ Project-URL: Homepage, https://github.com/never-use-gui/octotui
7
+ Project-URL: Bug Tracker, https://github.com/never-use-gui/octotui/issues
8
+ Author-email: Michael Pfaffenberger <michael@pfaffenberger.dev>
9
+ License: MIT
10
+ Keywords: git,gitkraken,terminal,textual,tui,version-control
11
+ Classifier: Environment :: Console
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Software Development :: Version Control :: Git
20
+ Classifier: Topic :: Terminals
21
+ Requires-Python: >=3.11
22
+ Requires-Dist: gac>=2.7.3
23
+ Requires-Dist: gitpython>=3.1.42
24
+ Requires-Dist: pyfiglet>=1.0.2
25
+ Requires-Dist: textual>=6.1.0
26
+ Description-Content-Type: text/markdown
27
+
28
+ <div align="center">
29
+
30
+ <img src="cute-octo.png" alt="OctoTUI Logo" width="300">
31
+
32
+ # 🐙 OctoTUI
33
+
34
+
35
+ [![PyPI version](https://img.shields.io/pypi/v/octotui.svg)](https://pypi.org/project/octotui/)
36
+ [![Python](https://img.shields.io/pypi/pyversions/octotui.svg)](https://pypi.org/project/octotui/)
37
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
38
+ [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
39
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
40
+
41
+ **A Textual TUI For GitKraken Lovers**
42
+
43
+ [Installation](#-installation) • [AI Commits](#-ai-powered-commits) • [Keybindings](#️-keybindings)
44
+
45
+ </div>
46
+
47
+ ---
48
+
49
+ ## 🚀 OctoTUI
50
+ ![octotui.png](octotui.png)
51
+ > **We love GitKraken so much, we wanted to bring that beautiful experience to the terminal!**
52
+
53
+ GitKraken is amazing - it's gorgeous, intuitive, and makes Git feel approachable. But as terminal enthusiasts, we found ourselves constantly context-switching between our editor and GitKraken. We wanted that same delightful experience without ever leaving the command line.
54
+
55
+ **OctoTUI is our love letter to both GitKraken and the terminal.**
56
+
57
+ ### 💙 What We Kept from GitKraken
58
+ - ✅ Beautiful, intuitive visual diffs
59
+ - ✅ Hunk-level staging control
60
+ - ✅ Branch visualization and management
61
+ - ✅ Commit history browsing
62
+
63
+ ### 🎯 What We Added for Terminal Lovers
64
+ - 🤖 AI-powered commit messages (via GAC)
65
+ - 🆓 100% free and open source
66
+ - 🏠 Never leave your terminal flow
67
+
68
+ ## 📦 Installation
69
+
70
+ ### Quick Start (Recommended)
71
+
72
+ ```bash
73
+ # Using uvx (isolated, recommended)
74
+ uvx octotui
75
+ ```
76
+
77
+ ### From Source (For Contributors)
78
+
79
+ ```bash
80
+ git clone https://github.com/never-use-gui/octotui.git
81
+ cd octotui
82
+ uv run octotui
83
+ ```
84
+
85
+ ### System Requirements
86
+
87
+ - 🐍 Python 3.11+
88
+ - 🔧 Git
89
+ - 💻 Any terminal with 256+ colors
90
+
91
+
92
+ ### First-Time Workflow
93
+
94
+ 1. **Review Changes**: See your diffs in beautiful color
95
+ 2. **Stage Hunks**: Click or use `s` to stage individual changes
96
+ 3. **Generate Commit**: Press `g` for AI-powered message (optional)
97
+ 4. **Commit**: Press `c` to commit with your message
98
+ 5. **Push**: Press `p` to push to remote
99
+
100
+ **Pro tip**: Press `h` anytime to see all available keybindings! 🚀
101
+
102
+ ## 🤖 AI-Powered Commits
103
+
104
+ ### Setup (Optional but Awesome)
105
+
106
+ ```bash
107
+ # Install GAC (Git Auto Commit)
108
+ uv pip install 'gac>=0.18.0'
109
+ ```
110
+
111
+ ### Configuration
112
+
113
+ 1. Press `Ctrl+G` in OctoTUI
114
+ 2. Choose your provider (we recommend **Cerebras** for free tier)
115
+ 3. Select your model
116
+ 4. Paste your API key
117
+ 5. Save & enjoy AI commit messages!
118
+
119
+ ## ⌨️ Keybindings
120
+
121
+ ### 📁 Navigation
122
+ | Key | Action |
123
+ |-----|--------|
124
+ | `↑/↓` | Navigate files/hunks |
125
+ | `Enter` | Select file |
126
+ | `Tab` / `Shift+Tab` | Cycle through UI elements |
127
+ | `1` / `Ctrl+1` | Switch to Unstaged tab |
128
+ | `2` / `Ctrl+2` | Switch to Staged tab |
129
+
130
+ ### 🔄 Git Operations
131
+ | Key | Action |
132
+ |-----|--------|
133
+ | `s` | Stage selected file |
134
+ | `u` | Unstage selected file |
135
+ | `a` | Stage ALL unstaged changes |
136
+ | `x` | Unstage ALL staged changes |
137
+ | `c` | Commit staged changes |
138
+
139
+ ### 🌿 Branch & Remote
140
+ | Key | Action |
141
+ |-----|--------|
142
+ | `b` | Switch branch |
143
+ | `r` | Refresh status |
144
+ | `p` | Push to remote |
145
+ | `o` | Pull from remote |
146
+
147
+ ### 🤖 AI Features
148
+ | Key | Action |
149
+ |-----|--------|
150
+ | `g` | Generate AI commit message |
151
+ | `Ctrl+G` | Configure GAC settings |
152
+
153
+ ### ⚙️ Application
154
+ | Key | Action |
155
+ |-----|--------|
156
+ | `h` | Show help modal |
157
+ | `q` | Quit application |
158
+ | `Ctrl+D` | Toggle dark mode |
159
+
160
+ ## 🎨 Git Status Colors
161
+
162
+ | Color | Meaning |
163
+ |-------|----------|
164
+ | 🟢 **Green** | Staged files (ready to commit) |
165
+ | 🟡 **Yellow** | Modified files (unstaged) |
166
+ | 🔵 **Blue** | Directories |
167
+ | 🟣 **Purple** | Untracked files |
168
+ | 🔴 **Red** | Deleted files |
169
+
170
+ ### Code Quality Standards
171
+
172
+ - ✅ Follow the Zen of Python
173
+ - ✅ DRY (Don't Repeat Yourself)
174
+ - ✅ YAGNI (You Aren't Gonna Need It)
175
+ - ✅ SOLID principles
176
+ - ✅ Keep files under 600 lines
177
+ - ✅ Write tests for new features
178
+ - ✅ Pass `ruff check` with zero errors
179
+
180
+ ## 📚 Tech Stack
181
+
182
+ - **[Textual](https://textual.textualize.io/)**: Modern TUI framework
183
+ - **[GitPython](https://gitpython.readthedocs.io/)**: Git operations
184
+ - **[GAC](https://github.com/cellwebb/gac)**: AI commit generation
185
+ - **[Ruff](https://github.com/astral-sh/ruff)**: Lightning-fast Python linter
186
+
187
+ ## 📜 License
188
+
189
+ MIT License - see [LICENSE](LICENSE) for details
190
+
191
+ ## 🙏 Acknowledgments
192
+
193
+ - Built with ❤️ using [Textual](https://textual.textualize.io/)
194
+ - AI commits powered by [GAC](https://github.com/cellwebb/gac)
195
+
196
+ ## 💬 Community
197
+
198
+ - 🐛 **Issues**: [GitHub Issues](https://github.com/never-use-gui/octotui/issues)
199
+ ---
200
+
201
+ <div align="center">
202
+
203
+ ### 🌟 If you like OctoTUI, give us a star! 🌟
204
+
205
+ [⬆ Back to Top](#-octotui)
206
+
207
+ </div>
@@ -0,0 +1,180 @@
1
+ <div align="center">
2
+
3
+ <img src="cute-octo.png" alt="OctoTUI Logo" width="300">
4
+
5
+ # 🐙 OctoTUI
6
+
7
+
8
+ [![PyPI version](https://img.shields.io/pypi/v/octotui.svg)](https://pypi.org/project/octotui/)
9
+ [![Python](https://img.shields.io/pypi/pyversions/octotui.svg)](https://pypi.org/project/octotui/)
10
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+ [![Code style: ruff](https://img.shields.io/badge/code%20style-ruff-000000.svg)](https://github.com/astral-sh/ruff)
12
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
13
+
14
+ **A Textual TUI For GitKraken Lovers**
15
+
16
+ [Installation](#-installation) • [AI Commits](#-ai-powered-commits) • [Keybindings](#️-keybindings)
17
+
18
+ </div>
19
+
20
+ ---
21
+
22
+ ## 🚀 OctoTUI
23
+ ![octotui.png](octotui.png)
24
+ > **We love GitKraken so much, we wanted to bring that beautiful experience to the terminal!**
25
+
26
+ GitKraken is amazing - it's gorgeous, intuitive, and makes Git feel approachable. But as terminal enthusiasts, we found ourselves constantly context-switching between our editor and GitKraken. We wanted that same delightful experience without ever leaving the command line.
27
+
28
+ **OctoTUI is our love letter to both GitKraken and the terminal.**
29
+
30
+ ### 💙 What We Kept from GitKraken
31
+ - ✅ Beautiful, intuitive visual diffs
32
+ - ✅ Hunk-level staging control
33
+ - ✅ Branch visualization and management
34
+ - ✅ Commit history browsing
35
+
36
+ ### 🎯 What We Added for Terminal Lovers
37
+ - 🤖 AI-powered commit messages (via GAC)
38
+ - 🆓 100% free and open source
39
+ - 🏠 Never leave your terminal flow
40
+
41
+ ## 📦 Installation
42
+
43
+ ### Quick Start (Recommended)
44
+
45
+ ```bash
46
+ # Using uvx (isolated, recommended)
47
+ uvx octotui
48
+ ```
49
+
50
+ ### From Source (For Contributors)
51
+
52
+ ```bash
53
+ git clone https://github.com/never-use-gui/octotui.git
54
+ cd octotui
55
+ uv run octotui
56
+ ```
57
+
58
+ ### System Requirements
59
+
60
+ - 🐍 Python 3.11+
61
+ - 🔧 Git
62
+ - 💻 Any terminal with 256+ colors
63
+
64
+
65
+ ### First-Time Workflow
66
+
67
+ 1. **Review Changes**: See your diffs in beautiful color
68
+ 2. **Stage Hunks**: Click or use `s` to stage individual changes
69
+ 3. **Generate Commit**: Press `g` for AI-powered message (optional)
70
+ 4. **Commit**: Press `c` to commit with your message
71
+ 5. **Push**: Press `p` to push to remote
72
+
73
+ **Pro tip**: Press `h` anytime to see all available keybindings! 🚀
74
+
75
+ ## 🤖 AI-Powered Commits
76
+
77
+ ### Setup (Optional but Awesome)
78
+
79
+ ```bash
80
+ # Install GAC (Git Auto Commit)
81
+ uv pip install 'gac>=0.18.0'
82
+ ```
83
+
84
+ ### Configuration
85
+
86
+ 1. Press `Ctrl+G` in OctoTUI
87
+ 2. Choose your provider (we recommend **Cerebras** for free tier)
88
+ 3. Select your model
89
+ 4. Paste your API key
90
+ 5. Save & enjoy AI commit messages!
91
+
92
+ ## ⌨️ Keybindings
93
+
94
+ ### 📁 Navigation
95
+ | Key | Action |
96
+ |-----|--------|
97
+ | `↑/↓` | Navigate files/hunks |
98
+ | `Enter` | Select file |
99
+ | `Tab` / `Shift+Tab` | Cycle through UI elements |
100
+ | `1` / `Ctrl+1` | Switch to Unstaged tab |
101
+ | `2` / `Ctrl+2` | Switch to Staged tab |
102
+
103
+ ### 🔄 Git Operations
104
+ | Key | Action |
105
+ |-----|--------|
106
+ | `s` | Stage selected file |
107
+ | `u` | Unstage selected file |
108
+ | `a` | Stage ALL unstaged changes |
109
+ | `x` | Unstage ALL staged changes |
110
+ | `c` | Commit staged changes |
111
+
112
+ ### 🌿 Branch & Remote
113
+ | Key | Action |
114
+ |-----|--------|
115
+ | `b` | Switch branch |
116
+ | `r` | Refresh status |
117
+ | `p` | Push to remote |
118
+ | `o` | Pull from remote |
119
+
120
+ ### 🤖 AI Features
121
+ | Key | Action |
122
+ |-----|--------|
123
+ | `g` | Generate AI commit message |
124
+ | `Ctrl+G` | Configure GAC settings |
125
+
126
+ ### ⚙️ Application
127
+ | Key | Action |
128
+ |-----|--------|
129
+ | `h` | Show help modal |
130
+ | `q` | Quit application |
131
+ | `Ctrl+D` | Toggle dark mode |
132
+
133
+ ## 🎨 Git Status Colors
134
+
135
+ | Color | Meaning |
136
+ |-------|----------|
137
+ | 🟢 **Green** | Staged files (ready to commit) |
138
+ | 🟡 **Yellow** | Modified files (unstaged) |
139
+ | 🔵 **Blue** | Directories |
140
+ | 🟣 **Purple** | Untracked files |
141
+ | 🔴 **Red** | Deleted files |
142
+
143
+ ### Code Quality Standards
144
+
145
+ - ✅ Follow the Zen of Python
146
+ - ✅ DRY (Don't Repeat Yourself)
147
+ - ✅ YAGNI (You Aren't Gonna Need It)
148
+ - ✅ SOLID principles
149
+ - ✅ Keep files under 600 lines
150
+ - ✅ Write tests for new features
151
+ - ✅ Pass `ruff check` with zero errors
152
+
153
+ ## 📚 Tech Stack
154
+
155
+ - **[Textual](https://textual.textualize.io/)**: Modern TUI framework
156
+ - **[GitPython](https://gitpython.readthedocs.io/)**: Git operations
157
+ - **[GAC](https://github.com/cellwebb/gac)**: AI commit generation
158
+ - **[Ruff](https://github.com/astral-sh/ruff)**: Lightning-fast Python linter
159
+
160
+ ## 📜 License
161
+
162
+ MIT License - see [LICENSE](LICENSE) for details
163
+
164
+ ## 🙏 Acknowledgments
165
+
166
+ - Built with ❤️ using [Textual](https://textual.textualize.io/)
167
+ - AI commits powered by [GAC](https://github.com/cellwebb/gac)
168
+
169
+ ## 💬 Community
170
+
171
+ - 🐛 **Issues**: [GitHub Issues](https://github.com/never-use-gui/octotui/issues)
172
+ ---
173
+
174
+ <div align="center">
175
+
176
+ ### 🌟 If you like OctoTUI, give us a star! 🌟
177
+
178
+ [⬆ Back to Top](#-octotui)
179
+
180
+ </div>
@@ -0,0 +1 @@
1
+ __version__ = "0.1.0"
@@ -0,0 +1,6 @@
1
+ """Entry point for running octotui as a module."""
2
+
3
+ from octotui.main import main
4
+
5
+ if __name__ == "__main__":
6
+ main()