https://github.com/michaelhass/gitglance
Git terminal UI written in Go
https://github.com/michaelhass/gitglance
bubbletea git go golang terminal-app tui
Last synced: 2 months ago
JSON representation
Git terminal UI written in Go
- Host: GitHub
- URL: https://github.com/michaelhass/gitglance
- Owner: michaelhass
- License: mit
- Created: 2023-01-21T05:26:18.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-10-29T13:43:19.000Z (8 months ago)
- Last Synced: 2025-12-07T01:39:28.771Z (7 months ago)
- Topics: bubbletea, git, go, golang, terminal-app, tui
- Language: Go
- Homepage:
- Size: 2.49 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gitglance
Simple git terminal UI written in Go using [Bubble Tea](https://github.com/charmbracelet/bubbletea).

## Features
- Stage files ✔️
- Unstage files ✔️
- Reset files ✔️
- View diffs ✔️
- Commit ✔️
- Refresh Status ✔️
- Open Editor ✔️
- Stashing ✔️
- Create stash entry with message ✔️
- pop, apply, drop stash entries ✔️
## Installation
### Go
```
go install github.com/michaelhass/gitglance@latest
```
### Homebrew
Tap:
```
brew install michaelhass/gitglance/gitglance
```
### Build & run locally
Build & run:
```
make build
make run
```
Debugging:
You can run gitglance in debug mode, which will write logs to a **debug.log** file.
```
// Run the application in debug mode
make debug
// Attach to the debug log in another terminal session
make observe_log
```
More details in the [Makefile](Makefile).
## Configuration
### Editor
Gitglance can try to open an editor for selected files.
If not configured, **vi** will be used. The editor is chosen from a list of options with the following priority.
1. **git config core.editor**
2. **git config --global core.editor**
3. env **VISUAl**
4. env **EDITOR**
While the editor is open, gitglance will be paused. Once the editor process finishes, gitglance resumes and updates the current status.
For external editors, it may not be possible to correctly determine, if the editor process has finsihed, unless correctly configured.
Example
```
// open zed editor in a new window (-n) and wait (-w)
export VISUAL="zed -w -n"
```
## Inspiration
- [lazygit](https://github.com/jesseduffield/lazygit)
- [GitUI](https://github.com/extrawurst/gitui)