# ghui - curses TUI for Github

[ghui] is a terminal interface for browsing GitHub issues and pull requests.


=> https://github.com/Moult/ghui ghui

I built it because I usually use [elinks] and Github inexplicably doesn't work at all on text browsers. I find the Github interface very slow and clunky. If you like things like `mutt`, `newsboat`, etc, this is for you. It's also completely shamelessly YOLO vibe AI slop.


=> https://thinkmoult.com/using-elinks-browse-web.html elinks

But it works. And I use it. I don't even know if this is free software or not. I just said what I wanted and kept on pressing enter and here it is.

Does it secretly do crazy stuff in the background? I read enough of the code to convince myself that it does actually do what it advertises and nothing more, but don't hold me to it.



=> https://thinkmoult.com/assets/ghui-issue-list.png A screenshot of ghui issue list



=> https://thinkmoult.com/assets/ghui-issue-view.png A screenshot of ghui viewing an issue with comments



=> https://thinkmoult.com/assets/ghui-pr-diff.png A screenshot of ghui PR showing a diff with syntax highlighting

## Features

* Single Python file with no deps apart from `gh` and `pygments` (syntax highlighting). Go figure.
* Lists issues and pull requests with colored state indicators, author, labels, and relative timestamps
* Paginated browsing (100 per page) with `n`/`N` to move between pages
* Filter by state (open, closed, merged, all) and search using GitHub's full query syntax
* Sort by updated, created, or comment count
* View issue and PR detail with body and full comment thread
* Render markdown: headers, bold, inline code, and fenced code blocks with pygments syntax highlighting
* Write comments by drafting in `$EDITOR`, then reviewing the thread before confirming
* View PR diffs with colored +/- lines
* Merge PRs with a choice of merge, rebase, or squash
* Reopen and close issues and PRs
* Open anything in the browser with `B`
* Jump directly to an issue or PR number with `#`
* Caching for fast loads

ghui is not:

* A full Github interface. It only implements the things I care about.
