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.
The GITHUB and REFINED GITHUB trademarks are owned by GitHub, Inc. and used under license.
Install
[link-chrome]: https://chrome.google.com/webstore/detail/refined-github/hlepfoohegkhhmjieoechaddaejaokhf 'Version published on Chrome Web Store' [link-firefox]: https://addons.mozilla.org/firefox/addon/refined-github-/ 'Version published on Mozilla Add-ons' [link-safari]: https://apps.apple.com/app/id1519867270 'Version published on the Mac App Store'
[][link-chrome] [
][link-chrome] and other Chromium browsers
[][link-firefox] [
][link-firefox] including Firefox Android
[
][link-safari] [][link-safari] on Mac, iOS and iPadOS
_If you love Refined GitHub, consider sponsoring or hiring the maintainer @fregante_
@fregante’s open source work is supported by the community.
|
Highlights 🔥
Repositories
- [](# "repo-header-info") 🔥 Adds stars, CI, fork and private status to the repository header.
- [](# "swap-branches-on-compare") Adds a link to swap branches in the branch compare view.
- [](# "repo-age") Displays the age of the repository in the sidebar.
- [](# "show-open-prs-of-forks") In your forked repos, shows number of your open PRs to the original repo.
- [](# "clean-repo-filelist-actions") Makes some buttons on repository lists more compact to make room for other features.
- [](# "new-repo-disable-projects-and-wikis") Automatically disables projects and wikis when creating a repository.
- [](# "sticky-sidebar") Makes sidebars sticky in repositories, issues, and PRs, if they fit the viewport.
- [](# "link-to-github-io") Adds a link to visit the user’s github.io website from its repo.
- [](# "github-actions-indicators") In the workflows sidebar, shows an indicator that a workflow can be triggered manually, and its next scheduled time if relevant.
- [](# "quick-repo-deletion") Simplifies the deletion of repositories. Adds "Delete fork" button on 0-star repos. Enables shift alt clicks to delete repos in 2 clicks.
- [](# "delete-branch") Adds a button to delete the current branch on the branch page.
- [](# "pr-from-branch") Lets you open a PR in one click on the branch page.
- [](# "archive-forks-link") Helps you find forks on archived repos.
- [](# "repo-avatars") Adds the profile picture to the header of public repositories.
- [](# "small-user-avatars") Shows a small avatar next to the username in issue/PR lists and mentions.
- [](# "action-pr-link") 🔥 Adds a link back to the PR that ran the workflow.
- [](# "mobile-tabs") Makes the tabs more compact on mobile so more of them can be seen (depends on
extensible-navfeature). - [](# "visit-tag") When navigating a repo's file on a specific tag, it adds a link to see the release/tag itself.
- [](# "actions-run-removal") Lets you cancel or delete workflow runs faster from the workflow list.
- [](# "rerun-workflow") Unwraps the "Re-run jobs" dropdown into individual buttons and adds a keyboard shortcut to re-run failed jobs: r f.
- [](# "extend-repo-tabs") Collapses repository tabs if rarely used (Insights, Security) or when empty (Projects, Wiki, Actions). It also adds counters to Projects and Wiki.
- [](# "subscribe-releases") Adds a button to subscribe to repository releases in one click.
File management
- [](# "download-folder-button") Adds a button to download entire folders, via https://download-directory.github.io.
- [](# "quick-file-edit") Adds a button to edit files from the repo file list.
- [](# "repo-wide-file-finder") Enables the File Finder keyboard shortcut (t) on entire repository.
- [](# "show-associated-branch-prs-on-fork") Shows the associated PRs on branches for forked repositories.
- [](# "html-preview-link") Adds a link to preview HTML files.
- [](# "file-age-color") Highlights the most-recently-modified items in file lists.
- [](# "previous-version") Lets you see the previous version of a file in one click.
- [](# "absolute-time") Shows absolute dates for commits older than 6 months on repository file lists.
Code
- [](# "linkify-code") Linkifies issue/PR references and URLs in code.
- [](# "copy-on-y") Enhances the y hotkey to also copy the permalink.
- [](# "list-prs-for-file") Alerts you if the current file is altered by an open PR.
- [](# "refined-github.css") Reduces tabs’ size to 4 spaces instead of 8 where GitHub doesn't follow the user’s preferences.
- [](# "esc-to-deselect-line") Adds a keyboard shortcut to deselect the current line: esc.
- [](# "list-prs-for-branch") On branch commit lists, shows the PR that touches the current branch.
Writing comments
- [](# "tab-to-indent") 🔥 Enables tab and shift tab for indentation in comment fields.
- [](# "collapsible-content-button") Adds a button in the text editor to insert collapsible content (via
). - [](# "fit-textareas") 🔥 Auto-resizes comment fields to fit their content and no longer show scroll bars.
- [](# "quick-comment-edit") Lets you edit any comment with one click instead of having to open a dropdown.
- [](# "one-key-formatting") 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.)
- [](# "quick-mention") Adds a button to @mention
a user in issues and PRs. - [](# "table-input") Adds a button in the text editor to quickly insert a simplified HTML table.
- [](# "unfinished-comments") Notifies the user of unfinished comments in hidden tabs.
- [](# "quick-review-comment-deletion") Adds a button to delete review comments in one click when editing them.
- [](# "avoid-accidental-submissions") Disables the enter-to-submit shortcut in some commit/PR/issue title fields to avoid accidental submissions. Use ctrl enter instead.
- [](# "no-self-reference") Warns against self-reference links, helping you avoid mistakes.
Reading comments
- [](# "reactions-avatars") 🔥 Adds reaction avatars showing _who_ reacted to a comment.
- [](# "embed-gist-inline") Embeds short gists when linked in comments on their own lines.
- [](# "comments-time-machine-links") Adds links to browse the repository and linked files at the time of each comment.
- [](# "show-names") Adds the real name of users by their usernames.
- [](# "shorten-links") Shortens URLs and repo URLs to readable references like "_user/repo/.file@d71718d
". - [](# "preview-hidden-comments") 🔥 Previews hidden comments inline.
- [](# "hide-low-quality-comments") Hides reaction comments ("+1", "👍", …) (except the maintainers’) but they can still be shown.
- [](# "scrollable-areas") Limits the height of tall code blocks and quotes.
- [](# "quick-comment-hiding") Simplifies the UI to hide comments.
- [](# "open-issue-to-latest-comment") Makes the "comment" icon in issue lists link to the latest comment of the issue.
- [](# "expand-all-hidden-comments") 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.
- [](# "keyboard-navigation") Adds shortcuts to issues, PRs conversations, and PR file lists: j focuses the comment/file below; k focuses the comment/file above; x marks the file as viewed/unviewed.
- [](# "hidden-content") Informs you that there are hidden comments or files when pressing CmdF or CtrlF.
Conversations
- [](# "open-all-conversations") Lets you open all visible issues/PRs at once.
- [](# "sticky-conversation-list-toolbar") Makes the issue/PR list’s filters toolbar sticky.
- [](# "conversation-authors") Highlights issues/PRs opened by you or the current repo’s collaborators.
- [](# "align-issue-labels") In issue/PR lists, aligns the labels to the left, below each title.
- [](# "last-update-sort") 🔥 Changes the default sort order of issues/PRs to Recently updated
. - [](# "global-conversation-list-filters") Adds filters for PRs _in your repos_ and _commented on by you_ in the global PR search.
- [](# "clean-conversation-sidebar") 🔥 Hides empty sections (or just their "empty" label) in the issue/PR sidebar.
- [](# "clean-conversation-filters") Hides Projects
filter in issue/PR lists if it is empty. - [](# "toggle-everything-with-alt") Adds a shortcut to toggle all similar items (minimized comments, deferred diffs, etc) at once: alt click on each button or checkbox.
- [](# "extend-conversation-status-filters") Lets you toggle between open/closed/merged filters in searches.
- [](# "bugs-tab") Adds a "Bugs" tab to repos, if there are any open issues with the "bug" label (depends on extensible-nav
feature). - [](# "pinned-issues-update-time") Replaces the "opened" time with the "updated" time on pinned issues.
- [](# "mark-pinned") Marks pinned issues in the issues list so duplicate rows are immediately recognizable.
- [](# "mark-locked") Marks locked issues and PRs in lists in repositories.
- [](# "clean-pinned-issues") Changes the layout of pinned issues from side-by-side to a standard list.
- [](# "quick-label-removal") Adds one-click buttons to remove labels in issues/PRs.
- [](# "clean-conversation-headers") Removes duplicate information in the header of PRs ("User wants to merge X commits from Y into Z")
- [](# "dim-bots") Dims commits and PRs by bots to reduce noise.
- [](# "esc-to-cancel") Adds a shortcut to cancel editing a PR title: esc.
- [](# "no-duplicate-list-update-time") Hides the update time of issues/PRs in lists when it matches the open/closed/merged time.
- [](# "linkify-user-labels") Links the "Contributor", "Member" and "Collaborator" labels on comments and PRs to the author’s commits on the repo.
- [](# "jump-to-conversation-close-event") Adds a link to jump to the latest close event of a issue/PR.
- [](# "close-as-unplanned") Lets you "close issue as unplanned" in one click instead of three.
- [](# "locked-issue") Show a label on locked issues and PRs.
- [](# "easy-toggle-hidden-comments") Enables toggling hidden comments and resolved/outdated review threads by clicking on their header bar.
Viewing pull requests
- [](# "linkify-commit-sha") Adds a link to the non-PR commit when visiting a PR commit.
- [](# "pr-filters") Adds a Draft PR dropdown filter in PR lists.
- [](# "unclip-checks") Automatically shows all checks without scrolling when expanding the checks panel.
- [](# "pr-approvals-count") Shows color-coded review counts in PR lists.
- [](# "highlight-non-default-base-branch") Shows the base branch in PR lists if it’s not the default branch.
- [](# "hide-inactive-deployments") Hides inactive or failed deployments in PRs.
- [](# "previous-next-commit-buttons") Adds duplicate commit navigation buttons at the bottom of the Commits
tab page. - [](# "conflict-marker") Shows which PRs have conflicts in PR lists.
- [](# "pr-commit-lines-changed") Adds diff stats on PR commits.
- [](# "cross-deleted-pr-branches") Adds a line-through to the deleted branches in PRs.
- [](# "batch-mark-files-as-viewed") 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”. - [](# "closing-remarks") 🔥 Shows the first Git tag a merged PR was included in or suggests creating a release if not yet released.
- [](# "pr-jump-to-first-non-viewed-file") Jumps to first non-viewed file in a PR when clicking on the progress bar.
- [](# "view-last-pr-deployment") Adds a link to open the latest deployment to the PR header.
- [](# "no-unnecessary-split-diff-view") Always uses unified diffs on files where split diffs aren’t useful.
- [](# "emphasize-draft-pr-label") Makes it easier to distinguish draft PR in lists.
- [](# "clean-checks-list") Prioritizes failing and pending checks in the merge checks list, and untruncates long check names.
- [](# "mobile-tabs-pr") Makes the PR tabs smaller so they fit in the screen without scrolling.
- [](# "linkify-pr-review-state") Linkifies the PR review state labels ("Draft", "Changes requested", etc) in PR lists to filter by that state.
Editing pull requests
- [](# "sync-pr-commit-title") 🔥 Uses the PR’s title as the default squash commit title and updates the PR’s title to match the commit title, if changed.
- [](# "update-pr-from-base-branch") Adds an "Update branch | Rebase" button to every PR. GitHub has the same feature, but it must be manually configured for each repo.
- [](# "one-click-review-submission") Simplifies the PR review form: Approve or reject reviews faster with one-click review-type buttons.
- [](# "pull-request-hotkeys") Adds keyboard shortcuts to cycle through PR tabs: g ← and g →, or g 1, g 2, g 3, and g 4.
- [](# "pr-branch-auto-delete") Automatically deletes the branch right after merging a PR, if possible. Common branch names known to be long-lived are excluded (develop
,release/*, etc) - [](# "one-click-pr-or-gist") Lets you create draft PRs and public gists in one click.
- [](# "clear-pr-merge-commit-message") Clears the PR merge commit message of clutter, leaving only deduplicated co-authors.
- [](# "quick-review") Adds quick-review buttons to the PR sidebar, automatically focuses the review textarea, and adds a keyboard shortcut to open the review popup: v.
- [](# "pr-first-commit-title") Uses the first commit for a new PR’s title and description.
- [](# "quick-resolve-conflicts") Turns the "Resolve conflicts" dropdown into two plain buttons.
Commits
- [](# "patch-diff-links") Adds links to .patch
and.difffiles in commits. - [](# "more-file-links") Adds links to view the raw version, the blame, and the history of files in PRs and commits.
- [](# "one-click-diff-options") Adds "Hide whitespace" button to Compare pages and a keyboard shortcut to PRs and Compare pages: d w.
- [](# "extend-diff-expander") Widens the Expand diff
button to be clickable across the screen. - [](# "hide-diff-signs") Hides diff signs since diffs are color coded already.
- [](# "suggest-commit-title-limit") Suggests limiting commit and PR titles to 72 characters.
- [](# "tags-on-commits-list") Displays the corresponding tags next to commits.
- [](# "mark-merge-commits-in-list") Marks merge commits in commit lists.
- [](# "deep-reblame") 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. - [](# "new-or-deleted-file") Indicates with an icon whether files in commits and PRs are being added or removed.
- [](# "easy-toggle-files") Enables toggling file diffs by clicking on their header bar.
- [](# "same-branch-author-commits") Preserves current branch and path when viewing all commits by an author.
- [](# "easy-toggle-commit-messages") Enables toggling commit messages by clicking on the commit box.
- [](# "link-to-compare-diff") Linkifies the "X files changed" text on compare pages to allow jumping to the diff.
- [](# "conventional-commits") Shows conventional commit types as labels before the commit message.
Tags and releases
- [](# "release-download-count") Adds a download count next to release assets.
- [](# "releases-tab") Adds a Releases
tab and a keyboard shortcut: g r (depends onextensible-navfeature). - [](# "releases-dropdown") Adds a tags dropdown/search on release pages.
- [](# "create-release-shortcut") Adds a keyboard shortcut to create a new release while on the Releases page: c.
- [](# "tag-changes-link") 🔥 Adds a link to changes since last tag/release for each tag/release.
- [](# "convert-release-to-draft") Adds a button to convert a release to draft.
- [](# "confirm-release") Adds a confirmation dialog when publishing a release, preventing accidental submissions.
- [](# "link-to-changelog-file") Adds a button to view the changelog file from the releases page.
Profiles
- [](# "user-profile-follower-badge") On profiles, it shows whether the user follows you.
- [](# "mark-private-orgs") Marks private organizations on your own profile.
- [](# "profile-hotkey") Adds a keyboard shortcut to visit your own profile: g m.
- [](# "show-user-top-repositories") Adds a link to the user’s most starred repositories.
- [](# "hide-user-forks") Filters out forks and archived repos from profiles by default, leaving only the sources. (but they can still be shown.)
- [](# "linkify-user-location") Linkifies the user location in their hovercard and profile page.
- [](# "conversation-links-on-repo-lists") Adds a link to the issues and pulls on the user profile repository tab and global search.
Notifications
- [](# "open-all-notifications") Adds a button to the notification page to open all your unread notifications at once.
- [](# "unread-anywhere") 🔥 Adds a button to the global header to open your unread notifications from any page.
- [](# "select-all-notifications-shortcut") Adds a shortcut to select all visible notifications: a.
- [](# "stop-redirecting-in-notification-bar") Stops redirecting to notification inbox from notification bar actions while holding Alt.
- [](# "pr-notification-link") Points PR notifications to the Conversation tabs instead of the commits page, which may be a 404.
- [](# "sticky-notifications-actions") Make the notifications action bar sticky.
- [](# "clean-notifications") Makes the notifications list more compact when grouped by repo.
- [](# "notifications-ui") Cleans up the Notifications page header, especially on mobile.
Global
- [](# "useful-not-found-page") 🔥 Adds possible related pages and alternatives on 404 pages.
- [](# "selection-in-new-tab") Adds a keyboard shortcut to open selection in new tab when navigating via j and k: shift o.
- [](# "close-out-of-view-modals") Automatically closes dropdown menus when they’re no longer visible.
- [](# "parse-backticks") GitHub renders
text in backticksin some places but not others; this features fills in where forgotten. - [](# "action-used-by-link") Lets you see how others are using the current Action in the Marketplace.
- [](# "improve-shortcut-help") Shows all of Refined GitHub’s new keyboard shortcuts in the help modal (? hotkey).
- [](# "clean-footer") Dims the site footer so it's less prominent.
- [](# "night-not-found") Adds dark mode to the global 404 page.
- [](# "monospace-textareas") Uses a monospace font in commit message, description, release body, and other fields that benefit from it.
Netiquette
- [](# "netiquette") Adds unobtrusive netiquette reminders (old closed issues, highly-active issues, draft PRs, …).
- [](# "warn-pr-from-master") Warns you when creating a PR from the default branch, as it’s an anti-pattern.
- [](# "warning-for-disallow-edits") Warns you when unchecking Allow edits from maintainers
, as it’s maintainer-hostile.
Fixes for GitHub shortcomings
- [](# "github-bugs") Applies various CSS fixes to GitHub's interface.
- [](# "hide-navigation-hover-highlight") Removes the file hover effect in the repo file browser.
- [](# "clean-repo-sidebar") Removes unnecessary or redundant information from the repository sidebar.
- [](# "linkify-branch-references") Linkifies branch references in "Quick PR" pages.
- [](# "actionable-pr-view-file") 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.
- [](# "reload-failed-proxied-images") Retries downloading images that failed downloading due to GitHub limited proxying.
- [](# "prevent-link-loss") Suggests fixing links that are wrongly shortened by GitHub.
- [](# "prevent-duplicate-pr-submission") Avoids creating duplicate PRs when mistakenly clicking "Create pull request" more than once.
- [](# "prevent-comment-loss") While writing/editing comments, open the preview links in new tab instead of navigating away from the page.
- [](# "fix-no-pr-search") Redirect to repo issue list when the search doesn‘t include is:pr`.
- [](# "clean-readme-url") Drops redundant "readme-ov-file" parameter from repo URLs.
- [](# "click-outside-modal") Closes checks list when clicking outside of modal.
- [](# "linkify-line-numbers") Linkifies the line numbers where GitHub forgot to add links.
- [](# "sidebar-focus-file") Scrolls the file tree to the current file.
- [](# "no-modals") Disable modals that reduce user-experience instead of enhancing it.
- [](# "same-page-links") Keeps links from opening in new tabs when they shouldn't. "Open in new tab" must be the user's choice, not the default behavior.
- [](# "linkify-text") Makes certain text clickable, like issue references in the issue title and discussion sidebar.
- [](# "new-milestone-button") Adds a 'New Milestone' button to the milestone page.
- [](# "mark-private-repos") Highlights private repositories in the repository list with a distinct color.
- [](# "tab-size") Reduces the default tab indent width from 8 to 4 characters in code views where GitHub doesn't follow the user's preferences.
- [](# "sticky-file-header") Makes the file header sticky when scrolling through code diffs.
- [](# "sticky-csv-header") Makes the first column of CSV/TSV file previews sticky while scrolling horizontally.
- [](# "reactions-popup") Improves the usability of the comment reactions popup by making it smaller.
- [](# "readable-title-change-events") Stacks the old and new titles in title change timeline events for better readability.
- [](# "cmd-enter") Fixes cmd enter to submit comments on closed PRs, which is broken.
- [](# "new-tab-links") Lets you open pseudo-links in a new tab with ctrl click or middle click.
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.