A native desktop client for GitHub Pull Requests that lives in your tray and notifies you only about what matters.
Prism is a lightweight, cross-platform desktop app (Windows / macOS / Linux) built with Tauri, focused on cutting the friction out of GitHub code review. It consolidates PRs across multiple repos and orgs, surfaces CI status, and fires native OS notifications only for the events that need your attention.
- Inbox — mirrors GitHub's notification API; mark-as-read syncs both ways. Identical notifications (e.g. the same flaky CI check firing six times) collapse into a single row with a
×Nbadge; repo groups are collapsible and have a one-click "mark this repo as read". - Per-repo PR list — open a watched repo to see its open / closed / all PRs with author, age and comment counts; click through to the full review.
- Command palette (
Ctrl/Cmd+K) — fuzzy search across watched repos and PRs. Prefix filters (repo:,pr:) narrow scope;repo:<name> pr:<term>searches PRs only inside that repo. - Sidebar with hover preview — collapse the sidebar to a 56px rail; hovering an org avatar shows its watched repos in a hover card you can click through.
- System tray — unread badge, pause notifications for 1h / 4h, "mark all read" without opening the app.
- Native push — fires only on relevant reasons (review_requested, mention, comment, assign, state_change, ci_activity); skips first-sync and collapses bursts > 3.
- Drag-select review — drag across diff lines (LEFT or RIGHT side) to comment on a range. Auto-creates the pending review on first comment; submit with Approve / Comment / Request Changes.
- Dark only, fast (< 1s cold start), and private — no telemetry, token stored in
~/.local/share/prism/.credentials(mode 0600).
All install URLs below use version-agnostic asset names served by GitHub's
latest/download/...endpoint, so they don't break on the next release.
sudo dnf install https://github.com/IsraelAraujo70/prism/releases/latest/download/Prism-x86_64.rpm
# Runtime deps (only if missing)
sudo dnf install libayatana-appindicator-gtk3 webkit2gtk4.1 gtk3A proper DNF repo (Copr or GitHub Pages) is on the roadmap so you can
dnf install prismand get auto-updates. For now the URL above always resolves to the latest stable.
curl -L -o /tmp/prism.deb https://github.com/IsraelAraujo70/prism/releases/latest/download/Prism_amd64.deb
sudo apt install /tmp/prism.debcurl -L -o ~/.local/bin/Prism.AppImage \
https://github.com/IsraelAraujo70/prism/releases/latest/download/Prism_amd64.AppImage
chmod +x ~/.local/bin/Prism.AppImage
~/.local/bin/Prism.AppImageThe build is currently unsigned, so Gatekeeper will refuse the first launch. Either:
xattr -cr /Applications/Prism.appor right-click the app → Open → confirm in the dialog. Code signing will land once an Apple Developer cert is wired into CI.
curl -L -o /tmp/Prism.dmg \
https://github.com/IsraelAraujo70/prism/releases/latest/download/Prism_universal.dmg
open /tmp/Prism.dmg
# drag Prism.app to /Applications, then:
xattr -cr /Applications/Prism.app
open /Applications/Prism.appNot built yet. Building locally with bun run tauri build works (see below); a native CI pipeline is coming.
- Click Sign in with GitHub — opens your browser via OAuth Device Flow (no client secret, public client_id).
- Add the repos you want to watch via the + in the sidebar.
- Background sync starts immediately. Notifications begin arriving on the next event.
Requires:
- Rust ≥ 1.77
- Bun (or Node 22+ — but
bun.lockis the source of truth) - Linux:
libwebkit2gtk-4.1-dev,libgtk-3-dev,libayatana-appindicator3-dev,librsvg2-dev,patchelf,rpm(for--bundles rpm)
git clone https://github.com/IsraelAraujo70/prism
cd prism
bun install
bun run tauri:dev # dev build with hot reload
bun run tauri build # release build; bundles in src-tauri/target/release/bundle/The tauri:dev script sets WEBKIT_DISABLE_DMABUF_RENDERER=1 for Linux Wayland sessions; the release binary bakes the same workaround.
src-tauri/src/
lib.rs # Tauri builder, command registry, tray, window event hooks
commands.rs # #[tauri::command] handlers (thin orchestration)
github.rs # GitHub HTTP client + Device Flow + GraphQL helper
notifications.rs # background sync loop + push filtering / pause
tray.rs # tray icon + menu + tooltip updates
db.rs # SQLite init + CRUD for watched repos, notifications, mutes
auth.rs # token storage (file mode 0600)
error.rs # AppError enum
src/
App.tsx # top-level state machine; sidebar shell
lib/api.ts # typed wrappers around invoke()
components/
pr-viewer.tsx # PR detail + tabs + submit-review panel
diff-viewer.tsx # diff renderer + drag-select for review comments
inbox.tsx # GitHub-equivalent inbox
...
- ✅ Notifications, tray, drag-select review (v0.1.1)
- ✅ Per-repo PR list, command palette, inbox dedupe + collapsible groups, sidebar org hover preview (v0.1.2)
- ⏳ Deep-link from native notification body click (needs custom URI scheme)
- ⏳ Edit / delete pending review comments before submit
- ⏳ Code signing for macOS / Windows
- ⏳ Proper DNF repo (Copr) for
dnf install prism
See docs/PRD.md for the full product scope.
Issues, ideas and PRs are welcome. The codebase follows two patterns documented under .claude/skills/prism-feature and .claude/skills/prism-design (full-stack feature flow + design tokens).
If you're hacking on the UI, communicate with the user in PT-BR but keep all code, identifiers, and commit messages in English.
MIT — © Israel Araujo de Oliveira




