karvifi/os/chrome-extension-development

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Chrome extension patterns — manifest V3, content scripts, background workers, messaging

Install

npx vskill@latest install karvifi/os/chrome-extension-development

SKILL.md

SKILL: Chrome Extension Development

Manifest V3

json
{
"manifest_version": 3,
"name": "My Extension",
"version": "1.0.0",
"description": "Extension description",
"permissions": [
"storage",
"tabs",
"activeTab"
],
"action": {
"default_popup": "popup.html",
"default_icon": "icon.png"
},
"background": {
"service_worker": "background.js"
},
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["content.js"]
}]
}

Content Script (Inject into pages)

javascript
// content.js - Runs on web pages
console.log('Content script loaded')
// Modify DOM
document.body.style.backgroundColor = 'lightblue'
// Send message to background
chrome.runtime.sendMessage({
type: 'PAGE_LOADED',
url: window.location.href
})

Background Worker

javascript
// background.js - Runs in background
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (message.type === 'PAGE_LOADED') {
console.log('Page loaded:', message.url)
// Store in chrome.storage
chrome.storage.local.set({ lastUrl: message.url })
}
})

Popup UI

html
<!-- popup.html -->
<!DOCTYPE html>
<html>
<head>
<style>
body { width: 300px; padding: 10px; }
</style>
</head>
<body>
<h1>My Extension</h1>
<button id="action">Click me</button>
<script src="popup.js"></script>
</body>
</html>
javascript
// popup.js
document.getElementById('action').addEventListener('click', async () => {
// Get active tab
const [tab] = await chrome.tabs.query({ active: true, currentWindow: true })
// Execute script in tab
chrome.scripting.executeScript({
target: { tabId: tab.id },
func: () => alert('Hello from extension!')
})
})

Quality Checks

  • [ ] Manifest V3 (not V2)
  • [ ] Permissions minimal (only what's needed)
  • [ ] Content Security Policy configured
  • [ ] Storage API for persistence
  • [ ] Messaging between scripts working
  • [ ] Extension tested in Chrome
  • [ ] Published to Chrome Web Store
  • [ ] Auto-update configured

Security

  • Security scanPassed, 90 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
5

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/karvifi/os/chrome-extension-development/badge)](https://verified-skill.com/skills/karvifi/os/chrome-extension-development)

Something wrong with this skill or its page? Tell us.