██┐ ██┐
└─┘ ██┐ ██│
██████┐ ██┐ ██████┐ ██████┐
██┌─██│ ██│ └─██┌─┘ ██┌─██│
██│ ██│ ██│ ██│ ██│ ██│
██████│ ██│ ████┐ ██│ ██│
└───██│ └─┘ └───┘ └─┘ └─┘
██│ A TUI git helper
██████│ with catppuccin theme,
└─────┘ written in Go
|
|
Why try gith?
It brings little quality-of-life improvements that can make
working with git feel smoother and sometimes even a bit quicker.
For example, the “Add Tag” feature (also shown under “More Images” below the preview GIF)
offers Patch / Minor / Major besides the Manual Input of tags.
Apart from that, it also just looks good ;)

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
If you already have Go installed, or plan to do so (easy to get new updates):
Install via Go
[!TIP]
If you installed gith via go install, you can run gith update to get the latest version.
Otherwise you can install gith via Binaries:
Install via Binaries
For updates, you have to download the new binaries, and install them
Usage
After the installation finished, just run:
gith
Some commands like adding tags are also accessible via quick select,
check out the What is and what will be (features) section,
to see which commands are supported.
As an example, quick select for "git tag ":
gith tag
which will start interactive mode, but already at a point to select the tag, i.e. patch / minor / major / manual input.
For more info run gith help or check out the help articles.
Gith tries to use intuitive, natural language commands,
combined with the usual git commands, for example gith tag or gith update remote url.
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 or Feature Request.
For more info check out the help articles.
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.
[!NOTE]
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
[!NOTE]
If you get any output when running go install github.com/a3chron/gith@latest,
you probably just discovered some other bug.
Consider opening an issue at Featurebase or GitHub.
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
You can view the Roadmap / upvote Feature Requests and Bugs at Featurebase.
-
Branch
-
Switch Branch
-
List Branches
-
Delete Branch
-
Create Branch
-
Status
- View working tree status (Modified, Added, Deleted, Untracked files)
-
Commit
-
Tag
-
Remote
-
List Remotes
-
Add Remote
-
Remove Remote
-
Update Remote url
-
Push to remote
-
Pull from remote
-
Changes
-
View diff of changes
-
Stage individual files
-
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, please use conventional commits for a constant commit message style.
If you reaaally struggle with conventinal commits, check out Meteor, or just use gith's built in commit feature.
For feature requests or possible improvements please create an issue at Featurebase.
For local development, fork & clone the repo, then build using:
go build -o gith
Run with:
./gith
Thanks
- BubbleTea for making it possible to build this
- opencode for the design inspiration (copied their starting dialog 1:1)
Support
If you want to support me, feel free to upvote gith on producthunt, and give some feedback :)
You can also upvote feature requests or bugs that you want fixed at Featurebase.
