A terminal UI for managing your GitHub pull request inbox, built with Textual.
Shows your PRs, PRs you've reviewed, and PRs requested via team assignment. Displays comments, reviews, commits, and CI status inline.
- Ensure your Python has sqlite3 support:
python3 -c "import sqlite3"If this fails, install the dev library and rebuild Python:
# Debian/Ubuntu
sudo apt install libsqlite3-devIf using pyenv, reinstall the Python version afterwards:
pyenv install --force <version>
- Create a Python venv and source it:
python3 -m venv .venv
source .venv/bin/activateNOTE: the prtui wrapper script is assuming the venv name .venv, update it if you want to use something else
- Install dependencies:
pip install -r requirements.txt- Create a
configfile in the project root:
username:<github-username>
team:<org>/<team-slug>
token:<github-personal-access-token>
repos:<owner/repo>,<owner/repo2>
jenkins-user:<jenkins-bot-username>
- Add to PATH Assuming zsh, run this when standing in the root of the repo
echo "export PATH=\"\$PATH:$(pwd)\"" >> ~/.zshrc
cd py && python prtui.pyor if added to PATH:
prtui
Launch prtui in a maximized native desktop window, detached from the terminal:
prtui --window
The UI is served on a random port on 127.0.0.1 only, embedded via
textual-serve and
pywebview. Requires a local graphical
desktop (not SSH).
PR data is stored in a SQLite database at /tmp/prtui.db. Delete it to force a full re-fetch.
In order to have working quick links to CI and ticketing system, optional regex configurations can be set in the config.
Ticket: the PR title is scanned and matched against regex CI: The latest comment from the CI user is scanned and matched against regex