A desktop app for managing GitHub pull request reviews, mocking API endpoints, and sharing files via S3.
PR review dashboard with real-time sync, unread tracking, and change stats.
Pull Request Reviews
- Sync PRs from GitHub via personal access token
- Unread detection — tracks updates since you last read a PR
- Branch-colored badges with customizable colors
- Virtual-scrolled list for smooth performance at scale
- Search, filter, and one-click open in browser
Mock Server
- Configurable HTTP endpoints with path matching and wildcards
- Per-endpoint method, status code, and JSON response body
- Toggle endpoints on/off, edit response bodies inline
- Start/stop/restart from the UI — no terminal needed
- Useful for frontend development against simulated APIs
S3 Storage
- Upload and manage files on any S3-compatible provider (AWS S3, MinIO, Cloudflare R2, etc.)
- Multi-file upload with per-file progress bars and smooth animation
- Drag & drop files from anywhere — a full-window drop zone appears automatically
- One-click presigned URL sharing — copy a temporary link to clipboard
- Optimistic UI — files appear in the list instantly during upload, with error recovery
Developer Utilities
- Branch badge color picker with preset palette
- Clipboard-ready server URL
- Carbon Rose dark theme — polished UI with subtle shadows, tooltips, and button feedback
- SQLite-backed persistence — data lives locally
Mock HTTP server with inline editing · S3 file storage with drag & drop upload
| Layer | Technology |
|---|---|
| Framework | Wails v2 — Go backend + web frontend |
| Backend | Go 1.24, GORM, SQLite, go-github v83, minio-go v7 |
| Frontend | React 18, TypeScript, Chakra UI v3, Vite |
| Virtualization | @tanstack/react-virtual |
| Platform | macOS (hidden title bar), Windows, Linux |
go install github.com/wailsapp/wails/v2/cmd/wails@latest# Clone the repository
git clone https://github.com/your-username/sentinel.git
cd sentinel
# Run in development mode (hot reload)
wails devThis starts a Vite dev server with hot reload for the frontend and live reloading for Go changes.
# Production build
wails buildThe output binary will be in build/bin/.
On first launch, head to Settings to configure:
- GitHub Personal Access Token — required for PR sync (create one here)
- Server Port — port for the mock HTTP server (default: auto-assigned)
- S3 Storage — endpoint, bucket, access key, and secret key for any S3-compatible provider
- Branch Colors — assign colors to branch name patterns
Data is stored in a local SQLite database:
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/sentinel/sentinel.db |
| Windows | %APPDATA%/sentinel/sentinel.db |
| Linux | ~/.config/sentinel/sentinel.db |
sentinel/
├── backend/
│ ├── app.go # Wails-bound methods (API surface)
│ ├── data/ # Business logic layer
│ ├── database/ # GORM models + CRUD
│ ├── github_api/ # GitHub client wrapper
│ ├── server/ # Mock HTTP server
│ └── storage/ # S3 client (minio-go)
├── frontend/
│ └── src/
│ ├── components/ # React components
│ │ ├── reviews/ # PR review list + dialogs
│ │ ├── server/ # Endpoint rows + dialogs
│ │ ├── settings/ # Badge settings + dialogs
│ │ └── storage/ # File rows (uploading + stored)
│ ├── contexts/ # State management (React Context)
│ ├── pages/ # Page-level views
│ └── theme.ts # Carbon Rose dark theme tokens
└── main.go # Entry point + Wails config
This project is not currently licensed. All rights reserved.
Built with Wails and coffee.
