pho

module
v0.1.38 Latest Latest
Warning

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

Go to latest
Published: May 11, 2026 License: GPL-3.0

README

█████╗  ██╗  ██╗  █████╗
██╔══██╗██║  ██║ ██╔══██╗
█████╔╝ ███████║ ██║  ██║
██╔══╝  ██╔══██║ ██║  ██║
██║     ██║  ██║ ╚█████╔╝
╚═╝     ╚═╝  ╚═╝  ╚════╝

A terminal UI for GitHub pull requests.

Install

go install github.com/utkarsh261/pho/cmd/pho@latest

Binary lands in $(go env GOPATH)/bin/pho.

Or pin a specific version:

go install github.com/utkarsh261/pho/cmd/pho@v0.1.0

Add it to the $PATH:

echo 'export PATH="$(go env GOPATH)/bin:$PATH"' >> ~/.zshrc

Usage

Right now, pho looks at only the cwd and its direct children directories (if they are actually git repos). So if you have some repositories cloned in a directory, you can either open pho in that directory or:

$(go env GOPATH)/bin/pho ~/path/to/dir/containing/all/cloned/repositories

Requirements

Build

go build -o pho ./cmd/pho

With just:

just build

Run

./pho

Flags:

Flag Description
--version Print version and exit
--debug Enable debug logging
--reset Clear all caches and exit
--config <path> Path to config file
--root <dir> Root directory to scan for git repos (default .)

Test

go test ./...

With just:

just test

Vet

go vet ./...

With just:

just vet

Logs

tail -f ~/.local/state/pho/debug.log

Directories

Path Synopsis
cmd
pho command
internal
application/discovery
Package discovery scans the local filesystem for Git repositories and turns remote URLs into canonical repository identities used by the application.
Package discovery scans the local filesystem for Git repositories and turns remote URLs into canonical repository identities used by the application.
application/jobs
Package jobs schedules deduplicated foreground and background work.
Package jobs schedules deduplicated foreground and background work.
cache/memory
Package memory provides an in-process byte-bounded cache with priority-aware LRU eviction.
Package memory provides an in-process byte-bounded cache with priority-aware LRU eviction.
config
Package config handles loading and resolving configuration for pho.
Package config handles loading and resolving configuration for pho.
domain
Package domain defines the data model for pho.
Package domain defines the data model for pho.
github/auth
Package auth resolves GitHub host profiles and tokens at startup.
Package auth resolves GitHub host profiles and tokens at startup.
github/rest
Package rest provides a minimal GitHub REST client for fetching raw diffs.
Package rest provides a minimal GitHub REST client for fetching raw diffs.
log
Package log provides a structured, file-based logger for pho built on top of the stdlib log/slog package.
Package log provides a structured, file-based logger for pho built on top of the stdlib log/slog package.
ui/components/keymapoverlay
Package keymapoverlay implements a lazygit-style contextual keybinding help overlay.
Package keymapoverlay implements a lazygit-style contextual keybinding help overlay.
ui/theme
Package theme defines all lipgloss styles for the pho terminal UI.
Package theme defines all lipgloss styles for the pho terminal UI.
ui/views/prdetail
Package prdetail implements the PR detail view model.
Package prdetail implements the PR detail view model.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL