Triage
Interactive command-line GitHub issue & notification triaging tool.
Install / Use
/learn @tj/TriageREADME
Triage
Interactive command-line GitHub issue & notification triaging tool.
Features
Some of the current features include:
- Quickly view and search notifications
- View issue details, labels, and comments
- View notifications without marking them as read
- Mark notifications as read, or unsubscribe entirely
- Unwatch entire repositories
- Add and remove issue labels
- Add comments to issues
Upcoming features may include things like:
- Global priority management across all of your projects
- Automatically prioritize based on your GitHub sponsors
- Templated comment responses
Installation
Via gobinaries.com:
$ curl -sf https://gobinaries.com/tj/triage/cmd/triage | sh
Via ops run by CTO.ai:
$ npm install -g @cto.ai/ops && ops account:signup
$ ops run @tj/triage
Environment Variables
GITHUB_TOKEN
To access your Github activity, set your GITHUB_TOKEN environment variable to a valid personal access token:
export GITHUB_TOKEN=1234567c5560a274c59541e0787bf12345abcdef
The following permissions are needed for all functionality to work:
notificationsfor listing and unsubscribing from notificationsrepofor adding labels and comments
Screenshots
Notifications listing:

Filtering notifications with the / search:

Viewing issue details:

Adding and removing labels:

Leaving a comment:

Sponsors
This project is sponsored by CTO.ai, making it easy for development teams to create and share workflow automations without leaving the command line.
And my GitHub sponsors:
<img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/0" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/1" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/2" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/3" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/4" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/5" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/6" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/7" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/8" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/9" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/10" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/11" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/12" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/13" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/14" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/15" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/16" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/17" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/18" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/19" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/20" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/21" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/22" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/23" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/24" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/25" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/26" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/27" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/28" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/29" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/30" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/31" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/32" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/33" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/34" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/35" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/36" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/37" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/38" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/39" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/40" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/41" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/42" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/43" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/44" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/45" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/46" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/47" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/48" width="35"> <img src="https://sponsors-api-u2fftug6kq-uc.a.run.app/sponsor/avatar/49" width="35"> [<img src="https://sponsors-api-u

