Awesome
<img src="source/icon.png" width="45" align="left"> Refined GitHub
Browser extension that simplifies the GitHub interface and adds useful features
We use GitHub a lot and notice many annoyances we'd like to fix. So here be dragons.
Our hope is that GitHub will notice and implement some of these much-needed improvements. So if you like any of these improvements, please open a discussion on GitHub feedback or contact GitHub support about doing it.
GitHub Enterprise is also supported: How to enable it. <!-- icon.png renders best -->
The GITHUB and REFINED GITHUB trademarks are owned by GitHub, Inc. and used under license.
Install
<img src="https://raw.githubusercontent.com/alrra/browser-logos/90fdf03c/src/chrome/chrome.svg" width="48" alt="Chrome" valign="middle"> <img valign="middle" src="https://img.shields.io/chrome-web-store/v/hlepfoohegkhhmjieoechaddaejaokhf.svg?label=%20"> and other Chromium browsers
<img src="https://raw.githubusercontent.com/alrra/browser-logos/90fdf03c/src/firefox/firefox.svg" width="48" alt="Firefox" valign="middle"> <img valign="middle" src="https://img.shields.io/amo/v/refined-github-.svg?label=%20"> including Firefox Android
<img src="https://raw.githubusercontent.com/alrra/browser-logos/90fdf03c/src/safari/safari_128x128.png" width="48" alt="Safari" valign="middle"> <img valign="middle" src="https://img.shields.io/itunes/v/1519867270.svg?label=%20"> on Mac, iOS and iPadOS
<img src="https://raw.githubusercontent.com/iamcal/emoji-data/08ec822c38e0b7a6fea0b92a9c42e02b6ba24a84/img-apple-160/1f99a.png" width="48" valign="middle"> If you love Refined GitHub, consider sponsoring or hiring the maintainer @fregante
<div align="center"> <table><tr><td width="550"><div align="center"> <p><sup><a href="https://github.com/sponsors/fregante">@fregante</a>’s open source work is supported by the community.<br>Special thanks to:</sup></p> <p><a href="http://prisma.io/"> <img src="https://user-images.githubusercontent.com/1402241/205429539-4549ea71-f26c-432a-aaef-db430c435718.svg" width="250" alt="Prisma.io"> <br><sup>Next-generation Node.js and TypeScript ORM with an intuitive data model, automated migrations, type-safety & auto-completion.</sup> </a></p> </table> <table><tr><td width="550"> <div align="center"> <p> <sup> Sindre’s open source work is supported by the community.<br>Special thanks to: </sup> </p> <br> <a href="https://workos.com/?utm_campaign=github_repo&utm_medium=referral&utm_content=refined-github&utm_source=github"> <div> <img src="https://sindresorhus.com/assets/thanks/workos-logo-white-bg.svg" width="210" alt="WorkOS"> </div> <b>Your app, enterprise-ready.</b> <div> <sub>Start selling to enterprise customers with just a few lines of code. Add Single Sign-On (and more) in minutes instead of months.</sup> </div> </a> </div> </table> </div>Highlights 🔥
<table> <tr> <th width="50%"> <p><a title="show-whitespace"></a> Makes whitespace characters visible <p><img src="https://user-images.githubusercontent.com/1402241/61187598-f9118380-a6a5-11e9-985a-990a7f798805.png"> <th width="50%"> <p><a title="resolve-conflicts"></a> Adds one-click merge conflict fixers <p><img src="https://user-images.githubusercontent.com/1402241/54978791-45906080-4fdc-11e9-8fe1-45374f8ff636.png"> <tr> <th width="50%"> <p><a title="pr-base-commit"></a> Shows how far behind a PR head branch is + tells you its base commit <p><img src="https://user-images.githubusercontent.com/1402241/234492651-b54bf9ba-c218-4a30-bed4-f85a7f037297.png"> <th width="50%"> <p><a title="conversation-activity-filter"></a> Lets you hide every event except comments or unresolved comments in issues and PRs <p><img src="https://github-production-user-asset-6210df.s3.amazonaws.com/83146190/252116522-053bce84-5c55-477b-8cc2-42a48104fb02.png"> <tr> <th width="50%"> <p><a title="status-subscription"></a> Lets you subscribe to opening/closing events of issues in one click <p><img src="https://github-production-user-asset-6210df.s3.amazonaws.com/1402241/238186901-cbc98b51-d173-40c6-b21e-5f0bae3d800c.png"> <th width="50%"> <p><a title="default-branch-button"></a> Adds a link to the default branch on directory listings and files <p><img src="https://github-production-user-asset-6210df.s3.amazonaws.com/83146190/252176294-9130783c-51aa-4df9-9c35-9b87c179199a.png"> <tr> <th width="50%"> <p><a title="restore-file"></a> Adds a button to discard all the changes to a file in a PR <p><img src="https://user-images.githubusercontent.com/1402241/236630610-e11a64f6-5e70-4353-89b8-39aae830dd16.gif"> <th width="50%"> <p><a title="select-notifications"></a> Select notifications by type and status <p><img src="https://user-images.githubusercontent.com/83146190/252175851-e0826d3b-1990-4bff-ba09-71892463818e.gif"> </table>Repositories
<!-- Refer to style guide in the wiki. Keep this message between sections. https://github.com/refined-github/refined-github/wiki/Contributing#metadata-guidelines -->- 🔥 Adds a build/CI status icon next to the repo’s name.
- Adds useful links to the repository navigation dropdown
- Adds a link to swap branches in the branch compare view.
- Displays the age of the repository in the sidebar.
- In your forked repos, shows number of your open PRs to the original repo.
- Makes some buttons on repository lists more compact to make room for other features.
- Automatically disables projects and wikis when creating a repository.
- Makes sidebars sticky in repositories, issues, and PRs, if they fit the viewport.
- Adds a link to visit the user’s github.io website from its repo.
- In the workflows sidebar, shows an indicator that a workflow can be triggered manually, and its next scheduled time if relevant.
- Simplifies the deletion of repositories. Adds "Delete fork" button on 0-star repos. Enables <kbd>shift</kbd> <kbd>alt</kbd> clicks to delete repos in 2 clicks.
- Helps you find forks on archived repos.
- Moves the "Security" and "Insights" to the repository navigation dropdown. Also moves the "Projects", "Actions" and "Wiki" tabs if they're empty/unused.
- Adds the profile picture to the header of public repositories.
- Adds a link to create issues from anywhere in a repository.
- Shows a small avatar next to the username in issue/PR lists and mentions.
- 🔥 Tells you whether you're looking at the latest version of a repository, or if there are any unreleased commits.
- 🔥 Adds a link back to the PR that ran the workflow.
- Makes the tabs more compact on mobile so more of them can be seen.
- Shows whether a repo is a fork and adds the number of stars to its header.
- When navigating a repo's file on a specific tag, it adds a link to see the release/tag itself.
File management
- Adds a button to download entire folders, via https://download-directory.github.io.
- Adds a button to edit files from the repo file list.
- Enables the File Finder keyboard shortcut (<kbd>t</kbd>) on entire repository.
- Shows the associated PRs on branches for forked repositories.
- Adds a link to preview HTML files.
- Highlights the most-recently-modified items in file lists.
- Lets you see the previous version of a file in one click.
Code
- Linkifies issue/PR references and URLs in code and issue/PR titles.
- Enhances the <kbd>y</kbd> hotkey to also copy the permalink.
- Linkifies symbolic links files.
- Alerts you if the current file is altered by an open PR.
- Reduces tabs’ size to 4 spaces instead of 8 where GitHub doesn't follow the user’s preferences.
- Adds a keyboard shortcut to deselect the current line: <kbd>esc</kbd>.
- Shows Markdown front matter as vertical table.
- On branch commit lists, shows the PR that touches the current branch.
Writing comments
- 🔥 Enables <kbd>tab</kbd> and <kbd>shift</kbd> <kbd>tab</kbd> for indentation in comment fields.
- Adds a button to insert collapsible content (via
<details>
). - 🔥 Auto-resizes comment fields to fit their content and no longer show scroll bars.
- Lets you edit any comment with one click instead of having to open a dropdown.
- Wraps selected text when pressing one of Markdown symbols instead of replacing it:
[
`
'
"
*
~
_
- Hides unnecessary comment field tooltips and toolbar items (each one has a keyboard shortcut.)
- Adds a button to
@mention
a user in issues and PRs. - Adds a button in the text editor to quickly insert a simplified HTML table.
- Notifies the user of unfinished comments in hidden tabs.
- Adds a button to delete review comments in one click when editing them.
- Disables the <kbd>enter</kbd>-to-submit shortcut in some commit/PR/issue title fields to avoid accidental submissions. Use <kbd>ctrl</kbd> <kbd>enter</kbd> instead.
Reading comments
- 🔥 Adds reaction avatars showing who reacted to a comment.
- Embeds short gists when linked in comments on their own lines.
- Adds links to browse the repository and linked files at the time of each comment.
- Adds the real name of users by their usernames.
- Shortens URLs and repo URLs to readable references like "_user/repo/.file@
d71718d
". - 🔥 Previews hidden comments inline.
- 🔥 Highlights the most useful comment in issues.
- Hides reaction comments ("+1", "👍", …) (except the maintainers’) but they can still be shown.
- Limits the height of tall code blocks and quotes.
- Simplifies the UI to hide comments.
- Makes the "comment" icon in issue lists link to the latest comment of the issue.
- On long conversations where GitHub hides comments under a "N hidden items. Load more...", alt-clicking it will load up to 200 comments at once instead of 60.
- Adds shortcuts to issues, PRs conversations, and PR file lists: <kbd>j</kbd> focuses the comment/file below; <kbd>k</kbd> focuses the comment/file above.
- Informs you that there are hidden comments in the header of long issues. Also scrolls down to the hidden comments when pressing Cmd+F or Ctrl+F.
Conversations
- Lets you open all visible issues/PRs at once.
- Makes the issue/PR list’s filters toolbar sticky.
- Highlights issues/PRs opened by you or the current repo’s collaborators.
- In issue/PR lists, aligns the labels to the left, below each title.
- 🔥 Changes the default sort order of issues/PRs to
Recently updated
. - Adds
Everything you’re involved in
andEverything you subscribed to
filters in the search box dropdown. - Adds filters for issues/PRs in your repos and commented on by you in the global issue/PR search.
- 🔥 Hides empty sections (or just their "empty" label) in the issue/PR sidebar.
- Hides
Projects
andMilestones
filters in issue/PR lists if they are empty. - Adds a shortcut to toggle all similar items (minimized comments, deferred diffs, etc) at once: <kbd>alt</kbd> <kbd>click</kbd> on each button or checkbox.
- Lets you toggle between is:open/is:closed/is:merged filters in searches.
- Adds a "Bugs" tab to repos, if there are any open issues with the "bug" label.
- Replaces the "opened" time with the "updated" time on pinned issues.
- Changes the layout of pinned issues from side-by-side to a standard list.
- Adds one-click buttons to remove labels in issues/PRs.
- Removes duplicate information in the header of issues and PRs ("User wants to merge X commits from Y into Z")
- Dims commits and PRs by bots to reduce noise.
- Adds a shortcut to cancel editing a issue/PR title: <kbd>esc</kbd>.
- Hides the update time of issues/PRs in lists when it matches the open/closed/merged time.
- Links the "Contributor" and "Member" labels on comments to the author’s commits on the repo.
- Adds a link to jump to the latest close event of a issue/PR.
- Lets you "close issue as unplanned" in one click instead of three.
- Show a label on locked issues and PRs.
Viewing pull requests
- Adds a link to the non-PR commit when visiting a PR commit.
- Adds Checks and Draft PR dropdown filters in PR lists.
- Shows color-coded review counts in PR lists.
- Shows the base branch in PR lists if it’s not the default branch.
- Hides inactive deployments in PRs.
- Adds duplicate commit navigation buttons at the bottom of the
Commits
tab page. - Adds comment indicators when comments are hidden in PR review.
- Shows which PRs have conflicts in PR lists.
- Adds diff stats on PR commits.
- Adds a line-through to the deleted branches in PRs.
- Mark/unmark multiple files as “Viewed” in the PR Files tab. Click on the first checkbox you want to mark/unmark and then
shift
-click another one; all the files between the two checkboxes will be marked/unmarked as “Viewed”. - 🔥 Shows the first Git tag a merged PR was included in or suggests creating a release if not yet released.
- Jumps to first non-viewed file in a PR when clicking on the progress bar.
- Adds a link to jump to the latest changed requested comment.
- Adds a link to open the latest deployment from the header of a PR.
- Always uses unified diffs on files where split diffs aren’t useful.
- Makes it easier to distinguish draft PR in lists.
Editing pull requests
- 🔥 Uses the PR’s title as the default squash commit title and updates the PR’s title to match the commit title, if changed.
- Adds an "Update branch" button to every PR. GitHub has the same feature, but it must be manually configured with protected branches.
- Simplifies the PR review form: Approve or reject reviews faster with one-click review-type buttons.
- Adds keyboard shortcuts to cycle through PR tabs: <kbd>g</kbd> <kbd>←</kbd> and <kbd>g</kbd> <kbd>→</kbd>, or <kbd>g</kbd> <kbd>1</kbd>, <kbd>g</kbd> <kbd>2</kbd>, <kbd>g</kbd> <kbd>3</kbd>, and <kbd>g</kbd> <kbd>4</kbd>.
- Automatically deletes the branch right after merging a PR, if possible. Common branch names known to be long-lived are excluded (
develop
,release/*
, etc) - Lets you create draft PRs and public gists in one click.
- Clears the PR merge commit message of clutter, leaving only deduplicated co-authors.
- Adds quick-review buttons to the PR sidebar, automatically focuses the review textarea, and adds a keyboard shortcut to open the review popup: <kbd>v</kbd>.
- Uses the first commit for a new PR’s title and description.
Commits
- Adds links to
.patch
and.diff
files in commits. - Adds links to view the raw version, the blame, and the history of files in PRs and commits.
- Adds one-click buttons to change diff style and to ignore the whitespace and a keyboard shortcut to ignore the whitespace: <kbd>d</kbd> <kbd>w</kbd>.
- Widens the
Expand diff
button to be clickable across the screen. - Hides diff signs since diffs are color coded already.
- Suggests limiting commit and PR titles to 72 characters.
- Displays the corresponding tags next to commits.
- Marks merge commits in commit lists.
- When exploring blames,
Alt
-clicking the “Reblame” buttons will extract the associated PR’s commits first, instead of treating the commit as a single change. - Indicates with an icon whether files in commits and PRs are being added or removed.
- Enables toggling file diffs by clicking on their header bar.
- Preserves current branch and path when viewing all commits by an author.
- Enables toggling commit messages by clicking on the commit box.
- Linkifies the "X files changed" text on compare pages to allow jumping to the diff.
- Shows conventional commit types as labels before the commit message.
Tags and releases
- Adds a download count next to release assets.
- Adds a
Releases
tab and a keyboard shortcut: <kbd>g</kbd> <kbd>r</kbd>. - Adds a tags dropdown/search on tag/release pages.
- Adds a keyboard shortcut to create a new release while on the Releases page: <kbd>c</kbd>.
- 🔥 Adds a link to changes since last tag/release for each tag/release.
- Adds a button to convert a release to draft.
- Adds a button to view the changelog file from the releases page.
Profiles
- On profiles, it shows whether the user follows you.
- Adds a link to the user’s public gists on their profile.
- Marks private organizations on your own profile.
- Adds a keyboard shortcut to visit your own profile: <kbd>g</kbd> <kbd>m</kbd>.
- Adds a link to the user’s most starred repositories.
- Filters out forks and archived repos from profiles by default, leaving only the sources. (but they can still be shown.)
- Linkifies the user location in their hovercard and profile page.
- Shows the user local time in their hovercard (based on their last commit).
- Adds a link to the issues and pulls on the user profile repository tab and global search.
Notifications
- Adds a button to open all your unread notifications at once.
- 🔥 Adds a global shortcut to open all your unread notifications at once: <kbd>cmd</kbd> <kbd>u</kbd> or <kbd>ctrl</kbd> <kbd>u</kbd>
- Adds a shortcut to select all visible notifications: <kbd>a</kbd>.
- Stops redirecting to notification inbox from notification bar actions while holding <kbd>Alt</kbd>.
- Adds a link to the last page of notifications.
- Points PR notifications to the Conversation tabs instead of the commits page, which may be a 404.
- Make the notifications action bar sticky.
Global
- 🔥 Adds possible related pages and alternatives on 404 pages.
- Adds a keyboard shortcut to open selection in new tab when navigating via <kbd>j</kbd> and <kbd>k</kbd>: <kbd>shift</kbd> <kbd>o</kbd>.
- Automatically closes dropdown menus when they’re no longer visible.
- GitHub renders
`text in backticks`
in some places but not others; this features fills in where forgotten. - Adds shortcuts to navigate through pages with pagination: <kbd>←</kbd> and <kbd>→</kbd>.
- Lets you see how others are using the current Action in the Marketplace.
- Shows all of Refined GitHub’s new keyboard shortcuts in the help modal (<kbd>?</kbd> hotkey).
Netiquette
- Adds unobtrusive netiquette reminders (old closed issues, highly-active issues, draft PRs, …).
- Warns you when creating a PR from the default branch, as it’s an anti-pattern.
- Warns you when unchecking
Allow edits from maintainers
, as it’s maintainer-hostile.
Fixes for GitHub shortcomings
- Removes the file hover effect in the repo file browser.
- Removes unnecessary or redundant information from the repository sidebar.
- Linkifies branch references in "Quick PR" pages.
- Removes the autocomplete on search fields.
- Adds a menu item to embed a gist via
<iframe>
. - Points the "View file" on PRs to the branch instead of the commit, so the Edit/Delete buttons will be enabled on the "View file" page.
- Retries downloading images that failed downloading due to GitHub limited proxying.
- Makes some dropdowns 1-click instead of unnecessarily 2-click.
- Suggests fixing links that are wrongly shortened by GitHub.
- Linkifies the username in the edit history popup.
- Avoids creating duplicate PRs when mistakenly clicking "Create pull request" more than once.
- Moves the "Convert PR to Draft" button to the mergeability box and adds visual feedback to its confirm button.
- Prevents the merge panel from automatically opening on every page load after it’s been opened once.
- Adds keyboard shortcuts to select items in command palette using <kbd>ctrl</kbd> <kbd>n</kbd> and <kbd>ctrl</kbd> <kbd>p</kbd> (macOS only).
- While writing/editing comments, open the preview links in new tab instead of navigating away from the page.
- Redirect to repo issue list when the search doesn‘t include
is:pr
. - Drops redundant "readme-ov-file" parameter from repo URLs.
- Closes checks list when clicking outside of modal.
- Linkifies the line numbers where GitHub forgot to add links.
- Scrolls the file tree to the current file.
Previously part of Refined GitHub
GitHub took inspiration from Refined GitHub and natively implemented dozens of its features, 🎉 so they've been removed from this extension. You can also see all the past features of Refined GitHub in a single list.
Customization
Most features can be disabled if they are JavaScript-based and you can override our CSS with your own in the extension options.
We're happy to receive suggestions and contributions, but be aware this is a highly opinionated project. There's a high bar for adding features. Users will always disagree with something. That being said, we're open to discussing things.