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.6.tar.gz (29.8 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.6-py3-none-any.whl (36.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: octotui-0.1.6.tar.gz
  • Upload date:
  • Size: 29.8 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.6.tar.gz
Algorithm Hash digest
SHA256 34fc1bbb7fe1aae9962b88431c29491a8e8ef6dd537f8a6d98f9168ce1a6e3e2
MD5 1774884614eff4ba8980e3a41899d97a
BLAKE2b-256 54a609843f2d6b9bb90c34dbaa4cec1fa43b6a1a7929fb3ce147040c1ca3a616

See more details on using hashes here.

File details

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

File metadata

  • Download URL: octotui-0.1.6-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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 6b5337dd73679a2409807fcc822b2feb8c1c5e0536ca595fbf634db65f176cb3
MD5 c9008d390f1e678e20ed4bb654185645
BLAKE2b-256 e7a5f0c64a476d0d7be08d7e149bba5448da423804efa4c7363cdee09679fe4f

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