gh-zen
June 19, 2026For a long time I spent most of my days in the editor, solving problems and building features end to end. The work came from all over, Slack, GitHub, a conversation, but the scattered sources never bothered me. I owned each problem from start to finish, so keeping all the issues and requests in my head was cheap. It changed when I moved to agentic development. Suddenly, I had to make sure there was enough work for agents and also make sure they keep doing what I need them to do. I have switched to a File, Dispatch, Finish loop which allowed me to scale the agent management, and it introduced GitHub as a centralization point where I keep all bugs, features and research issues together with the codebase. I started to visit the GitHub website very frequently and the flow felt very unnatural and slow so I decided to build gh-zen, my own GitHub TUI tool that allows me to stay close to the agents while understanding what is going on.

Figure 1: The issue list for the current repository, with the Issues and Pull requests tabs and their live counts.
gh-zen
gh-zen is a minimal terminal UI for GitHub.
It is built as an extension for the official GitHub CLI, so installing it is a single command and it reuses the authentication I already have set up for gh.
gh extension install martinkersner/gh-zen
gh zen
It is written in Go on top of the Charm stack (Bubble Tea, Bubbles and Lip Gloss), renders issue and pull request bodies as markdown with Glamour, and talks to the GitHub GraphQL API through go-gh, the same library the official CLI uses.
I run it from inside a project and it shows the issues and pull requests for that repository, resolved from the current git remote exactly the way gh does.
This matches how I work, because my terminal window is vertically split inside of tmux, on the left side I keep Claude Code, on the right side I have gh-zen.
The interface is very simplistic: two tabs, Issues and Pull requests, and a detail view for each.
Features
The goal was never to rebuild the GitHub website in the terminal. It was to make the few things I do all day fast and keyboard driven.
- Issues and pull requests live in two tabs, each with a live count, and the current view auto-refreshes every five seconds so the list stays current while agents open and close things.
- A fuzzy filter (
/) andj/knavigation to find an item, thenenterto open a detail view with the rendered markdown body and a search within it. - For pull requests, a built-in diff viewer.
dtoggles between the body and the diff,sswitches between unified and split layouts,]and[jump between files, andfbrings up a files overview. The diff is syntax highlighted. - Closing an issue without leaving the terminal with
c. oopens the current item in the browser for the rare moment I do want the full web UI.- Themes (
t), currently Tokyo Night, Catppuccin Mocha, Dracula and Synthwave, with the choice remembered across launches. - A context aware help overlay on
?that only lists the shortcuts valid in the current view, andqto quit.

Figure 2: list of available shortcuts
How it fits the loop
In the File, Dispatch, Finish loop, GitHub is where everything is recorded and where the agents do their work.
While issues are dispatched, gh-zen is the window I keep open to watch the work land.
I see issues get picked up, pull requests appear, and I can read the diff and close things right there.
The five second auto-refresh means agent activity shows up on its own without me reloading a slow page, and because gh-zen is scoped to the repository I am already in, there is no project picker and no navigation to get lost in.
It also removes the small frictions I complained about at the end of the previous post. I am no longer bouncing between a terminal and a browser tab, and I am no longer waiting on the GitHub website to paint before I can read a diff.

Figure 3: The detail view of a single issue with its rendered markdown body.
Conclusion
gh-zen is opinionated and it fits the way I work right now.
I built it with the same File, Dispatch, Finish loop it is meant to support, filing an issue every time I had an idea and letting the agents do the rest, and that alone made it worth building.
I do not expect it to last. Everything around this changes too quickly, and gh-zen is just the shape that works for me today. The honest reason I will probably move on is that I am still the slowest part of the loop, and the next thing worth building is whatever takes me out of it.
You can find gh-zen at my GitHub martinkersner/gh-zen.

Figure 4: gh-zen in action.