English | Português (Brasil) | Español
push_ is a GitHub repository attention dashboard built for one job: surface what needs action first.
It ships in three runtime modes:
desktop(Tauri): native Windows/macOS/Linux app, full dashboard with the token saved in the system keyring, including your private repositorieslocalhost: local secure mode, with memory-only GitHub token access for repository discovery and richer diagnostics, including your private repositoriesGitHub Pages: public snapshot mode, with static data only, no browser token flow, and no private repository data at all
Most personal dashboards waste space on vanity metrics. push_ is built around operational signals:
- open alerts
- degraded repository health
- failed workflow runs
- stale activity
- recent movement across watched repositories
- Attention-first dashboard ordered by problem pressure and latest movement
- Repository detail pages with health, workflow, security, and recent commit context
- Per-repository health scoring with context on the alerts, workflows, and activity that drive it
- Balanced, Detailed, and Full view modes to control how much a repository page shows
- Real repository logos with an initials fallback (no generic GitHub preview cards)
- Public profile inspection without a token for public repositories
- Private repository discovery and tracking in the
desktopandlocalhostruntimes only, opt-in and never included in the published snapshot - Snapshot publishing for a Pages-safe public runtime
- Locale support for
en,pt-BR, andes - Automatic browser-language detection with manual override in settings
- Native app built with Tauri 2, no browser required
- GitHub token is saved in the system keyring (
tauri-plugin-keyring-store), never inlocalStorage - Session is restored from the keyring on launch and validated against the GitHub API
- Custom platform titlebar with native window controls
- OS theme sync (
light/dark) plus the app's 7 named themes
npm run tauri:dev # run in development
npm run tauri:build # build the installer (NSIS on Windows)- Accepts a GitHub token only on
localhost - Keeps the token in memory for the active tab only
- Lets you discover every accessible repository, public and private, and choose what enters the dashboard
- Groups the list into Public, Private, Forks and Others, with per-group select and clear actions
- Reports how many repositories are in the scope of the connected token and how many of them are private
- Serves static JSON generated ahead of time
- Never accepts a browser token
- Never lists, reads or publishes a private repository: snapshot generation refuses a private entry
- Preserves deep links and public repository inspection safely
npm ciOptional but recommended:
npm run hooks:installThat installs the tracked .githooks/pre-push hook so pushes run the local validation gate first.
Start the app:
npm run devStart with a fresh snapshot sync:
npm run dev:snapshotGenerate snapshot data manually:
npm run data:sync- The published site reads snapshot data from
data/ - Snapshot generation is handled locally or in GitHub Actions
- Public profile mode can inspect public GitHub data directly without authentication
- No token is accepted in the published GitHub Pages runtime
- No token is persisted to
localStorage,sessionStorage, cookies, or the static bundle - Local secure mode keeps credentials in memory only
- Desktop mode saves the token in the operating system keyring, not in files
- Private repository content is never written to the local cache or to a published snapshot: only public repository names can appear in a local cache, everything else is rebuilt from the token
- Sensitive validation checks block common regressions before
push
Core commands:
npm run lint
npm run type-check
npm run test:ci
npm run validateValidation coverage:
- lint and static typing
- tests
- locale key integrity and reserved jargon checks
- docs consistency
- secure coding pattern checks
- repo pattern checks
- public build audit
The GitHub Pages workflow uses the same audit entrypoint:
npm run auditReleases are cut by pushing a vX.Y.Z tag and run through the reusable Release Core
protocol from mafhper/release-core
(the caller lives in .github/workflows/release.yml, the contract in
.github/release.config.json).
- Per-line release artwork:
docs/images/releases/release.webp(newmajor.minorline requires a new image) - Editorial notes:
.github/release-notes/(English, plain language)
Bump the desktop versions and append the change log entry locally:
npm run release -- minorThen commit, tag, and push to trigger the release build:
git tag vX.Y.Z && git push origin main && git push origin vX.Y.Z