📑 Table of Contents
- About
- How It Works
- Real-World Use Cases
- Features
- Permissions Used
- Screenshots
- Getting Started
- Usage
- Project Structure
- Loading Unpacked
- Building for Production
- Publishing
- Privacy Policy
- Contributing
- License
🧾 About
Tagline — One sentence describing what the extension does.
2–3 sentences: what problem it solves in the browser, who it's for, and what it replaces or improves.
Example:
Extension Name adds a persistent sidebar to any GitHub repository page that shows the full folder tree and lets you jump to any file with a keyboard shortcut — no more clicking through nested directories one folder at a time.
⚙️ How It Works
User clicks extension icon (or trigger condition)
│
▼
Background service worker activates
│
▼
Content script injected into active tab
│
▼
DOM manipulation / data extraction
│
▼
Result shown in popup UI or injected panel
- Trigger: Explain what activates the extension (icon click, page load, keyboard shortcut, context menu).
- Content Script: Describe what it reads from or writes to the current page.
- Background Worker: Explain any persistent logic, message passing, or API calls.
- Storage: Settings and state are persisted via
chrome.storage.sync
(syncs across devices) orchrome.storage.local
.
💼 Real-World Use Cases
- Developers: Describe a developer workflow this extension streamlines (e.g., faster GitHub navigation, quick console utilities, tab management).
- Researchers / Writers: Describe how it helps while reading or doing online research (e.g., saving highlights, annotation, citation formatting).
- Power Users: Describe an advanced or niche scenario where the extension provides real productivity gain.
✨ Features
- Works in Chrome 100+, Edge 100+, and Firefox 110+
- Manifest V3 compliant
- Zero telemetry or tracking
- Keyboard accessible
- Settings sync across devices (
chrome.storage.sync
)
🔐 Permissions Used
| Permission | Why it's needed |
|---|---|
activeTab | Access the current page when user clicks |
storage | Save user preferences |
contextMenus | Add right-click menu entries |
notifications | Show desktop alerts |
⚠️ This extension does not request access to all URLs or browsing history.
📸 Screenshots
| Popup | Options | In-Page Panel |
|---|---|---|
🏁 Getting Started
git clone https://github.com/username/extension.git cd extension npm install npm run dev
💡 Usage
Basic Usage
- Click the extension icon in the toolbar (or use the keyboard shortcut
⌘+Shift+E
). - Describe what the user sees / can do in the popup.
- Explain any options configurable from the Options page (
Right-click icon → Options
).
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
⌘ + Shift + E | Open the extension popup |
Esc | Close the popup or panel |
↑ / ↓ | Navigate items in a list |
Settings
Open the Options page to configure:
- Setting 1 — explain what it does
- Setting 2 — explain what it does
📂 Project Structure
extension/ ├── public/ │ ├── manifest.json # Extension manifest (V3) │ └── icons/ # 16, 32, 48, 128px icons ├── src/ │ ├── background/ # Service worker │ ├── content/ # Content scripts │ ├── popup/ # Popup UI (React) │ └── options/ # Options page (React) ├── dist/ # Built extension (gitignored) └── package.json
🔓 Loading Unpacked
- Run
npm run build
to generate thedist/
folder. - Go to
chrome://extensions
and enable Developer mode. - Click Load unpacked → select the
dist/
folder.
🏗️ Building for Production
npm run build:chrome # Zip for Chrome Web Store npm run build:firefox # Zip for Firefox Add-ons
🏪 Publishing
| Store | Submit URL |
|---|---|
| Chrome Web Store | https://chrome.google.com/webstore/devconsole |
| Firefox Add-ons | https://addons.mozilla.org/developers/ |
| Edge Add-ons | https://partner.microsoft.com/dashboard |
🔏 Privacy Policy
This extension does not collect, transmit, or sell any personal data. All preferences are stored locally via
chrome.storage.sync. See PRIVACY.md for full details.
🤝 Contributing
Read CONTRIBUTING.md before opening a PR.
📝 License
Distributed under the MIT License. See LICENSE for more information.
README Templates FAQ
Common questions about using our GitHub README templates.