π« ONYX β DevOS
Engineering Workstation for GitHub
[ Engineering Workstation ] Retro look. Modern power. Zero noise.
BOOT
β
CONNECT
β
WORK
The engineering workstation for GitHub.
ONYX is not just another GitHub dashboard. ONYX is an operating system built for engineering teams β complete with a boot screen, desktop, window manager, terminal, and modular applications that all run in real time through GitHub webhooks.
Zero AI. Zero heavy compute. Just facts from your git data.
No AI API key to buy, no subscription to an LLM. Every insight (Bus Factor, Review Health, Commit Decay, and more) is computed statistically from your own git data β not "analyzed" by a language model. Clone it, run it, free forever.
| Module | Description |
|---|---|
DESKTOP |
Not a page β a window. Open multiple applications at once, drag, resize, snap into layout |
LIVE SYNC |
Every piece of data stays connected in real time via GitHub webhooks + WebSocket, no manual refresh |
INSIGHTS |
Bus Factor, Review Health, Commit Decay, Issue Graveyard, Reviewer Gap, Weekend Heatmap |
COMMAND PALETTE |
Ctrl+K for power users β open apps, jump to a PR, copy a link, export, all without touching the mouse |
THEME ENGINE |
Multiple visual themes: CRT (retro), Modern, Pixel, Dark |
AUTH |
Native GitHub OAuth β log in and authorize repositories directly, no separate account |
IDENTITY |
Auto-generated avatar identity per user, with cooldown-based regeneration |
SOUND |
Full UI sound system β boot, clicks, drag/drop, window events, notifications |
TERMINAL |
In-desktop terminal with command parser, autocomplete, and history |
WHITEBOARD |
Infinite canvas with layers, snapping, guides, and shape templates |
WORKFLOW |
Node-based flow builder with simulation/debugger support |
COMMUNITY / GROUPS |
Social layer β discussions, leaderboards, showcases, public/private groups |
flowchart LR
subgraph Client["apps/web"]
L[Landing] --> A[Auth / OAuth]
A --> B[Boot Sequence]
B --> D[Desktop]
D --> WM[Window Manager]
D --> TB[Taskbar]
D --> CP[Command Palette]
WM --> APP[Applications]
end
subgraph Server["apps/server"]
AUTH[auth/] --> DB[(PostgreSQL)]
WH[webhook/] --> DB
WH --> WS[websocket/]
SC[scoring/] --> DB
RT[routes/] --> SVC[services/]
SVC --> DB
end
GH[GitHub API / Webhook] --> WH
WS -.live updates.-> WM
APP --> RT
Product flow: landing β auth β boot β desktop β window-manager β taskbar β applications
Every GitHub event (push, PR, review, issue, check run) arrives through webhook/, has its signature verified, gets persisted to db/, has its score recalculated in scoring/, and is broadcast in real time to every client currently viewing that repository through websocket/ β no polling, no manual refresh.
| Layer | Technology |
|---|---|
| Frontend | Vite Β· React Β· TypeScript |
| Backend | Express Β· TypeScript |
| Database | PostgreSQL Β· Drizzle ORM |
| Realtime | Socket.IO |
| Auth | GitHub OAuth 2.0 Β· JWT (access + refresh) Β· CSRF double-submit cookie |
| Deployment | Vercel (web) Β· Railway (server + db) |
Project Structure
server/src/
βββ auth/ # GitHub OAuth, JWT, session, CSRF, permission/role
βββ db/ # Drizzle schema, migrations, queries, seed
βββ routes/ # REST endpoints per domain (dashboard, repository, PRs, reviews, etc.)
βββ scoring/ # Statistical engine: busFactor, reviewHealth, commitDecay, etc.
βββ services/ # GitHub API client, cache, analytics, storage, logger
βββ webhook/ # Verify signature β parse β dispatch β onPush/onPullRequest/etc.
βββ websocket/ # Socket.IO server: rooms, broadcast, heartbeat, notifications
βββ index.ts # Entrypoint: auto-migrate β listen
web/src/
βββ App.tsx / main.tsx / router.tsx / index.css
βββ applications/ # Every desktop app, each self-contained (API, store, hooks, styles, window)
β βββ Activity/ # Live feed, timeline, filters
β βββ Community/ # Discussions, leaderboard, showcase, trending
β βββ Dashboard/ # Overview, quick launch, insight feed, connect-repo modal
β βββ GitGraph/ # Branch/commit topology visualizer
β βββ Groups/ # Public/private groups, chat, files, announcements
β βββ Heatmap/ # Commit / review / weekend heatmaps
β βββ Insights/ # Bus Factor, Commit Decay, Review Health, Reviewer Gap
β βββ Issues/ # Open/closed issues, labels, milestones, assignees
β βββ Profile/
β βββ PullRequests/ # Open/draft/merged/closed PRs, risk analysis, timeline
β βββ Reports/ # Weekly/monthly/quarterly, CSV & PDF export
β βββ Repository/ # Branches, commits, contributors, releases, tags
β βββ Reviews/ # Review queue, reviewer load, timeline
β βββ Settings/ # Appearance, keyboard, sound, workspace, integrations
β βββ Team/ # Bus factor, contribution, leaderboard, reviewer load
β βββ Terminal/ # Command console with parser & history
β βββ Whiteboard/ # Infinite canvas: layers, guides, snapping, templates
β βββ Workflow/ # Node-based flow builder + simulation/debugger
βββ assets/ # Icons, mascot art, boot imagery
βββ audio/ # SoundManager + per-event sound modules
βββ auth/ # OAuth callback, repository authorization, auth guard
βββ boot/ # Boot sequence, shutdown/restart screens
βββ command-palette/ # Ctrl+K palette, command list & search
βββ cursor/ # Custom cursor themes & effects
βββ desktop/ # Desktop context menu
βββ icons/ # App icon set
βββ identity/ # Auto-generated user identity/avatar system
βββ landing/ # Public marketing page before login
βββ mascot/ # Animated mascot states (idle, happy, error, etc.)
βββ notifications/ # Toasts, alerts, live PR/issue/review notifications
βββ pages/ # Route-level pages (desktop, features, 404)
βββ shared/ # API client, components, hooks, types, utils shared across apps
βββ taskbar/ # Clock, tray, quick launch, system status, start menu
βββ terminal/ # Lower-level terminal engine (parser, registry, history)
βββ theme/ # Design tokens + themes (CRT / Modern / Pixel / Dark)
βββ websocket/ # Socket client, provider, event subscription hook
βββ window-manager/ # Window frame, drag/resize/snap, focus, z-index, shortcuts
βββ workspace-setup/ # Create workspace & repository setup flow
Structure above reflects the current state of
apps/web. Some applications are scaffolded end-to-end (components, store, hooks, API layer) but not yet fully wired to live backend data β see Roadmap below.
- Node.js β₯ 20
- PostgreSQL (local, Docker, or cloud such as Neon)
- A GitHub OAuth App
git clone https://github.com/GSF-001/ONYX-DevOS.git
cd ONYX-DevOS
npm installcp apps/server/.env.example apps/server/.env| Variable | Description |
|---|---|
DATABASE_URL |
PostgreSQL connection string |
GITHUB_CLIENT_ID / GITHUB_CLIENT_SECRET |
From the OAuth App you created |
GITHUB_CALLBACK_URL |
http://localhost:4000/auth/github/callback for local dev |
JWT_ACCESS_SECRET / JWT_REFRESH_SECRET |
Any long random string |
APP_URL |
Frontend URL, http://localhost:5173 for local dev |
Database schema is created/synced automatically on server start β no manual migration command needed.
npm run dev| Service | URL |
|---|---|
| Web | http://localhost:5173 |
| API | http://localhost:4000 |
| Status | Milestone |
|---|---|
DONE |
Auth β GitHub OAuth, JWT, session, CSRF |
DONE |
Database schema + auto-migration |
DONE |
Webhook pipeline (verify β parse β dispatch β handlers) |
DONE |
WebSocket real-time layer |
DONE |
Boot sequence + Desktop + Window Manager |
DONE |
Taskbar + Command Palette (Ctrl+K) |
DONE |
Theme engine (CRT / Modern / Pixel / Dark) |
DONE |
Application shells scaffolded (Dashboard, Repository, PRs, Reviews, Issues, Insights, Team, Reports, Heatmap, Terminal, Activity, Community, Groups, Whiteboard, Workflow, GitGraph, Settings, Profile) |
IN PROGRESS |
Scoring engine (Bus Factor, Review Health, Commit Decay, etc.) wired to live data |
IN PROGRESS |
REST routes (dashboard, repository, PRs, reviews, insights, etc.) |
PLANNED |
Full end-to-end data wiring for every application module |
PLANNED |
Reports export (CSV / PDF) |
PLANNED |
Public launch / hosted demo |
Detailed progress is tracked in Issues
Contributions are welcome β read CONTRIBUTING.md (coming soon) before opening a PR.
1. Fork this repository
2. git checkout -b feature/your-feature-name
3. git commit -m "feat: add your-feature-name"
4. Push & open a Pull Request
| Documentation | /docs |
| Report a Bug | Issues |
| Roadmap / Project Board | Projects |
| Discussions | Discussions |
| License | LICENSE |
Released under the MIT License β use, fork, and modify freely. See LICENSE for full details.


