Skip to content

Vinit080/repotracker

Repository files navigation

RepoTracker v1.0.9

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.

Version License Node.js GitHub Stars Security Audited Install Count

Windows macOS Linux


✨ Features

πŸ—‚οΈ Repository Management

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

πŸ€– AI Features

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

☁️ Sync & Config

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

πŸ› οΈ Tooling

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

πŸ‘₯ Team Mode

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

πŸš€ Quick Start

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 only

Open http://localhost:4177 in your browser if running headless. The setup wizard handles everything else.

Prerequisites

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 Compatibility

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) ⚠️ Partial 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.

GitHub Token Permissions

Classic PAT β€” enable: repo, gist, read:user

Fine-grained PAT β€” enable: Contents (read), Metadata (read), Gists (read/write)


πŸ”‘ Licensing

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.


βš™οΈ Configuration

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

πŸ› οΈ Development

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)

Project Structure

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

docker compose up -d

Access at http://localhost:4177. All data is persisted in the ./data volume.

Team Mode via Docker:

REPOTRACKER_TEAM=1 docker compose up -d

πŸ”’ Security

See 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

πŸ—ΊοΈ Roadmap

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


🀝 Contributing

Contributions, bug reports, and feature requests are welcome.

  1. Fork the repo
  2. Create your branch: git checkout -b feat/your-feature
  3. Commit your changes: git commit -m 'feat: add your feature'
  4. Push: git push origin feat/your-feature
  5. Open a Pull Request

πŸ“„ License

MIT License. Free and open source. Use it up to your potential!

Β© 2026 Vinzone β€” Built with ❀️ for developers who care about their Git hygiene.

About

A premium local-first developer dashboard that centralizes Git repository health, automates commits with AI, and tracks productivity metrics across all personal projects.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors