Every documentation lookup is 5 steps:
Select text → Copy → Open new tab → Paste into search → Lose your place
You do this ~30 times a day. Scope collapses it to 2: highlight → right-click.
| Source | Mode | Covers |
|---|---|---|
| DevDocs | Inline (default) | JS, CSS, React, Node, Go, Ruby, and more |
| Python Docs | Inline | Python 3 standard library |
| MDN Web Docs | New tab | HTML, CSS, Web APIs |
| Can I Use | New tab | Browser compatibility |
| cppreference | New tab | C and C++ standard library |
Switch source at any time from the sidebar dropdown or toolbar popup — preference is saved per-device.
- Clone or download this repo
- Open
chrome://extensions - Enable Developer mode (top-right toggle)
- Click Load unpacked → select the
Scopefolder
Requires Chrome 114+ for the
chrome.sidePanelAPI.
chrome.sidePanel.open() must be called synchronously inside the user-gesture callback — any await before it causes Chrome to throw "may only be called in response to a user gesture":
chrome.contextMenus.onClicked.addListener((info, tab) => {
chrome.sidePanel.open({ tabId: tab.id }); // sync — no awaits before this
chrome.storage.sync.get({ preferredSource: 'devdocs' }, ({ preferredSource }) => {
chrome.storage.session.set({ scopeLookup: { ... } });
});
});The sidepanel picks up the data via chrome.storage.onChanged and renders instantly.