A desktop app for monitoring your GitHub, GitLab & Bitbucket repositories — pull requests, merge requests, issues, notifications, and CI checks — all in one place. Supports multiple accounts per provider.
- Multi-Provider — GitHub, GitLab, and Bitbucket support with multiple accounts per provider, all polled simultaneously.
- Pull Requests & Issues — View all your open PRs, MRs, and issues across repositories and providers with state indicators, labels, and CI check status.
- Notifications — Real-time notifications (GitHub notifications, GitLab Todos) with unread indicators and the ability to mark as read.
- OS Notifications — Get native desktop notifications for new comments, state changes, CI completions, and merges.
- Detail View — Full PR/MR/Issue detail with comments, diff stats, linked items, and the ability to post comments directly.
- CI Check Status — Monitor check runs and pipelines (passing, failing, pending) for each pull request at a glance.
- Dark & Light Mode — GitHub Primer-inspired theme with automatic system theme detection.
- Persistent Cache — API responses are cached with ETag-based conditional requests and survive app restarts.
- System Tray — Runs in the background with an unread count badge in the system tray.
- Auto-start — Optional launch at system startup on macOS, Windows, and Linux.
- Filter Controls — Show/hide closed items, filter by repository, and manage watched/ignored repos.
- Auto-Update — Built-in update checker with automatic downloads. Native electron-updater on supported platforms; GitHub Releases API fallback otherwise.
- Multi-Account Management — Add, remove, enable, and disable accounts for any provider directly from Settings.
Download the latest release for your platform from the Releases page:
| Platform | File | Distros |
|---|---|---|
| macOS (Universal) | ThirdEye-x.x.x-mac-universal.dmg |
Intel & Apple Silicon |
| Windows | ThirdEye-x.x.x-win-setup.exe |
Windows 10+ |
| Linux (deb) | ThirdEye-x.x.x-linux-*.deb |
Debian, Ubuntu, Mint, Pop!_OS |
| Linux (rpm) | ThirdEye-x.x.x-linux-*.rpm |
Fedora, RHEL, CentOS, openSUSE |
| Linux (AppImage) | ThirdEye-x.x.x-linux-*.AppImage |
Any distro (no install needed) |
- Node.js 18+
- npm 9+
git clone https://github.com/jakduch/thirdeye.git
cd thirdeye
npm install
npm run build
npm startnpm run dist # Build for current platform
npm run dist:mac # macOS Universal DMG + ZIP (auto-update)
npm run dist:win # Windows NSIS installer
npm run dist:linux # Linux DEB, RPM, and AppImage (x64 + ARM64)
npm run dist:all # Build for all platformsOn first launch, the app will ask you to connect at least one account. You can add more accounts at any time from Settings → Connected Accounts → Add account.
| Provider | Token type | Required scopes |
|---|---|---|
| GitHub | Personal Access Token | repo, notifications |
| GitLab | Personal Access Token | api, read_user |
| Bitbucket | App Password | Repositories: Read, Pull requests: Read/Write |
All credentials are stored locally via electron-store and never leave your machine.
ThirdEye checks for updates automatically on startup (with a 5-second delay) and can also be triggered manually from Settings → Updates.
| Platform | Mechanism | Behaviour |
|---|---|---|
| macOS (ZIP) | electron-updater |
Silent download → restart prompt |
| Windows (NSIS) | electron-updater |
Silent download → restart prompt |
| Linux (AppImage) | electron-updater |
Silent download → restart prompt |
| Linux (DEB/RPM) | GitHub API fallback | Installer downloaded to ~/Downloads |
When electron-updater is available, updates are downloaded in the background and a system notification prompts you to restart. On platforms where electron-updater isn't supported (e.g. DEB/RPM packages), the app fetches the latest release from the GitHub API and saves the correct installer to your Downloads folder.
Auto-update can be enabled or disabled in Settings → Updates → Automatic updates.
ThirdEye is an Electron application with a React frontend and a Node.js backend:
- Main process — Multi-provider polling engine with a pluggable provider architecture (
BaseProvider→GitHubProvider,GitLabProvider,BitbucketProvider). GitHub uses @octokit/rest with ETag caching; GitLab and Bitbucket use nativefetchagainst their v4/v2 REST APIs. AnAggregatePollingManagerpolls all accounts in parallel and merges results. - Renderer process — React 19 UI with Redux Toolkit for state management and Material UI components styled with GitHub Primer design tokens. Unified item lists with provider badges and per-account filtering.
- IPC bridge — Type-safe, account-aware communication between main and renderer processes.
ThirdEye.git is built with the following open-source libraries:
| Library | License | Author(s) |
|---|---|---|
| Electron | MIT | OpenJS Foundation & Electron contributors |
| React | MIT | Meta Platforms, Inc. |
| TypeScript | Apache-2.0 | Microsoft Corporation |
| @octokit/rest | MIT | Octokit contributors |
| electron-updater | MIT | electron-userland |
| Redux Toolkit | MIT | Mark Erikson & Redux team |
| Material UI | MIT | MUI contributors |
| electron-store | MIT | Sindre Sorhus |
| electron-builder | MIT | electron-userland |
| react-markdown | MIT | Titus Wormer & unified collective |
| remark-gfm | MIT | Titus Wormer & unified collective |
| React Router | MIT | Remix Software, Inc. |
| React Redux | MIT | Dan Abramov & Redux team |
| Emotion | MIT | Emotion team & contributors |
| webpack | MIT | JS Foundation & webpack contributors |
Thank you to all the maintainers and contributors of these projects.
This project is licensed under the BSD 3-Clause License.
Copyright (c) 2026, Jakub Duch.