This app runs inside the BotSurf browser. Don't have it yet? Get the app or extension now!

GitHub Notification Batch Clearer

Productivity · All
0 installs · Verified BotGentz app
Launch App
Opens in BotSurf — try it free, no account needed.
CategoryProductivity
PlatformAll
Pricing Free
Installs0
Download BotSurf to use — free
No account needed for free apps. Once BotSurf is open, find this app in Apps from the + menu.

About this app

WHAT IT DOES

This script adds a powerful batch management toolbar to GitHub notifications pages. Instead of clicking the "Done" button on each notification individually, you can select multiple notifications at once and clear them all with a single click. The toolbar includes a "Select All" checkbox that selects all visible notifications on the current page (including those loaded via infinite scroll). A "Clear Selected" button marks all selected notifications as "Done" by clicking the native GitHub "Done" button for each notification. You can filter notifications by type—Issues, Pull Requests, Releases, Commits, or Discussions—and then select all notifications of that type. A progress indicator shows the status of the clearing process. The toolbar persists across page navigation and updates dynamically as new notifications load.

WHERE IT RUNS

The script runs on GitHub notifications pages, including the main notifications page (github.com/notifications) and repository-specific notifications pages (github.com/*/*/notifications). It supports both desktop and mobile views.

HOW TO USE

After installation, the settings panel appears on the left side of the screen with the gear emoji (⚙️). Open the panel to configure the script:

- The "Enable batch clearer" toggle enables or disables the toolbar.

- Toggle "Default select all on page load" to automatically select all notifications when you open the notifications page.

A toolbar appears at the top of the notifications list with the following controls:

- "Select All" checkbox: selects or deselects all visible notifications.

- "Selected: N" counter: shows how many notifications are currently selected.

- "Clear Selected" button: marks all selected notifications as Done.

- "Deselect All" button: clears all selections.

- Filter dropdown: shows only notifications of a specific type.

- "Select Type" button: selects all notifications of the currently filtered type.

The progress indicator shows "Ready," "Clearing N notifications...", or "Cleared N notifications" during the process.

TECHNICAL SECTION — REAL MECHANISM

The script detects notifications pages by checking the URL for /notifications. It finds notification items using selectors like .notification-list-item, .notification-item, .js-notification-item, and .Box-row. Each notification's checkbox is found using input[type="checkbox"], .js-notification-checkbox, or .notification-checkbox. The "Done" button is found using button[aria-label*="Done"], .js-done-button, or .done-button. The "Select All" checkbox toggles the checked state of all notification checkboxes, dispatching "change" events to trigger React's event system. The "Clear Selected" button collects all checked notifications and iterates through them, clicking each notification's "Done" button. To avoid rate limiting, the script processes notifications in batches. The filter functionality hides notification items by setting style.display = 'none' based on the notification type, which is determined by scanning the item's text content for keywords like "pull request," "issue," "release," etc. The "Select Type" feature selects all notifications of the filtered type. The progress indicator is updated using textContent. A MutationObserver watches for DOM changes to detect new notifications loading via infinite scroll and updates the selection state.

THE PANEL

The settings panel is built with BotGentz's BGPanel component. It is draggable via its header, allowing you to reposition it anywhere on the screen. The panel snaps to the left edge by default but can be moved freely. Click the gear emoji to collapse the panel into a small bubble, and click the bubble to expand it again. The panel remembers its position per page session. Press the Escape key to quickly close or minimize the panel. The panel includes a status flash bar that provides visual feedback when settings are changed or actions are performed. All settings save automatically via GM_setValue.

PLEASE NOTE

This script requires the free BotGentz browser extension to run. It does not function as a standalone Chrome extension and does not use chrome.* APIs. GitHub frequently updates its notifications page structure, which may affect the selectors used to find notifications, checkboxes, and Done buttons. If the script stops working, please check for updates. The script simulates clicking "Done" buttons—this is the same action as manually clicking each notification's Done button. Clearing a large number of notifications may take a few seconds, and the script spaces out clicks to avoid triggering rate limiting. The script stores only your preferences via GM_setValue. No data is sent externally—all data is stored locally in your browser. The script never reads or writes password fields, hidden inputs, or file inputs. All DOM operations use safe methods (style properties, textContent, appendChild) and never use innerHTML.

Similar Apps

Log in to BotGentz

Suggest an App

Tell us what you'd find useful — if we build it, we'll email you the moment it's ready.