Skip to content

arvind4501/prnot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

prnot

GitHub notifications for Linux. Get notified about PR reviews, mentions, and assignments right on your desktop — click to open in your browser.

The problem

You're deep in work. Someone requests your review on a PR. GitHub sends an email that gets buried under 50 others. Or you have to keep checking github.com/notifications, breaking your flow every time.

By the time you notice, the PR has been waiting for hours.

Who is this for

Developers on Linux who:

  • Work on teams where PR reviews and responses need to happen quickly
  • Miss GitHub notifications because email is too noisy
  • Don't want to keep a browser tab open just to watch for new activity
  • Want something lightweight — no Electron apps, no browser extensions, just a CLI

How it works

prnot runs as a background service (systemd). It polls the GitHub API, classifies each notification, and pops a desktop notification for anything that needs your attention. Click the notification to open the PR or issue in your browser.

Everything stays local. No third-party servers, no webhooks to configure, no OAuth flows. Just a GitHub token and a systemd service.

GitHub API ──► prnot daemon ──► Desktop notification (click → browser)
                    │
                    ▼
               Local cache ──► CLI (instant reads, no API calls)

Features

Smart classification

Not all notifications are equal. prnot sorts them into three buckets:

Bucket What it means Examples
Action You need to do something Review requested, assigned to you, changes requested
Watch Something you care about progressed Comments, mentions, approvals, state changes
Noise FYI, no action needed CI activity, subscribed threads

Action notifications get critical urgency (persistent on most DEs). Watch notifications appear normally. Noise is silenced — you can still see it with prnot list --all.

Click to open

Desktop notifications have an "Open in browser" button. Click it and prnot opens the PR/issue directly in your default browser. No more hunting through GitHub.

Instant CLI

prnot list reads from a local cache — no API call, no waiting. The daemon keeps the cache fresh in the background.

$ prnot

  Action needed (2)
  ● 1. review-requested    my-project           Add retry logic for API calls      5m
  ● 2. assigned            infra-tools          Fix deployment script               1h

  Watching (1)
  ○ 1. comment             my-project           Refactor auth middleware            3h

Shell and tmux integration

Show your notification count in your prompt or tmux status bar:

# bash/zsh prompt
PS1='$(prnot badge) \w $ '
# Shows: [3] ~/code $

# tmux status bar
set -g status-right '#(prnot badge --tmux)'

The badge shows nothing when the count is zero — no visual clutter.

Muting

Silence notification reasons you don't care about:

mute:
  - ci_activity
  - subscribed

Muted notifications are completely filtered out — no desktop popup, no appearance in prnot list (unless you pass --all).

Repo filtering

Only watch specific repositories:

repos:
  - myorg/frontend
  - myorg/api

Leave empty to get notifications from everything you participate in.

Installation

Requires Ruby 3.4+ and a Linux desktop with notify-send (libnotify).

gem install prnot

Or clone and install locally:

git clone https://github.com/ajangir/prnot.git
cd prnot
gem build prnot.gemspec
gem install prnot-0.1.0.gem

Setup

1. Create a GitHub token

Go to GitHub Settings → Tokens and create a token with the notifications scope.

2. Initialize config

prnot init

This creates ~/.config/prnot/config.yml. Edit it to add your token:

token: ghp_your_token_here
refresh: 60s

Or skip the config file and use an environment variable:

export GITHUB_TOKEN=ghp_your_token_here

3. Start the daemon

prnot setup

This installs and starts a systemd user service. It will survive reboots and restart on failure.

Done. You'll start getting desktop notifications.

Commands

Command Description
prnot Show action and watch notifications
prnot list --all Include noise bucket
prnot list --format=json JSON output
prnot open 1 Open first notification in browser
prnot open 3 Open third notification in browser
prnot read ID Mark a specific notification as read
prnot read --all Mark all as read
prnot count Print count (for scripts)
prnot badge Print [N] for shell prompt (empty if 0)
prnot badge --tmux tmux-compatible badge
prnot status Show daemon status
prnot setup Install and start systemd service
prnot teardown Stop and remove systemd service

Configuration

Config lives at ~/.config/prnot/config.yml:

# GitHub token (or set GITHUB_TOKEN env var)
token: ghp_xxx

# How often to poll GitHub (default: 60s)
refresh: 60s

# Only watch these repos (empty = all participating)
repos:
  - myorg/api
  - myorg/frontend

# Suppress notifications by reason
mute:
  - ci_activity
  - subscribed

Available reasons to mute

review_requested, changes_requested, comment, mention, assign, approval, author, state_change, ci_activity, subscribed, team_mention, manual, security_alert

Managing the daemon

# Check if running
prnot status

# View logs
journalctl --user -u prnot -f

# Restart after config change
systemctl --user restart prnot

# Remove completely
prnot teardown

License

MIT

About

GitHub notifications for Linux. Get notified about PR reviews, mentions, and assignments right on your desktop

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages