<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta
name="description"
content="ghr is a fast terminal workspace for GitHub pull requests, issues, notifications, conversations, checks, and diffs."
/>
<title>ghr - GitHub review, wired for the terminal</title>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<header class="topbar">
<a class="brand" href="#top" aria-label="ghr home">
<span class="brand-mark">g</span>
<span>ghr</span>
</a>
<nav aria-label="Primary">
<a href="#features">Features</a>
<a href="#shortcuts">Shortcuts</a>
<a href="https://github.com/chenyukang/ghr">GitHub</a>
</nav>
</header>
<main id="top">
<section class="hero">
<div class="hero-copy">
<p class="eyebrow">A terminal workspace for GitHub</p>
<h1>ghr</h1>
<p class="lede">
Pull requests, issues, notifications, conversations, checks, diffs,
and review actions in one snapshot-first terminal workspace.
</p>
<div class="hero-actions">
<a class="button primary" href="#install">Install</a>
<a class="button" href="#shortcuts">Browse shortcuts</a>
</div>
<div class="install-card" aria-label="Quick install" id="install">
<div class="install-terminal" aria-label="Install commands">
<div class="install-row">
<span class="install-label">macOS/Linux</span>
<code
><span>$</span> curl -fsSL
https://raw.githubusercontent.com/chenyukang/ghr/main/install.sh
| sh</code
>
</div>
<div class="install-row">
<span class="install-label">Windows</span>
<code
><span>PS></span> irm
https://raw.githubusercontent.com/chenyukang/ghr/main/install.ps1
| iex</code
>
</div>
<div class="install-row">
<span class="install-label">Cargo</span>
<code><span>$</span> cargo install ghr-cli</code>
</div>
</div>
<p>
Then run <code>ghr</code>. Press <kbd>:</kbd> inside ghr to
fuzzy-search commands. Release downloads show progress and are
verified before install.
</p>
</div>
</div>
<figure class="hero-shot">
<img
src="assets/screenshot.webp"
alt="ghr terminal dashboard showing GitHub pull requests and details"
/>
</figure>
</section>
<section class="feature-grid" id="features">
<article>
<p class="kicker">Cache first</p>
<h2>Instant startup, live refresh</h2>
<p>
ghr shows the local SQLite snapshot immediately, refreshes the
active view first, then quietly keeps other PR and issue sections
warm through the GitHub CLI.
</p>
</article>
<article>
<p class="kicker">Triage</p>
<h2>PRs, issues, notifications</h2>
<p>
Configurable sections, repo tabs, filters, result paging, ignored
items, recent item jumps, read/done/mute notification commands,
lazy linked PR/issue details, and clickable Markdown image
attachments keep the list signal clean.
</p>
</article>
<article>
<p class="kicker">Review</p>
<h2>Diffs without leaving the terminal</h2>
<p>
Open PR diffs, move by changed file, mark ranges, post inline
review comments, and submit reviews from the focused pane.
</p>
</article>
<article>
<p class="kicker">Workflow</p>
<h2>Actions where the context is</h2>
<p>
Comment, reply, edit, label, assign, merge, close, update branches,
rerun checks, request reviewers, and checkout local PR branches.
</p>
</article>
</section>
<section class="split-section">
<div>
<p class="eyebrow">Diff review</p>
<h2>Read, mark, comment, submit</h2>
<p>
The diff view keeps changed files and rendered hunks side by side.
Inline comments are shown in context, and pending review state stays
local until you submit it.
</p>
</div>
<figure class="panel-shot">
<img
src="assets/screenshot-diff.webp"
alt="ghr diff review mode showing changed files and a file diff"
/>
</figure>
</section>
<section class="docs-band" id="shortcuts">
<div class="section-heading">
<p class="eyebrow">Keyboard surface</p>
<h2>Every shortcut, searchable</h2>
<p>
Press <kbd>?</kbd> inside ghr for the live reference, or use
<kbd>:</kbd> to fuzzy-search and run commands from the TUI. Recently
run commands appear first.
</p>
</div>
<label class="shortcut-search">
<span>Filter shortcuts</span>
<input
id="shortcut-filter"
type="search"
placeholder="Try review, ignore, diff, project, comment..."
autocomplete="off"
/>
</label>
<div class="shortcut-table" id="shortcut-table"></div>
</section>
</main>
<footer class="site-footer">
<span>ghr is MIT licensed.</span>
<a href="https://crates.io/crates/ghr-cli">crates.io</a>
<a href="https://github.com/chenyukang/ghr">GitHub repository</a>
</footer>
<script src="script.js"></script>
</body>
</html>