Your intelligent, local-first Git mission control.
RepoTracker automatically discovers, monitors, and manages every Git repository on your machine β from a single, stunning localhost dashboard. No cloud. No subscription. No tracking. Your code stays on your computer.
| Feature | Description |
|---|---|
| π‘ Auto Discovery | Points at root folders and recursively maps every Git repo instantly |
| β€οΈ Health Scoring | Repos scored 0β100 on dirty files, unpushed commits, staleness, and CI status |
| πΏ Branch Manager | Create, checkout, merge, and delete branches from the UI β no terminal needed |
| π Global Search | Fast git grep across all repos at once. Find every TODO in seconds |
| π Contribution Graph | GitHub-style 90-day local commit activity grid across all your projects |
| π Smart Alerts | Desktop notifications when repos fall 5+ commits behind, have 20+ dirty files, or go stale |
| π GitHub Browser | Browse all your GitHub repos (public + private) in the Ecosystem tab and clone with one click |
| Feature | Description |
|---|---|
| πͺ AI Git Sync | Generate perfect commit messages via Gemini AI and push with one click |
| π AI Code Review | Analyze uncommitted diffs for bugs, security issues, and quality problems before committing |
| π Weekly Standup | AI-generated standup report from your last 7 days of commits |
| Feature | Description |
|---|---|
| βοΈ Gist Config Sync | Sync your roots, settings, and tags to a private GitHub Gist. Restore on any machine in seconds |
| π WakaTime | See exactly how much time you spent coding per repo over the last 7 days |
| Feature | Description |
|---|---|
| π» Shelby Terminal | Fully interactive embedded terminal powered by xterm.js and node-pty |
| β± Pomodoro Timer | Deep-work focus timer with desktop notifications β 4-session cycle with long breaks |
| β‘ Task Runner | Auto-parses package.json, Makefile, Taskfile.yml, Dockerfile for 1-click Quick Actions |
| π Activity Log | Local-first log of AI syncs, reviews, branch ops, and terminal sessions with relative timestamps |
| π Auto-Updater | Polls GitHub Releases for new versions and updates in one click |
| Feature | Description |
|---|---|
| π LAN Dashboard | Run npm run team to broadcast your dashboard to teammates over your local network |
| π Invite Tokens | Generate and revoke teammate invite tokens from the Team tab |
| π’ Team Standup | AI-generated standup report visible to all team members |
git clone https://github.com/Vinit080/repotracker.git
cd repotracker
npm install
npm run start:electron # To run the full desktop app
# OR
npm start # To run the headless web server onlyOpen http://localhost:4177 in your browser if running headless. The setup wizard handles everything else.
| Requirement | Details |
|---|---|
| Node.js v20+ | Required |
| Git in your PATH | Required |
| GitHub PAT | Optional β for GitHub browser, Gist sync, CI status |
| Gemini API Key | Optional β for all AI features (free tier is sufficient) |
| WakaTime API Key | Optional β for per-repo coding time |
| Platform | Status | Notes |
|---|---|---|
| Windows 10/11 | β Full support | PowerShell for terminal & notifications |
| macOS 12+ | β Full support | Respects your default shell (zsh, bash, fish). Uses osascript for notifications & folder picker |
| Linux (Desktop) | β Full support | Requires zenity for the folder browser dialog (sudo apt install zenity). Uses notify-send for notifications |
| Linux (Headless) | No folder picker or desktop notifications, but all core repo features, AI, terminal, and API work fine |
macOS note: Shelby Terminal automatically uses your configured shell (
$SHELL) β zsh, fish, or bash β whatever you normally use.
Classic PAT β enable: repo, gist, read:user
Fine-grained PAT β enable: Contents (read), Metadata (read), Gists (read/write)
RepoTracker is 100% free and open-source. All features, including AI Code Review, Team Mode, and Gist Sync, are unlocked and available to use up to your potential.
Copy .env.example to .env:
cp .env.example .env| Variable | Purpose | Required |
|---|---|---|
PORT |
Server port (default: 4177) |
Optional |
REPOTRACKER_TEAM |
Set to 1 to enable LAN Team Mode |
Optional |
PING_URL |
Anonymous install counter endpoint | Optional |
npm run dev # nodemon watch mode β auto-restarts on file changes
npm start # headless production server
npm run start:electron # desktop app production mode
npm run team # Team Mode (LAN broadcast on 0.0.0.0)repotracker/
βββ src/
β βββ server.js # HTTP server, .env loader, static file serving, sessions
β βββ routes/api.js # All 37 API route handlers
β βββ git.js # Git command execution & repo scanning
β βββ security.js # PBKDF2 hashing, session tokens, rate limiting, CSP
β βββ activity.js # Local-first activity log (no cloud)
β βββ export.js # Self-contained HTML dashboard export
β βββ notify.js # Desktop notification dispatch (Win/Mac/Linux)
β βββ constants.js # DEFAULT_CONFIG, SKIP_DIRS, MIME_TYPES
β βββ utils.js # Config normalization, sanitization, JSON helpers
βββ public/
β βββ index.html # Single-page app shell
β βββ js/app.js # Frontend logic (~2,280 lines)
β βββ css/ # Design system & theme tokens
βββ cloudflare-worker/
β βββ ping-counter.js # Anonymous opt-in install counter (Cloudflare Worker)
β βββ DEPLOY.md # 5-minute deploy guide
βββ data/ # Runtime data (gitignored)
β βββ config.json # User config β roots, API keys
β βββ meta.json # Repo metadata cache & notification cooldown state
βββ .env # Server secrets (gitignored)
βββ .env.example # Template β safe to commit
βββ docker-compose.yml # Docker deployment
docker compose up -dAccess at http://localhost:4177. All data is persisted in the ./data volume.
Team Mode via Docker:
REPOTRACKER_TEAM=1 docker compose up -dSee SECURITY.md for the full threat model and vulnerability reporting process.
Key protections:
- PBKDF2-SHA512 password hashing (100,000 iterations, random salt per user)
- Cryptographically random 256-bit session tokens, persisted across restarts
- Host + Origin header validation β blocks DNS rebinding and CSRF attacks
- Content-Security-Policy headers on every response
- All shell inputs validated with allowlist regex β no raw string interpolation, ever
- API keys stored server-side only β only masked sentinels (
β’β’β’ (saved)) sent to browser - Path traversal guards on all file read/write operations
| Version | Status | Focus |
|---|---|---|
| v0.1.0 | β Released | Core dashboard, health scoring, AI sync, Shelby terminal, WakaTime |
| v0.2.0 | β Released | AI Code Review, Branch Manager, Gist Sync, Pomodoro, Ecosystem tab, GitHub browser, Smart notifications, full security audit |
| v0.3.0 | π Planned | Custom workflow pipelines β chain Setup β Test β Build β Commit into 1-click automations. Compiled binary distribution (.exe, .dmg) |
| v0.4.0 | π Planned | Global Dependency Graph β force-directed visual map of cross-repo dependencies and shared packages |
| v1.0.0 | β Released | The stable API v1 release. Formal API versioning (/api/v1/), gracefully handling AI load, maximum security audit pass, completely free pricing. |
| v1.0.6 | β Released | Full native cross-platform binaries (Windows .exe, macOS .dmg, Linux .AppImage) via electron-builder and GitHub Actions pipeline. |
| v1.0.9 | β Released | Security hardenings, token parsing priority fixes, frontend DOMPurify integration, and env var scrubbing. |
β Star us on GitHub Β· π¬ Discussions Β· π Issues
Contributions, bug reports, and feature requests are welcome.
- Fork the repo
- Create your branch:
git checkout -b feat/your-feature - Commit your changes:
git commit -m 'feat: add your feature' - Push:
git push origin feat/your-feature - Open a Pull Request
MIT License. Free and open source. Use it up to your potential!
Β© 2026 Vinzone β Built with β€οΈ for developers who care about their Git hygiene.