Is PR review and CI fixing the bottleneck in your AI-powered development workflow? If you're running multiple Claude Code sessions across separate terminals, each paired with a browser tab to track the corresponding PR, this tool is for you. Manage all your open PRs in one place, spawn isolated Claude Code sessions per PR, and let them autonomously fix CI failures and address review comments — in parallel, with a single click.
A typical AI-assisted dev workflow looks like this: plan a task in Claude Code, let it implement, steer when needed, run /fix-pr to polish, then track the PR in the browser. Doing this across 3+ parallel workstreams means juggling terminal windows and browser tabs with no connection between them.
This app puts everything in one place — PR list, CI status, and Claude Code terminals side by side.
┌──────────────────────────────────────────────────────┐
│ ┌──────────┐ ┌──────────────────────────────────┐ │
│ │ Sidebar │ │ Terminal Sessions (1-5) │ │
│ │ │ │ │ │
│ │ owner/ │ │ ┌──────────┐ ┌──────────┐ │ │
│ │ repo │ │ │ PR #42 │ │ Shell │ ... │ │
│ │ [Load] │ │ │ claude> │ │ $ │ │ │
│ │ │ │ └──────────┘ └──────────┘ │ │
│ │ PR List │ │ │ │
│ │ #42 ... │ │ (each Claude session runs in │ │
│ │ #38 ... │ │ its own Docker container) │ │
│ └──────────┘ └──────────────────────────────────┘ │
└──────────────────────────────────────────────────────┘
Each Claude Code session runs inside an isolated Docker container. When you click "Open CLI" or "Auto Fix" on a PR:
docker/ imagenpm ci if package.json exists)/fix-pr) are injected if the repo doesn't have its own--dangerously-skip-permissions (safe inside the container)Each session gets a fully isolated environment — no worktree conflicts, no local repo needed, and multiple sessions can work on different branches simultaneously.
/fix-pr CommandThe app ships with a generic /fix-pr command that works across any repository. When triggered, Claude will:
If a repo already has its own .claude/commands/fix-pr.md, that takes precedence over the bundled version.
gh) — authenticated via gh auth login# Install frontend dependencies
npm install
# Install Tauri CLI
cargo install tauri-cli --version "^2"
# Build the Docker image (one-time)
docker compose -f docker/docker-compose.yml build
# Run in development mode
cargo tauri dev
All settings are configured in the app's Settings panel (no environment variables needed):
~/.claude/.credentials.json (mounted read-only into containers)owner/repo) in the sidebar/fix-pr| Layer | Technology | Purpose |
|---|---|---|
| Shell | Tauri v2 | Lightweight desktop runtime (smaller and faster than Electron) |
| Frontend | Svelte 5 (runes) | Reactive UI |
| Bundler | Vite 6 | Frontend build tooling |
| Terminal | xterm.js | Terminal emulation |
| PTY | portable-pty (Rust) | Cross-platform pseudo-terminal |
| Sandbox | Docker | Isolated Claude Code environment per session |
| GitHub | gh CLI | PR data and authentication |
| AI | Claude Code CLI | AI-powered code fixing |
Pre-built binaries are automatically published to GitHub Releases for every release:
| Platform | Formats |
|---|---|
| Linux | .deb, .AppImage |
| Windows | .msi, .exe (NSIS installer) |
| macOS (Apple Silicon) | .dmg |
| macOS (Intel) | .dmg |
Note: Binaries are unsigned. On Windows you may see a SmartScreen warning, and on macOS a Gatekeeper prompt — both can be dismissed to proceed with installation.
gh CLI on host — for listing PRs in the sidebar