📮 Untangle your GitHub Notifications
Clone or download
andrew Small behaviour change to seleting a search history item (#1014)
Always replace the current search rather than appending it.

Also fixed a little bit of invalid html.
Latest commit 560e0be Sep 25, 2018
Permalink
Failed to load latest commit information.
app Small behaviour change to seleting a search history item (#1014) Sep 25, 2018
bin feature(docker): Adapt Docker image to run sidekiq when enabled (#943) Sep 18, 2018
config Allow deleting of notifications from the archive page (#987) Sep 24, 2018
db Marketplace support (#964) Sep 18, 2018
docs Revert "Use libidn to reduce memory usage of addressable gem" (#1002) Sep 23, 2018
lib Use yard for generating api docs (#1003) Sep 24, 2018
log Hello World Dec 16, 2016
openshift Update OpenShift installation document (#996) Sep 23, 2018
public Optimize images file sizes with Imageoptim (#989) Sep 21, 2018
test Add user and org as aliases for owner search prefix (#1011) Sep 25, 2018
tmp Hello World Dec 16, 2016
vendor/assets remove toggle-shortcuts Dec 19, 2016
.dockerignore Revert "Ignore the docs folder when generating docker images or herok… Sep 12, 2018
.env.example Add bugsnag js notifier (#704) Jul 27, 2018
.eslintignore Add codeclimate config Dec 19, 2016
.eslintrc Add codeclimate config Dec 19, 2016
.gitignore Use yard for generating api docs (#1003) Sep 24, 2018
.rubocop.yml Fix up some warnings/errors in rubocop config Aug 16, 2018
.ruby-version Update ruby to 2.5.1 (#583) Apr 3, 2018
.slugignore Revert "Ignore the docs folder when generating docker images or herok… Sep 12, 2018
.travis.yml Add visual acceptance tests (#844) Sep 23, 2018
Dockerfile Revert "Use libidn to reduce memory usage of addressable gem" (#1002) Sep 23, 2018
Gemfile Use yard for generating api docs (#1003) Sep 24, 2018
Gemfile.lock Use yard for generating api docs (#1003) Sep 24, 2018
LICENSE.txt Hello World Dec 16, 2016
Procfile Automatically run migrations on heroku deploys (#657) Jun 18, 2018
README.md Remove html from readme title (#995) Sep 23, 2018
Rakefile Add visual acceptance tests (#844) Sep 23, 2018
app.json Update tagline Aug 28, 2018
config.ru Add rack-canonical-host for redirecting to herokuapp subdomain to oct… Aug 9, 2018
docker-compose-dev.yml Add redis to docker-compose configs Mar 18, 2018
docker-compose.yml Add redis to docker-compose configs Mar 18, 2018

README.md

Octobox 📮 Untangle your GitHub Notifications.

Octobox helps you manage your GitHub notifications efficiently so you can spend less time managing and more time getting things done.

  • Don't lose track - Octobox adds an extra "archived" state to each notification so you can mark it as "done". If anything happens on an archived thread, issue or PR, Octobox will move it back into your inbox.

  • Starred notifications - Let's be honest, you probably don't have a 'favourite' issue but Octobox lets you highlight important notifications with a star so you can come back and find them easily.

  • Filter all the things - Filter notifications by notification type, action, state and reason and keep notifications from bots alongside your regular label, author and assignees.

  • Search with prefix filters - No more Jedi mind tricks. Combine a wide range of powerful search filters help you get straight to the notification you're looking for and focus on just what you need.

  • Built for keyboard warriors - Navigate, triage and manage your notifications like a pro using Gmail-inspired keyboard shortcuts for every function, no mouse required.

  • Open for everyone - Octobox developers use Octobox to develop Octobox. 100% developed and managed in the open on GitHub under a FLOSS license.

Screenshot of  Octobox

Build Status View Performance Data on Skylight Docker Gitter OpenCollective OpenCollective Open Source Helpers license

Why is this a thing?

If you manage any active projects on GitHub, you probably find GitHub Notifications pretty lacking.

Notifications are marked as read and disappear from the list as soon as you load the page or view the email of the notification. This makes it very hard to keep on top of which notifications you still need to follow up on. Most open source maintainers and GitHub staff end up using a complex combination of filters and labels in Gmail to manage their notifications from their inbox. If, like me, you try to avoid email, then you might want something else.

Octobox adds an extra "archived" state to each notification so you can mark it as "done". If new activity happens on the thread/issue/pr, the next time you sync the app the relevant item will be unarchived and moved back into your inbox.

Table of Contents

Getting Started

Octobox.io

You can use Octobox right now at octobox.io, a shared instance hosted by the Octobox team.

Note: octobox.io has a few features intentionally disabled:

  • Subject syncing (includes authorship and open/closed/merged status information) (#411)
  • Personal Access Tokens (#185)

Features are disabled for various reasons, such as not wanting to store users' tokens at this time. Some features might never be enabled, and some just might have other prerequisite work pending completion.

Install

You can also host Octobox yourself! See the installation guide for installation instructions and details regarding deployment to Heroku, Docker, and more.

Desktop usage

You can run Octobox locally as a desktop app too if you'd like, using Nativefier:

npm install -g nativefier
nativefier "https://octobox.io" # Or your own self-hosted URL

This will build a local application (.exe, .app, etc) and put it in your current folder, ready to use.

Web extension

You can also install the cross-browser Octobox Web Extension. It is available for Google Chrome and Mozilla Firefox, but you can also use it with other browsers that support web extensions.

Requirements

Web notifications must be enabled in your GitHub settings for Octobox to work.

Notifications settings screen

Keyboard shortcuts

You can use keyboard shortcuts to navigate and perform certain actions:

  • a - Select/deselect all
  • r or . - Refresh list
  • j - Move down the list
  • k - Move up the list
  • s - Star current notification
  • x - Mark/unmark current notification
  • y or e - Archive current/marked notification(s)
  • m - Mute current/marked notification(s)
  • d - Mark current/marked notification(s) as read here and on GitHub
  • o or Enter - Open current notification in a new window

Press ? for the help menu.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

Contribute

Please do! The source code is hosted at GitHub. If you want something, open an issue or a pull request.

If you need want to contribute but don't know where to start, take a look at the issues tagged as "Help Wanted".

You can also help triage issues. This can include reproducing bug reports, or asking for vital information such as version numbers or reproduction instructions. If you would like to start triaging issues, one easy way to get started is to subscribe to Octobox on CodeTriage.

Finally, this is an open source project. If you would like to become a maintainer, we will consider adding you if you contribute frequently to the project. Feel free to ask.

For other updates, follow the project on Twitter: @octoboxio.

Note on Patches/Pull Requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so we don't break it in a future version unintentionally.
  • Send a pull request. Bonus points for topic branches.

Vulnerability disclosure

We support and encourage security research on Octobox under the terms of our vulnerability disclosure policy.

Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

Copyright

GNU Affero License © 2018 Andrew Nesbitt.