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 Demo

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

๐Ÿ“ธ Screenshots

Status Tab

See your repository status at a glance: current branch, remote tracking, sync status (ahead/behind), and working tree changes. Manage branches and remote operations all in one place.

Status Tab

Files Tab

Browse your entire repository with a familiar tree view. Press e to open any file in your configured editor.

Files Tab

Unstaged Changes

Review your unstaged changes with beautiful syntax-highlighted diffs. Stage or discard individual hunks with a single click.

Unstaged Tab

Staged Changes

See exactly what's going into your next commit. Unstage hunks if you change your mind.

Staged Tab

Commit Tab

Write your commit message with a subject and body. Or let AI generate it for you with the Generate with GAC button!

Commit Tab

Settings Tab

Configure your editor, theme, and AI provider for commit message generation. Supports 30+ AI providers including OpenAI, Anthropic, Ollama, and more.

Settings Tab Settings Tab - GAC Config


๐Ÿ“ฆ 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
โ†/โ†’ Navigate between files
Enter Select file
Tab Cycle through buttons
e Edit file in external editor

๐Ÿ“‘ View Switching (1-8)

Key Tab
1 Status
2 Files
3 Unstaged
4 Staged
5 Commit
6 Graph
7 History
8 Settings

๐Ÿ”„ 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.11.tar.gz (52.7 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.11-py3-none-any.whl (61.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for octotui-0.1.11.tar.gz
Algorithm Hash digest
SHA256 d7f9c7659c8c48b475de64dd9ebaa287a3135ae1dc282254385b64539018ac70
MD5 f244589a6b0bea63877bdad044b2b55d
BLAKE2b-256 0e34025fcc70569c6c99036bf10eae6f4d508372a08540f0e1b07ecea07847be

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for octotui-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 d9aa990a5b31ebe8f20417eaa751bd2128056cd994d63c2fe7ceb0e768682acf
MD5 015af8a0a1b0c8f5c3812c29ce716130
BLAKE2b-256 d47bc15aeb27c53afaf837e53ab7a8a6e44cf16ccd9d939946b62ec3c223c258

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