Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Code review for AI native teams. Native Electron app for reviewing pull requests dramatically faster than Github web. Specialized for handling reviews for background agents working on multiple concurrent threads

License

Notifications You must be signed in to change notification settings

areibman/bottleneck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Bottleneck

Bottleneck is a code review powertool for AI native teams. It's a native Electron app that reproduces the core GitHub PR experience while being dramatically faster and optimized for parallelized background agents like Claude Code, Cursor, Devin, and Codex.

Bottleneck_walkthrough.mp4

Demo in action: https://screen.studio/share/o6sCO1uS

Features

  • ⚑ Lightning Fast - Near-instant navigation, diff rendering, and branch checkout
  • πŸ”„ Smart Sync - Incremental updates via GitHub GraphQL with intelligent caching
  • πŸ‘₯ Bulk Actions - Multi-select PRs for batch operations (merge, close, label, etc.)
  • 🏷️ Prefix Grouping - Automatically groups PRs by common prefixes (feat/, fix/, etc.)
  • πŸ“ Monaco Editor - VSCode-powered diff viewer with syntax highlighting
  • πŸ’Ύ Offline Support - SQLite-based local cache for offline access
  • ⌨️ Shortcuts for Everything - Comprehensive keyboard shortcuts for power users

Tech Stack

  • Electron - Cross-platform desktop app
  • React 18 - UI framework with TypeScript
  • Monaco Editor - Code diff viewing
  • SQLite - Local data persistence
  • GitHub API - PR and repository management
  • Tailwind CSS - Styling
  • Zustand - State management

Getting Started

Prerequisites

  • Node.js 18+ and npm
  • Git
  • GitHub account with appropriate permissions

Installation

  1. Fork (and star) the repository:
gh repo fork areibman/bottleneck --clone
git remote add upstream https://github.com/areibman/bottleneck.git
cd bottleneck

To fetch updates, run

git fetch upstream
  1. Install dependencies:
npm install

Important: You must use npm. Bun is known not to work.

  1. Run in development mode:
npm run dev
  1. Build for production:
npm run build
npm run dist

Development

Project Structure

bottleneck/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main/           # Electron main process
β”‚   β”‚   β”œβ”€β”€ index.ts     # Main entry point
β”‚   β”‚   β”œβ”€β”€ database.ts  # SQLite operations
β”‚   β”‚   β”œβ”€β”€ auth.ts      # GitHub OAuth
β”‚   β”‚   └── git.ts       # Git operations
β”‚   β”œβ”€β”€ renderer/        # React app
β”‚   β”‚   β”œβ”€β”€ components/  # UI components
β”‚   β”‚   β”œβ”€β”€ views/       # Page views
β”‚   β”‚   β”œβ”€β”€ stores/      # Zustand stores
β”‚   β”‚   β”œβ”€β”€ services/    # API services
β”‚   β”‚   └── utils/       # Utilities
β”‚   └── shared/          # Shared types/constants
β”œβ”€β”€ dist/                # Compiled output
└── release/             # Packaged apps

Available Scripts

  • npm run dev - Start development server with hot reload
  • npm run build - Build for production
  • npm run dist - Package the app for distribution
  • npm run electron - Run the built app

React DevTools Profiler

If the React DevTools Profiler tab is missing inside Electron DevTools, walk through the following steps:

  1. Update the installer call – In src/main/index.ts make sure the React DevTools installation includes allowFileAccess (and optionally forceDownload to refresh stale caches):

    await installExtension(REACT_DEVELOPER_TOOLS, {
      loadExtensionOptions: { allowFileAccess: true },
      forceDownload: true,
    });
  2. Clear the cached extension – Remove the fmkadmapgofadopljbjfkapdkoienihi folder so Electron downloads the updated bundle on the next run.

    • macOS: ~/Library/Application Support/Electron/extensions/
    • Windows: %APPDATA%\Electron\extensions\
    • Linux: ~/.config/Electron/extensions/

    Delete only the React DevTools folder (keep other extensions if you rely on them).

  3. Restart the dev environment – Run npm run dev, open the window, and press Cmd/Ctrl + Option + I to open DevTools. You should now see both βš›οΈ Components and βš›οΈ Profiler tabs.

Keyboard Shortcuts

Global

  • Cmd/Ctrl + B - Toggle sidebar
  • Cmd/Ctrl + Shift + B - Toggle right panel
  • Cmd/Ctrl + Shift + P - Command palette
  • Cmd/Ctrl + / - Show keyboard shortcuts

Navigation

  • Cmd/Ctrl + P - Go to PR
  • Cmd/Ctrl + T - Go to file
  • Cmd/Ctrl + [ - Previous PR
  • Cmd/Ctrl + ] - Next PR
  • Alt + Up - Previous file
  • Alt + Down - Next file

Review

  • Cmd/Ctrl + Enter - Submit comment
  • Cmd/Ctrl + Shift + A - Approve PR
  • Cmd/Ctrl + Shift + R - Request changes
  • V - Mark file as viewed
  • D - Toggle diff view
  • W - Toggle whitespace

Performance

Targets

  • PR list render: <300ms from cache, <1.5s cold fetch
  • First diff paint: <150ms for typical files
  • Handle 1k+ files / 50k+ changed lines smoothly
  • 60 FPS scrolling in all views

Optimizations

  • Virtualized lists and diff rendering
  • Web workers for diff computation
  • Incremental syntax highlighting
  • Smart caching with ETags
  • Concurrent API requests with rate limiting

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT

Acknowledgments

  • Built with Electron, React, and Monaco Editor
  • Inspired by the need for faster PR reviews
  • Optimized for teams using agent-based development

About

Code review for AI native teams. Native Electron app for reviewing pull requests dramatically faster than Github web. Specialized for handling reviews for background agents working on multiple concurrent threads

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages