Skip to main content

RPlusView — colorful terminal dashboard for GitHub pull requests

Project description

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

⚡ A colorful terminal dashboard for your GitHub pull requests
Search · Sort · Stats · Repos · Open in browser · First-run setup

Python Textual License Status


✨ Features

🎨 Polished dark TUI with GitHub-inspired greens, blues & purples
👋 First-run welcome popup — enter any GitHub username dynamically
🔍 Live search across title, repo, PR number & status
📊 Stats & repos views with LOC, open/merged/closed breakdowns
🌐 Open in browser for PRs and repositories
⌨️ Toolbar buttons + shortcuts — everything is one key away
🔄 Switch user anytime with the User button (u)

📦 Install as a package

Option A — from this repo (recommended)

git clone https://github.com/YOUR_USER/github_plugin.git
cd github_plugin
pip install .

That installs the rplusview command globally (or into your active venv).

Option B — editable (for development)

git clone https://github.com/YOUR_USER/github_plugin.git
cd github_plugin
pip install -e .

Code changes apply immediately — no reinstall needed.

Option C — run without installing

cd github_plugin
pip install textual requests
python -m rplusview
# or
python app.py

Option D — publish to PyPI (optional)

pip install build twine
python -m build
twine upload dist/*

Then anyone can install with:

pip install rplusview

Replace YOUR_USER with your GitHub username/org, and update [project.urls] in pyproject.toml before publishing.


🚀 Quick start

# 1) Install
pip install .

# 2) Token (required for GitHub API)
export GITHUB_TOKEN=ghp_your_token_here
# or copy .env.example → .env and fill GITHUB_TOKEN

# 3) Launch
rplusview

On first launch, a welcome popup asks for the GitHub username to track.
That username is saved in ~/.config/rplusview/config.json.

┌──────────────────────────────────────────────┐
│           ◆  Welcome to RPlusView            │
│   Enter a GitHub username to load their PRs  │
│                                              │
│  GitHub username                             │
│  ┌────────────────────────────────────────┐  │
│  │ octocat                                │  │
│  └────────────────────────────────────────┘  │
│                                              │
│                         [ Continue → ]       │
└──────────────────────────────────────────────┘

🎮 Controls

Toolbar

Open · Details · Stats · Repos · Search · Sort · Refresh · User · Help

Keyboard

Key Action
Navigate rows
Enter / d PR details
o Open in browser
/ Live search
s Cycle sort (LOC → Date → Title → Repo → Files → #)
t Statistics
e Repositories
u Change user
r Refresh
? Help
Esc Clear search / go back
q Quit / back

🗂️ Project layout

github_plugin/
├── pyproject.toml          # package metadata + CLI entrypoint
├── README.md
├── .env.example
├── app.py                  # thin launcher
└── rplusview/              # installable Python package
    ├── app.py              # main TUI
    ├── github_client.py    # GraphQL API
    ├── config.py           # saved username / token
    ├── rplusview.tcss      # theme
    ├── screens/            # details · stats · repos
    └── widget/             # title · actions · setup · help

🔐 Config

What Where
GitHub token GITHUB_TOKEN env var or .env
Tracked username first-run UI → ~/.config/rplusview/config.json

Create a classic PAT at github.com/settings/tokens
with at least repo (or public_repo) access for searching PRs.


🛠️ Develop

python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e .
rplusview

Build a distributable wheel locally:

pip install build
python -m build
ls dist/   # rplusview-1.0.0-py3-none-any.whl

💜 Why RPlusView?

Because your PRs deserve a dashboard that feels as sharp as your code —
fast, colorful, and living right inside the terminal.

made with textual github

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rplusview-1.0.0.tar.gz (19.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rplusview-1.0.0-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

File details

Details for the file rplusview-1.0.0.tar.gz.

File metadata

  • Download URL: rplusview-1.0.0.tar.gz
  • Upload date:
  • Size: 19.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for rplusview-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ba5e77ee10b94c8fe98195dac0ea7aafee654519b75c23f8808b4c2273b4d609
MD5 438394365930dbe8fd08952897b05bb5
BLAKE2b-256 738e3a09009e7c3ec032d6529ccb89121795435376d816157de5692f5ef32a2f

See more details on using hashes here.

File details

Details for the file rplusview-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: rplusview-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 20.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for rplusview-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8c4c86ce3730a6e1a7a77f2c7fe88a99b05519adf6ad57c65e75df8c6a0eb6e5
MD5 dfe27f51b0e3aadad50d2a15d3a404cc
BLAKE2b-256 5ef238870207fc3990e6aa7f1ec8b620b535cfef39bfe7f1d4c7210c3e07d58d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page