A powerful, self-hosted GitHub Desktop alternative built with React + Go. Manage pull requests, issues, notifications, workflows, and local git operations, all inline, without leaving the app.
Single binary · No Electron · No cloud sync · Runs on localhost:8765
| Feature | Description |
|---|---|
| PR Viewer | Browse all your pull requests with real-time filters |
| PR Detail Panel | Full inline review: file tree, dual-line diff, merge, approve, request changes |
| Issue Tracker | Issues assigned to you, created by you, or where you're mentioned |
| Issue Detail Panel | Edit title/body, close/reopen, add comments — all inline |
| Notification Center | Real GitHub notifications — click to open PR or Issue panel directly |
| Activity Feed | Live event stream with type filtering, auto-refreshes every 2 min |
| Workflow Automation | GitHub Actions runs, job steps, and live log viewer |
| File Browser | Navigate any repo's file tree and read source inline |
| Command Palette | Ctrl+K fuzzy search across tabs and repositories |
| Keyboard Shortcuts | ? to view all shortcuts; Ctrl+1-0 to switch tabs |
| Analytics | Repository stats, language breakdown, contributor leaderboard |
| Feature | Description |
|---|---|
| Changes | Stage/unstage hunks, write commit messages, push/pull |
| Branches | Create, switch, merge branches with drag-and-drop |
| Stashes | Create, apply, and delete stash entries |
| Commit History | Searchable log with diff viewer per commit |
| Inline Editor | Edit any tracked file directly in the browser |
# Download latest release for your platform from:
# https://github.com/paulmmoore3416/github-command-center/releases/latest
tar -xzf github-command-center-v2.0.0-linux-amd64.tar.gz
cp .env.example .env
# Edit .env with your GitHub token
./github-command-center
# Open http://localhost:8765Requirements: Node.js 20+, Go 1.21+
git clone https://github.com/paulmmoore3416/github-command-center.git
cd github-command-center
# Configure credentials
cp .env.example .env
# Edit .env → set GITHUB_TOKEN and GITHUB_USERNAME
# Build & run
make build
./github-command-centerThen open http://localhost:8765 in your browser.
docker run --rm -p 8765:8765 \
-e GITHUB_TOKEN=your_token_here \
-e GITHUB_USERNAME=your_username \
ghcr.io/paulmmoore3416/github-command-center:latestmake install # copies binary + creates desktop launcher
# Launch from Applications menu or run: github-command-center- Go to GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- Click Generate new token (classic)
- Select scopes:
repo,read:user,notifications,workflow - Copy the token into your
.envfile
GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx
GITHUB_USERNAME=your_usernameThe token is stored locally in your .env file and in browser localStorage. It is never sent anywhere except directly to the GitHub API.
| Shortcut | Action |
|---|---|
Ctrl+K |
Open command palette |
? |
Show keyboard shortcuts reference |
Ctrl+1 |
Dashboard |
Ctrl+2 |
Activity Feed |
Ctrl+3 |
Pull Requests |
Ctrl+4 |
Issues |
Ctrl+5 |
Notifications |
Ctrl+6 |
Code Reviews |
Ctrl+7 |
Workflows |
Ctrl+8 |
Branch Protection |
Ctrl+9 |
Analytics |
Ctrl+0 |
Quick Actions |
Esc |
Close panel / modal |
github-command-center/
├── backend/ # Go HTTP server (gorilla/mux)
│ ├── main.go # Routes, git handlers, CORS, static serving
│ ├── github.go # GitHub API types + proxy handlers
│ └── github_panels.go # Panel-specific handlers (PR/Issue/Workflow/Search)
├── src/
│ ├── components/ # 28 React components
│ ├── store/ # Zustand state (repos, toasts, panels)
│ └── App.tsx # Root with auto-credential loading
├── dist/ # Built frontend (served by Go binary)
├── Dockerfile # Multi-stage build
├── Makefile # Build / install / dev targets
└── .env # Local credentials (gitignored)
Technology stack:
- Frontend: React 18 · TypeScript 5 · Tailwind CSS · Vite · Zustand · Axios
- Backend: Go 1.21 · gorilla/mux · godotenv
- Deployment: Single ~10 MB binary serves React SPA + proxies GitHub API
# Start both servers concurrently
make dev
# Frontend only (hot-reload at http://localhost:5173)
npm run dev
# Backend only
cd backend && go run .
# Type-check frontend
npx tsc --noEmit
# Lint backend
cd backend && go vet ./...- Fork the repo
- Create a branch:
git checkout -b feature/your-feature - Make your changes, following the existing code style
- Run
make lintto verify - Open a pull request using the provided template
See CONTRIBUTING.md for full guidelines.
MIT © 2026 paulmmoore3416