Skip to main content

A blazing-fast TUI replacement for GitKraken - manage your Git repos with style!

Project description

OctoTUI Logo

๐Ÿ™ OctoTUI

PyPI version Python License: MIT Code style: ruff PRs Welcome

A Textual TUI For GitKraken Lovers

Installation โ€ข AI Commits โ€ข Keybindings


๐Ÿš€ OctoTUI

octotui.png

We love GitKraken so much, we wanted to bring that beautiful experience to the terminal!

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.

OctoTUI is our love letter to both GitKraken and the terminal.

๐Ÿ’™ What We Kept from GitKraken

  • โœ… Beautiful, intuitive visual diffs
  • โœ… Hunk-level staging control
  • โœ… Branch visualization and management
  • โœ… Commit history browsing

๐ŸŽฏ What We Added for Terminal Lovers

  • ๐Ÿค– AI-powered commit messages (via GAC)
  • ๐Ÿ†“ 100% free and open source
  • ๐Ÿ  Never leave your terminal flow

๐Ÿ“ฆ Installation

Quick Start (Recommended)

# Using uvx (isolated, recommended)
uvx octotui

From Source (For Contributors)

git clone https://github.com/never-use-gui/octotui.git
cd octotui
uv run octotui

System Requirements

  • ๐Ÿ Python 3.11+
  • ๐Ÿ”ง Git
  • ๐Ÿ’ป Any terminal with 256+ colors

First-Time Workflow

  1. Review Changes: See your diffs in beautiful color
  2. Stage Hunks: Click or use s to stage individual changes
  3. Generate Commit: Press g for AI-powered message (optional)
  4. Commit: Press c to commit with your message
  5. Push: Press p to push to remote

Pro tip: Press h anytime to see all available keybindings! ๐Ÿš€

๐Ÿค– AI-Powered Commits

Setup (Optional but Awesome)

# Install GAC (Git Auto Commit)
uv pip install 'gac>=0.18.0'

Configuration

  1. Press Ctrl+G in OctoTUI
  2. Choose your provider (we recommend Cerebras for free tier)
  3. Select your model
  4. Paste your API key
  5. Save & enjoy AI commit messages!

โŒจ๏ธ Keybindings

๐Ÿ“ Navigation

Key Action
โ†‘/โ†“ Navigate files/hunks
Enter Select file
Tab / Shift+Tab Cycle through UI elements
1 / Ctrl+1 Switch to Unstaged tab
2 / Ctrl+2 Switch to Staged tab

๐Ÿ”„ Git Operations

Key Action
s Stage selected file
u Unstage selected file
a Stage ALL unstaged changes
x Unstage ALL staged changes
c Commit staged changes

๐ŸŒฟ Branch & Remote

Key Action
b Switch branch
r Refresh status
p Push to remote
o Pull from remote

๐Ÿค– AI Features

Key Action
g Generate AI commit message
Ctrl+G Configure GAC settings

โš™๏ธ Application

Key Action
h Show help modal
q Quit application
Ctrl+D Toggle dark mode

๐ŸŽจ Git Status Colors

Color Meaning
๐ŸŸข Green Staged files (ready to commit)
๐ŸŸก Yellow Modified files (unstaged)
๐Ÿ”ต Blue Directories
๐ŸŸฃ Purple Untracked files
๐Ÿ”ด Red Deleted files

Code Quality Standards

  • โœ… Follow the Zen of Python
  • โœ… DRY (Don't Repeat Yourself)
  • โœ… YAGNI (You Aren't Gonna Need It)
  • โœ… SOLID principles
  • โœ… Keep files under 600 lines
  • โœ… Write tests for new features
  • โœ… Pass ruff check with zero errors

๐Ÿ“š Tech Stack

  • Textual: Modern TUI framework
  • GitPython: Git operations
  • GAC: AI commit generation
  • Ruff: Lightning-fast Python linter

๐Ÿ“œ License

MIT License - see LICENSE for details

๐Ÿ™ Acknowledgments

  • Built with โค๏ธ using Textual
  • AI commits powered by GAC

๐Ÿ’ฌ Community


๐ŸŒŸ If you like OctoTUI, give us a star! ๐ŸŒŸ

โฌ† Back to Top

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

octotui-0.1.3.tar.gz (29.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

octotui-0.1.3-py3-none-any.whl (36.2 kB view details)

Uploaded Python 3

File details

Details for the file octotui-0.1.3.tar.gz.

File metadata

  • Download URL: octotui-0.1.3.tar.gz
  • Upload date:
  • Size: 29.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for octotui-0.1.3.tar.gz
Algorithm Hash digest
SHA256 fb229eb9ad61d3c52eb72d6b30c5d49b924a330fa5d72a0b57dbc63bb25e3304
MD5 c52c71519ac1fcb62fe92b8a14b94ca2
BLAKE2b-256 8e278a4fdb4e245f83b9c2cb582c8b9a7e0e94eab04e6b8df3c02771bc9c9a6f

See more details on using hashes here.

File details

Details for the file octotui-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: octotui-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 36.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for octotui-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 5707179e42b65bcc9708c2a3b9343e0d2fb9a479d750c1e7fba5706a67bfc03f
MD5 fe3df65fd3d4b9b9511d6b2c3bdabe0a
BLAKE2b-256 912d233b81a54adafc55e6a7a96c350ed8ef8a4749124ca0912899d9fac5edc4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page