gith

command module
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 31, 2025 License: MIT Imports: 7 Imported by: 0

README

         ██┐         ██┐        
         └─┘   ██┐   ██│        
 ██████┐ ██┐ ██████┐ ██████┐    
 ██┌─██│ ██│ └─██┌─┘ ██┌─██│    
 ██│ ██│ ██│   ██│   ██│ ██│    
 ██████│ ██│   ████┐ ██│ ██│    
 └───██│ └─┘   └───┘ └─┘ └─┘    
     ██│  A TUI git helper      
 ██████│  with catppuccin theme,
 └─────┘  written in Go         
Logo

[!WARNING] Still in development

Catppuccin flavors preview

More Images

For the terminal customization / starship config, check out my ubuntu customization blog article.
This is the full setup, for only starship scroll down to the starship section.

Installation

[!NOTE] If you don't have Go installed, check out the gith project page, Go installation is included there.

Install directly using Go

go install github.com/a3chron/gith@latest

After the installation finished, just run:

gith

Customization

You can set your preferred flavor and accent in the Options.
Just run gith and select "Options".

When running gith the first time, a config file storing your settings will be created at XDG_CONFIG_HOME/gith/config.json if XDG_CONFIG_HOME is set, otherwise at ~/.config/gith/config.json.

You can also manually edit the config file, although editing with gith ensures that no invalid configurations are used.

What is and what will work

  • Branch

    • Switch Branch (supports checking out remote branches locally)

    • List Branches

    • Delete Branch (with fallback to force delete)

    • Create Branch

  • Status

    • View working tree status (Modified, Added, Deleted, Untracked files)
  • Commit

    • Undo Last Commit

    • Commit staged changes

    • Commit all changes

    • Amend last commit

  • Tag

    • List Tags (shows 10 latest, sorted by semantic versioning)

    • Remove Tag

    • Push Tag (prompts to confirm pusing the latest tag)

    • Add Tag

  • Remote

    • List Remotes

    • Add Remote

    • Remove Remote

    • Update Remote url

    • Push to remote

    • Pull from remote

  • Changes

    • View diff of changes

    • Stage/unstage individual files

  • Options

    • Change UI flavor

    • Change UI accent color

Local Development

Build using:

go build -o gith

Then run with:

./gith

built using BubbleTea, design heavily based on opencode

TODO

  • get latest tag in utils version, in add tag show current latest tag

  • add loading states when fetching sth

  • improve remove tag only show n latest tags wiht "pagination" instead of optional show all

  • add confirmation for things like force branch delete

  • adjust version info for small terminals

  • "remove remote" add dimmed remote url in selection

  • clarify "out, err := git.GetRemotes(); m.Err = out" logic, siwth these two


Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
git
ui

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL