Skip to content

Navigation Menu

Sign in
Sign up

Repository files navigation

peaR

A terminal-native PR review control center. Every pull request is a tab. Every tab is a real terminal running the AI CLI of your choice. Review with one keystroke, resume any past session, and keep your reviews close.

CI Release License: MIT Platform Built with Tauri

peaR β€” tiled PR review across Phosphor and Instrument themes

Tiled review panes, live diff with per-file summaries, a PR tree with review-status badges β€” in two built-in themes, Phosphor (amber CRT) and Instrument (refined industrial), toggled live.


Why peaR

Reviewing PRs with an AI CLI means a lot of gh pr checkout, juggling terminal panes, and losing the conversation the moment you close a tab. pear makes the PR the unit of work:

  • πŸ—‚οΈ PRs as tabs β€” open owner/repo#123 (or paste a GitHub URL); pear finds the repo locally, checks out the branch, and drops you into a real terminal there.
  • πŸ€– Bring your own CLI β€” claude, codex, aider, or a plain shell, per tab.
  • πŸš€ One-keystroke reviews β€” Light / Standard / Complex launch buttons, plus a clearly marked Ultra πŸ’Έ for the paid cloud review. No hidden costs.
  • ↩️ Resumable sessions β€” every PR keeps a tree of Claude sessions; resume the exact chat you were in, or start a fresh one, from the history pane.
  • πŸͺŸ Insight panel β€” render saved reviews (markdown / diff) beside the terminal.
  • 🎨 Two production themes β€” Phosphor (amber CRT) and Instrument (refined industrial), toggleable live.
  • πŸ“‹ Smart copy β€” capture review output to the system clipboard with an editable preview.
  • 🧩 Ships a review-skills plugin (Claude Code + Codex) β€” /pr-post-review, /pr-distill, /pr-walkthru, /pr-explain, /pr-video. See plugins/pear-review.

Architecture

pear is a small, fast Rust core (pear-core) behind a serializable Command/Event protocol, fronted today by a Tauri + xterm.js desktop app. The protocol boundary means a TUI or a daemon frontend can reuse everything below the IPC line unchanged.

apps/desktop Tauri app β€” web UI (xterm.js) + thin Rust shim
crates/pear-core engine Β· PTY sessions Β· GitHub Β· review store Β· dispatch Β· workdir
plugins/ pear-review plugin (Claude Code + Codex) with the /pr-* skills
docs/ ARCHITECTURE.md Β· ROADMAP.md Β· design snapshots & mocks

See docs/ARCHITECTURE.md for the locked decisions and branch paths, and docs/ROADMAP.md for what's shipped and what's next.

Install

Homebrew (macOS)

brew install --cask imbgar/tap/pear

Unsigned build β€” on first launch, right-click the app β†’ Open.

Prerequisites

  • macOS (Apple Silicon or Intel)
  • Rust β‰₯ 1.80, Node β‰₯ 20
  • GitHub CLI (gh) β€” pear reuses your gh auth for PR metadata
  • Your AI CLI of choice (e.g. Claude Code)

Run from source

git clone git@github.com:imbgar/peaR.git
cd pear/apps/desktop
npm install
npm run tauri dev

Build a release bundle (.dmg / .app)

cd apps/desktop
npm install
npm run tauri build # universal binary configured via tauri.conf.json

Configuration

pear reads a few optional environment variables:

Variable Purpose
PEAR_REPO_DIRS Colon-separated dirs to search for PR repos (default: ~/repos, ~/projects, ~/src, ...). If a PR's repo isn't found in any of them, pear auto-clones it into a managed repos/ dir under the data dir β€” no manual setup needed.
PEAR_DATA_DIR Override where history + reviews are stored (default: OS data dir)
PEAR_GITHUB_TOKEN / GITHUB_TOKEN GitHub token (otherwise sourced from gh auth token)

Claude permission mode (per the sidebar selector): auto · acceptEdits · dontAsk · bypassPermissions 🚨 · default · plan.

Contributing

PRs welcome β€” see CONTRIBUTING.md and our Code of Conduct. The core is test-covered (cargo test -p pear-core); please keep it that way.

License

MIT Β© pear contributors

About

Terminal-native PR review control center. PRs as tabs, real terminals, resumable AI review sessions.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages

AltStyle γ«γ‚ˆγ£γ¦ε€‰ζ›γ•γ‚ŒγŸγƒšγƒΌγ‚Έ (->γ‚ͺγƒͺγ‚ΈγƒŠγƒ«) /