gith

command module
v0.6.3 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2025 License: MIT Imports: 9 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.

Table of Contents

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

or using one of the pre-built releases.

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.

If you have anything you'd like to configure in the settings or options, don't hesitate to open an issue.

Usage in scripts

You are able to easily change flavor and accent of gith in scripts:

gith config update --flavor=Latte --accent=Red

Useful for example if you want a script to switch between light and dark mode in all your catppuccin themed apps.

[!INFO] Run gith config help for more info

Troubleshooting

I update gith via go install github.com/a3chron/gith@latest, but nothing changes / version stays the same

[!INFO] If you get any output when running go install github.com/a3chron/gith@latest, you probably don't have this issue.
Consider opening an issue.

Sometimes it takes some time for the go proxy server to recognize a new release, so it is possible that the latest release for the proxy server is still the old one.

In that case, just request a lookup for the specific version, for example v0.6.0 if this is the latest release:

go install github.com/a3chron/gith@v0.6.0

You should now see the output:

go: downloading github.com/a3chron/gith v0.6.0

[!NOTE] You can check for the latest release on github or by simply running gith version check

What is and what will be

  • 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

Completions

For package installation the completions will be installed automatically.
When installing via go install you can get completions for the few commands there are by running the following command:

fish

gith completion fish > ~/.config/fish/completions/gith.fish

bash

gith completion bash > ~/.local/share/bash-completion/completions/gith

Zsh

gith completion zsh > ~/.local/share/zsh/site-functions/_gith

Contributing

Contributions are welcome, but please remember to use conventional commits (at least when naming the PR). For features or possible improvements please create an issue.

Build using:

go build -o gith

Then run with:

./gith

Thanks

  • BubbleTea for making it possible to build this
  • opencode for the design inspiration (I copied their starting dialog 1:1)

TODOs

This is mostly a list for me, but here so you can see what you don't need to create an issue for. Also good starting point if you'd want to contribute, but please create an issue stating that you started working on it, so we don't do the same thing twice.

  • 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 & imprve display / coloring

  • "remove remote" add dimmed remote url in selection -> for all add Label with name & optional description

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

  • "Push Tag" Load All functionality

  • bug: double space before success end

  • delete tag deletes localy not remote, for remote: git push origin --delete


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