Skip to content

Repository files navigation

๐Ÿ”ฎ GLASSBOX

don't read the diff like a caveman ๐Ÿ—ฟ โ€” turn the PR into a game and actually get it ๐Ÿง โœจ

License: MIT Electron TypeScript React LangChain PRs welcome

code review but it's a dopamine slot machine. an AI agent reads the whole change, then walks you through it like a Brilliant lesson โ€” quizzes, coins, combos, loot vaults, the works. you don't review the diff. you speedrun understanding it.

๐Ÿช™ coins ยท ๐Ÿ”ฅ combos ยท ๐ŸŽฐ vaults ยท ๐Ÿง  quizzes ยท ๐Ÿ… levels ยท ๐Ÿ’ฏ no cap


the vibe ๐Ÿ˜ค

AI vibe-codes a PR in 4 seconds. you still have to understand it. and a raw git diff? unreadable. boring. zero dopamine. you scroll, your eyes glaze, you smash "Approve," you pray. ๐Ÿ™

Glassbox said nah. ๐Ÿ›‘

it spins up a LangChain deepagents agent that actually reads the whole change โ€” every file, every call site โ€” then becomes your hype tour guide. big picture first, then pokeable code, hover-for-lore, value-tracing animations, and a full gamified loop that makes your brain go brrr while you learn.

it is NOT a reviewer. NOT a linter. NOT a vibe-killing quality scorer. its only job: get the change into your head with maximum dopamine and minimum effort. ๐Ÿง โšก๏ธ

why it goes hard ๐Ÿš€

  • ๐Ÿ—บ๏ธ big picture first โ€” plain-language what + why before a single line of code
  • ๐Ÿ‘† pokeable code โ€” hover any symbol for instant lore (what it is, where it came from, what it holds right here). tap to pin.
  • ๐ŸŽฌ value tracing โ€” watch a value flow through the change, line glowing as you step. cinematic.
  • ๐ŸŽš๏ธ depth dial โ€” one-line gist โ‡„ deep dive, with "go deeper โค“" for a fresh on-demand investigation
  • โ“ "wait, why this?" โ€” ask inline about any chunk, grounded in the real repo
  • ๐Ÿง  quizzes + self-check โ€” active recall, Brilliant-style, so it actually sticks
  • ๐Ÿ” investigation trail โ€” see exactly what the agent read to explain each part

the dopamine layer ๐ŸŽฐ

this is the part your brain is addicted to:

๐ŸŽฎ what
๐Ÿช™ coins + XP + levels earn for every insight, quiz, and trace. rank up: Intern โ†’ โ€ฆ โ†’ Legend
๐Ÿ”ฅ combos + crits chain actions fast for multipliers, random ร—2/ร—3 crits, screen-shake, hype banners
๐ŸŽฐ hidden vaults coins locked behind "Decode" mini-games โ€” prove you get the code to crack 'em
๐Ÿ•น๏ธ the Arcade daily streak ๐Ÿ”ฅ, quests ๐ŸŽฏ, slot machine ๐ŸŽฐ, mini-games ๐ŸŽฎ, personal-best stats ๐Ÿ“Š
๐ŸŽฎ learning games Order the Flow ยท Match Up ยท Fill the Blank โ€” built from the actual PR
๐Ÿงฐ loot chests master a section, pop a chest, win a random jackpot
๐Ÿ’ธ buy the verdict you can't just approve. you cash out coins to unlock the final Approve / Request-changes โ€” earned, not free

tl;dr: it's a casino, but the house always wins by making you understand the code. ๐Ÿ’ฏ

๐Ÿ“ฆ install

grab a prebuilt installer from the Releases page:

platform file
๐ŸŽ macOS Glassbox-*-mac-*.dmg (Apple Silicon + Intel)
๐ŸชŸ Windows Glassbox-*-win-x64.exe (NSIS installer)
๐Ÿง Linux Glassbox-*-linux-x86_64.AppImage

every push to main ships a fresh build via GitHub Actions, and the app auto-updates itself in the background (Windows + Linux). on macOS, auto-update is off until the build is code-signed โ€” pull the latest .dmg to update.

first launch is unsigned, so the OS will warn you: macOS โ†’ right-click the app โ†’ Open; Windows โ†’ More info โ†’ Run anyway.

run it ๐Ÿƒ

npm install
npm run dev      # ๐Ÿš€ launches the Electron app

build installers yourself:

npm run pack   # unpacked app in dist/ (fast, for testing)
npm run dist   # full installers for the current platform

then: drop a repo ๐Ÿ“ โ†’ pick the matchup โš”๏ธ (base ๐Ÿ†š feature) โ†’ let's gooo ๐Ÿš€

npm run build       # production build (out/)
npm run typecheck   # tsc for main + renderer

requirements: Node 18+ (built on Node 26) ยท a local git repo with two branches ยท an LLM provider (below).

pick your fighter ๐ŸฅŠ (LLM providers)

set it in Settings (โš™) inside the app:

provider needs
๐ŸŸฃ OpenCode Zen (the default sauce) key from opencode.ai/auth โ€” OpenAI-compatible gateway
๐ŸŸ  Anthropic ANTHROPIC_API_KEY env var, or paste a key in Settings (claude-opus-4-8)
๐ŸŸข Ollama (local, no key, zero cost) Ollama running at localhost:11434 + a code model pulled
๐ŸŸก Amazon Bedrock AWS region + creds (or default chain)
๐Ÿ”ต Google Vertex AI GCP project + location + ADC

๐Ÿ”’ keys live only in the main process. the renderer never sees them. we're not weird about your secrets.

broke but based? install Ollama, ollama pull qwen2.5-coder, pick Ollama, run infinite reviews for free. plus there's a prefetch toggle that cooks the next section in the background while you play โ€” perfect for local. ๐Ÿง‘โ€๐Ÿณ

under the hood ๐Ÿ”ง

single Electron + TypeScript codebase. no Python sidecar. three layers:

layer path job
๐Ÿง  Main (Node) src/main/ git ingestion, the deepagent, LLM providers, secrets, IPC
๐ŸŒ‰ Preload src/preload/ typed window.glassbox bridge (context-isolated)
๐ŸŽจ Renderer (React) src/renderer/ the entire interactive walkthrough + game UI
  • ๐Ÿค– agent โ€” deepagents (createDeepAgent) on LangGraph, reading the real checked-out repo with sandboxed repo_* tools (read_file, grep, glob, ls, diff), bounded by a per-section file budget. every section comes back by calling submit_walkthrough_section โ€” a Zod schema. all structure from tool-calling, never model-emitted JSON text. work is lazy: a section generates only when you open it.
  • ๐ŸŒฟ diff โ€” simple-git computes base...feature; parse-diff structures it.
  • โœจ code โ€” shiki tokenizes (JS regex engine โ€” renderer CSP blocks WASM); inline explanations get mapped onto tokens to make them pokeable.
  • ๐ŸŽฎ game state โ€” zustand + localStorage; SFX via the Web Audio API (no asset files, CSP-safe).

try it instantly ๐Ÿงช

any repo with two branches works. spin a scratch one:

mkdir /tmp/demo && cd /tmp/demo && git init
# commit a base on main, branch off, make some changes...

pick /tmp/demo, compare main ๐Ÿ†š your-feature, and let's gooo. ๐Ÿš€

roadmap ๐Ÿ›ฃ๏ธ

  • ๐Ÿ“ฅ input: local git repos for now. GitHub/GitLab PR-URL ingestion is deferred โ€” the ingestion layer is isolated in src/main/git/ so it's easy to bolt on.
  • ๐Ÿ’พ walkthroughs + your coverage are cached per (repo, base, feature), so reopening is instant.

built different. review different. ๐Ÿ”ฎ

stop approving code you don't understand. start maxxing. ๐Ÿง ๐Ÿ“ˆ

About

๐Ÿ”ฎ Turn any AI-written code change into a gamified, interactive walkthrough, gaming experience

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages