Install
Terminal · npx$
npx skills add https://github.com/sickn33/antigravity-awesome-skills --skill browser-extension-builderWorks with Paperclip
How Browser Extension Builder fits into a Paperclip company.
Browser Extension Builder drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.
S
SaaS FactoryPaired
Pre-configured AI company — 18 agents, 18 skills, one-time purchase.
$27$59
Explore packSource file
SKILL.md385 linesExpandCollapse
---name: browser-extension-builderdescription: Expert in building browser extensions that solve real problems - Chrome, Firefox, and cross-browser extensions. Covers extension architecture, manifest v3, content scripts, popup UIs, monetization strategies, and Chrome Web Store publishing.risk: unknownsource: vibeship-spawner-skills (Apache 2.0)date_added: 2026-02-27--- # Browser Extension Builder Expert in building browser extensions that solve real problems - Chrome, Firefox,and cross-browser extensions. Covers extension architecture, manifest v3, contentscripts, popup UIs, monetization strategies, and Chrome Web Store publishing. **Role**: Browser Extension Architect You extend the browser to give users superpowers. You understand theunique constraints of extension development - permissions, security,store policies. You build extensions that people install and actuallyuse daily. You know the difference between a toy and a tool. ### Expertise - Chrome extension APIs- Manifest v3- Content scripts- Service workers- Extension UX- Store publishing ## Capabilities - Extension architecture- Manifest v3 (MV3)- Content scripts- Background workers- Popup interfaces- Extension monetization- Chrome Web Store publishing- Cross-browser support ## Patterns ### Extension Architecture Structure for modern browser extensions **When to use**: When starting a new extension ## Extension Architecture ### Project Structure```extension/├── manifest.json # Extension config├── popup/│ ├── popup.html # Popup UI│ ├── popup.css│ └── popup.js├── content/│ └── content.js # Runs on web pages├── background/│ └── service-worker.js # Background logic├── options/│ ├── options.html # Settings page│ └── options.js└── icons/ ├── icon16.png ├── icon48.png └── icon128.png``` ### Manifest V3 Template```json{ "manifest_version": 3, "name": "My Extension", "version": "1.0.0", "description": "What it does", "permissions": ["storage", "activeTab"], "action": { "default_popup": "popup/popup.html", "default_icon": { "16": "icons/icon16.png", "48": "icons/icon48.png", "128": "icons/icon128.png" } }, "content_scripts": [{ "matches": ["<all_urls>"], "js": ["content/content.js"] }], "background": { "service_worker": "background/service-worker.js" }, "options_page": "options/options.html"}``` ### Communication Pattern```Popup ←→ Background (Service Worker) ←→ Content Script ↓ chrome.storage``` ### Content Scripts Code that runs on web pages **When to use**: When modifying or reading page content ## Content Scripts ### Basic Content Script```javascript// content.js - Runs on every matched page // Wait for page to loaddocument.addEventListener('DOMContentLoaded', () => { // Modify the page const element = document.querySelector('.target'); if (element) { element.style.backgroundColor = 'yellow'; }}); // Listen for messages from popup/backgroundchrome.runtime.onMessage.addListener((message, sender, sendResponse) => { if (message.action === 'getData') { const data = document.querySelector('.data')?.textContent; sendResponse({ data }); } return true; // Keep channel open for async});``` ### Injecting UI```javascript// Create floating UI on pagefunction injectUI() { const container = document.createElement('div'); container.id = 'my-extension-ui'; container.innerHTML = ` <div style="position: fixed; bottom: 20px; right: 20px; background: white; padding: 16px; border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.15); z-index: 10000;"> <h3>My Extension</h3> <button id="my-extension-btn">Click me</button> </div> `; document.body.appendChild(container); document.getElementById('my-extension-btn').addEventListener('click', () => { // Handle click });} injectUI();``` ### Permissions for Content Scripts```json{ "content_scripts": [{ "matches": ["https://specific-site.com/*"], "js": ["content.js"], "run_at": "document_end" }]}``` ### Storage and State Persisting extension data **When to use**: When saving user settings or data ## Storage and State ### Chrome Storage API```javascript// Save datachrome.storage.local.set({ key: 'value' }, () => { console.log('Saved');}); // Get datachrome.storage.local.get(['key'], (result) => { console.log(result.key);}); // Sync storage (syncs across devices)chrome.storage.sync.set({ setting: true }); // Watch for changeschrome.storage.onChanged.addListener((changes, area) => { if (changes.key) { console.log('key changed:', changes.key.newValue); }});``` ### Storage Limits| Type | Limit ||------|-------|| local | 5MB || sync | 100KB total, 8KB per item | ### Async/Await Pattern```javascript// Modern async wrapperasync function getStorage(keys) { return new Promise((resolve) => { chrome.storage.local.get(keys, resolve); });} async function setStorage(data) { return new Promise((resolve) => { chrome.storage.local.set(data, resolve); });} // Usageconst { settings } = await getStorage(['settings']);await setStorage({ settings: { ...settings, theme: 'dark' } });``` ### Extension Monetization Making money from extensions **When to use**: When planning extension revenue ## Extension Monetization ### Revenue Models| Model | How It Works ||-------|--------------|| Freemium | Free basic, paid features || One-time | Pay once, use forever || Subscription | Monthly/yearly access || Donations | Tip jar / Buy me a coffee || Affiliate | Recommend products | ### Payment Integration```javascript// Use your backend for payments// Extension can't directly use Stripe // 1. User clicks "Upgrade" in popup// 2. Open your website with user IDchrome.tabs.create({ url: `https://your-site.com/upgrade?user=${userId}`}); // 3. After payment, sync statusasync function checkPremium() { const { userId } = await getStorage(['userId']); const response = await fetch( `https://your-api.com/premium/${userId}` ); const { isPremium } = await response.json(); await setStorage({ isPremium }); return isPremium;}``` ### Feature Gating```javascriptasync function usePremiumFeature() { const { isPremium } = await getStorage(['isPremium']); if (!isPremium) { showUpgradeModal(); return; } // Run premium feature}``` ### Chrome Web Store Payments- Chrome discontinued built-in payments- Use your own payment system- Link to external checkout page ## Validation Checks ### Using Deprecated Manifest V2 Severity: HIGH Message: Using Manifest V2 - Chrome requires V3 for new extensions. Fix action: Migrate to Manifest V3 with service worker ### Excessive Permissions Requested Severity: HIGH Message: Requesting broad permissions - may cause store rejection. Fix action: Use specific host_permissions and optional_permissions ### No Error Handling in Extension Severity: MEDIUM Message: Not checking chrome.runtime.lastError for errors. Fix action: Check chrome.runtime.lastError after API calls ### Hardcoded URLs in Extension Severity: MEDIUM Message: Hardcoded URLs may cause issues in production. Fix action: Use chrome.storage or manifest for configuration ### Missing Extension Icons Severity: LOW Message: Missing extension icons - affects store listing. Fix action: Add icons in 16, 48, and 128 pixel sizes ## Collaboration ### Delegation Triggers - react|vue|svelte -> frontend (Extension popup framework)- monetization|payment|subscription -> micro-saas-launcher (Extension business model)- personal tool|just for me -> personal-tool-builder (Personal extension)- AI|LLM|GPT -> ai-wrapper-product (AI-powered extension) ### Productivity Extension Skills: browser-extension-builder, frontend, micro-saas-launcher Workflow: ```1. Define extension functionality2. Build popup UI with React3. Implement content scripts4. Add premium features5. Publish to Chrome Web Store6. Market and iterate``` ### AI Browser Assistant Skills: browser-extension-builder, ai-wrapper-product, frontend Workflow: ```1. Design AI features for browser2. Build extension architecture3. Integrate AI API4. Create popup interface5. Handle usage limits/payments6. Publish and grow``` ## Related Skills Works well with: `frontend`, `micro-saas-launcher`, `personal-tool-builder` ## When to Use- User mentions or implies: browser extension- User mentions or implies: chrome extension- User mentions or implies: firefox addon- User mentions or implies: extension- User mentions or implies: manifest v3 ## Limitations- Use this skill only when the task clearly matches the scope described above.- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.Related skills
3d Web Experience
Install 3d Web Experience skill for Claude Code from sickn33/antigravity-awesome-skills.
Agent Memory Mcp
Install Agent Memory Mcp skill for Claude Code from sickn33/antigravity-awesome-skills.
Agent Memory Systems
Install Agent Memory Systems skill for Claude Code from sickn33/antigravity-awesome-skills.