Organize your GitHub repositories into folders and subfolders β right on your profile page and in a Chrome side panel.
GitHub shows all your repositories in one long list. Once you have dozens of them (school projects, work, experiments, forksβ¦) things get hard to find. This extension adds a folders panel to your repository list where you drag each repository to the right place. There's nothing to configure: it uses the account you're signed in with on github.com, and your folders sync across computers through your Chrome profile.
- Features
- Installation
- Usage
- Accounts
- Profile README
- Syncing across computers
- Backup (export / import)
- Privacy and permissions
- Troubleshooting
- Project structure
On your repositories page (github.com/<your-account>?tab=repositories)
- π A folders and subfolders panel above the repository list.
- π±οΈ Drag and drop repositories from the list (including Find a repositoryβ¦ search results) into folders, and folders into other folders.
- π¨ A color per folder, a bar with the languages used and when it was last updated.
- π Configurable columns: description, language, contributors, last year's activity, stars, forks, issues, license, topics, size, websiteβ¦
- π Search inside your folders.
- π A Sync button that reads every page of the list, not just the first.
- π€ An Unsorted collaborations section with repositories from other people or organizations you contribute to.
- π Generates a section for your profile README listing your folders, ready to copy.
In the side panel (click the extension icon)
- The same folders, available on any page, with public and private repositories.
- The repository open in the current tab is highlighted so you can file it right away.
- Search, create, rename and color folders, plus a "Move toβ¦" menu as an alternative to dragging.
- Detects the signed-in GitHub account and switches folders when you switch accounts.
- βοΈ Folders sync with your Chrome Google account: on another computer they show up already organized.
- Export and import folders as JSON.
- Light and dark themes, matching GitHub.
Both views share the same data: a change in one shows up in the other right away.
The extension isn't on the Chrome Web Store yet; you install it from source (takes under a minute).
- Get the code
- Download github-repo-folders-vX.Y.Z.zip from the latest release and unzip it, or
- clone it with Git:
git clone https://github.com/MCCProgrammer/Github-Chrome-Extension.git
- Open
chrome://extensionsin Chrome. - Turn on Developer mode (top-right corner).
- Click Load unpacked and pick the project folder (the one containing
manifest.json). - Pin the extension: puzzle icon π§© β π next to GitHub Repo Folders.
Works in Chrome 114+ and other Chromium browsers with side panel support (Edge, Brave, Arc, Operaβ¦).
cd Github-Chrome-Extension
git pullThen click β» on the extension in chrome://extensions and reload any open GitHub pages. Your folders are kept.
- While signed in to GitHub, open your profile β Repositories (
https://github.com/<your-account>?tab=repositories). The panel only appears on your own account's list, not on other people's profiles. - A Folders panel appears above the list. Click New folder and type a name (Enter to confirm).
- Drag a repository from the list into the folder, or use the Folder button next to each repository's name.
- Repositories already in a folder are hidden from the list below, so what's left is what still needs sorting.
| Action | How |
|---|---|
| Create a subfolder | π+ button in the folder header |
| Nest a folder inside another | Drag a folder's header into another folder |
| Move a folder back to the top | Drag it to an empty area of the panel |
| Rename | Double-click the name, or the β button |
| Change color | Click the folder icon |
| Take a repository out of a folder | β― menu β Remove from folder, or drag it out |
| Delete a folder | π button β contents move up to the parent folder; nothing is deleted on GitHub |
| Choose what each row shows | Columns button |
| Load every repository | Sync button (runs automatically on the first visit) |
GitHub's Find a repository⦠search keeps working: search results can be dragged into folders too.
- Click the extension icon in Chrome's toolbar to open the side panel.
- The signed-in account is detected automatically and your repositories (including private ones) are loaded. If you're signed out, a Sign in button appears.
- Drag repositories between folders, or use each row's β― menu.
- As you browse GitHub, the repository you have open is highlighted in yellow so you can file it.
There's no username or token to set up. The extension reads which account is signed in on github.com and uses that session to read your repository lists β which is how private repositories show up too.
- Each account has its own folders. If you switch accounts on GitHub (avatar menu β Switch account), the side panel switches to that account's folders. Switch back and the previous folders are still there.
- The in-page panel only appears on your account's repository list. Other people's profiles look exactly as usual.
- β Account in the side panel shows which account was detected.
GitHub shows the README of the special <your-account>/<your-account> repository on your profile. The extension can generate a section listing your folders and projects:
- On your repositories page, click README (only shown when you have folders).
- Choose the columns and whether to include private repositories. The preview looks exactly as GitHub will render it.
- Click Copy Markdown and paste it into
README.mdof<your-account>/<your-account>(the Open README repository button takes you there).
The section sits between <!-- REPO-FOLDERS:START --> and <!-- REPO-FOLDERS:END -->. To update it later, replace just that block.
Folders are stored in chrome.storage.sync, which follows the Google account signed in to Chrome. On another computer you just need to:
- Be signed in to Chrome with the same Google account, with Extensions sync turned on (
chrome://settings/syncSetupβ Manage what you sync); - Install the extension (see Installation);
- Sign in to GitHub with the same account.
Your folders show up already organized, and every change reaches your other computers within seconds. The repository list itself is re-read from GitHub on each computer.
manifest.jsoncontains akeythat pins the extension ID (oohheekikjbgehgidbclgfjdaneebeaa). That's what lets Chrome recognize it as the same extension on different computers, even when loaded from source. Don't remove it.
Chrome sync allows up to 100 KB per extension, enough for hundreds of folders and thousands of repositories. If that limit is ever exceeded, folders keep being saved on the computer and simply stop syncing.
To keep a backup or move folders manually:
- β Account β Export folders downloads
github-repo-folders.json(the current account's folders); - β Account β Import folders loads that file in another browser.
β οΈ If you remove the extension and aren't using Chrome sync, your folders are deleted. Export them first.
No servers, no analytics, no tracking. It never asks for or stores passwords or tokens. The only network requests go to github.com (with the session you already have in the browser) and to the public api.github.com API.
| Permission | Why |
|---|---|
storage |
Store folders (synced with your Chrome Google account) and each account's repository cache |
sidePanel |
Show the side panel when you click the icon |
tabs |
Know which repository is open in the current tab, to highlight it |
https://github.com/* |
Detect the signed-in account and read repository lists (including private ones) |
https://api.github.com/* |
Extra data for public repositories (created date, sizeβ¦) and the README preview |
Script on https://github.com/* |
Draw the folders panel on the repositories page |
The panel doesn't appear on my profile
Make sure you're on the Repositories tab of your own account (?tab=repositories) and signed in. The panel doesn't appear on other people's profiles. If you just installed or updated the extension, reload the page.
Some repositories are missing
Click Sync in the in-page panel. Sync reads every page of the list, not just the first.
The side panel shows the wrong account
The panel re-checks the account every time it opens. If you switched accounts in another tab, close and reopen the panel, or reload a GitHub page.
Collaborations don't show up
Collaborations are read from github.com/settings/repositories with your session. Click Sync (on the page) or β» (in the side panel) to refresh them.
βββ manifest.json # Extension configuration (Manifest V3)
βββ background.js # Service worker: public GitHub API and opening the side panel
βββ github-session.js # Signed-in account, per-account storage and sync, reading GitHub pages
βββ content.js # Folders panel on github.com/<user>?tab=repositories
βββ content.css # β in-page panel styles
βββ folders-core.js # Folder tree logic (shared by both views)
βββ readme.js # Profile README section generator
βββ sidepanel.html # Side panel
βββ sidepanel.js
βββ sidepanel.css
βββ icons/ # Icons (icon.svg is the source)
βββ docs/ # Images for this README
No dependencies and no build step: plain JavaScript loaded directly by Chrome. To develop, edit the files, click β» in chrome://extensions and reload the GitHub page.
Suggestions and pull requests are welcome. Open an issue to report a bug or propose an idea, or write to contact@mccprogrammer.com.
MIT Β© MCCarmo