Cmd+K to search and open your GitHub repositories from any page. Caches repos locally for instant results.
- Login via Personal Access Token (PAT)
- Fetches and caches all your repositories (respects private if token has scope)
- Cmd+K / Ctrl+K to toggle palette
- Type to filter, arrow up/down to navigate, Enter to open
- Remembers recent repositories and surfaces them first
Chrome extensions cannot safely store a GitHub OAuth client secret, and GitHub OAuth flows require the secret for token exchange. To avoid needing a backend server, this extension uses a user-provided PAT stored locally via chrome.storage.local.
You can switch to a backend + OAuth later by replacing the token handling in background.js.
- Go to GitHub Settings → Developer settings → Personal access tokens → Fine-grained tokens
- Create a token with at least:
- For public repos only: no extra scopes required beyond default repo read
- For private repos: grant repository access (read) to the desired resources
- Copy the token (
ghp_...).
- Open chrome://extensions
- Enable "Developer mode"
- Click "Load unpacked" and select this folder
- On any page, press Cmd+K (macOS) or Ctrl+K (Windows/Linux) to toggle the palette
- If prompted, paste your GitHub PAT and click "Save Token"
- The extension will fetch and cache your repos (may take a moment for large accounts)
- Start typing to filter; use arrow keys to navigate; press Enter to open the selected repo
- Manifest V3 service worker:
background.js - Content UI:
contentScript.js+contentStyles.css - Storage keys and cache TTL are defined at the top of
background.js - Recent repos are tracked by
full_nameand prioritized in results
storagefor token and repo cachetabs,activeTab,scriptingto inject the palette and open tabs- Host permissions for
api.github.comandgithub.comto fetch/open
If you add a small backend, you can implement the GitHub Web Application Flow safely:
- Use
chrome.identity.launchWebAuthFlowfor user login - Exchange the authorization code for a token on your backend (keeps client secret server-side)
- Store/access the token via the extension as in the PAT flow
- If Cmd+K is taken by a site, change the shortcut in chrome://extensions → Keyboard shortcuts
- Clear token: toggle the palette, then remove and re-add the extension or implement a small UI to call
clearToken - Large orgs may need additional read scopes to list private repos
