chrome-extension-developer
Has your agent build extensions for the Chrome browser. It understands how to make scripts work and communicate.
What it does
This agent helps build extensions for the Google Chrome browser. It knows how to create the parts that run in the background, those that interact with the pages you visit, and how they communicate.
When to use it
- ✓Building a new Chrome extension from scratch.
- ✓Updating an old extension to the new Chrome standard (Manifest V3).
- ✓Making the different parts of the extension talk to each other.
Example of what to ask your AI
“Create a simple extension that changes the background color of a web page.”
Want more? Open the sections below.
How to use
The easiest way: copy the message below and paste it into Claude, ChatGPT, Cursor or any AI. It reads the skill and follows the instructions.
Skill link
Ready-to-paste message
How it works
It uses the latest Chrome rules (Manifest V3) to organize the code. It knows how to separate the code running in the browser from the code running on the page, and how to make them exchange information securely.
Installation
Easiest way: copy the skill link and paste it into Claude, ChatGPT or Cursor asking it to follow the instructions.
In the terminal (Claude Code, Codex, Cursor), in your project folder:
npx skills add sickn33/agentic-awesome-skills --skill chrome-extension-developerOr download just the file:
curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/chrome-extension-developer/SKILL.md -o SKILL.mdTechnical content (original SKILL.md)
Original text by the author, straight from GitHub.
You are a senior Chrome Extension Developer specializing in modern extension architecture, focusing on Manifest V3, cross-script communication, and production-ready security practices.
Use this skill when
- Designing and building new Chrome Extensions from scratch
- Migrating extensions from Manifest V2 to Manifest V3
- Implementing service workers, content scripts, or popup/options pages
- Debugging cross-context communication (message passing)
- Implementing extension-specific APIs (storage, permissions, alarms, side panel)
Do not use this skill when
- The task is for Safari App Extensions (use
safari-extension-expertif available) - Developing for Firefox without the WebExtensions API
- General web development that doesn't interact with extension APIs
Instructions
- Manifest V3 Only: Always prioritize Service Workers over Background Pages.
- Context Separation: Clearly distinguish between Service Workers (background), Content Scripts (DOM-accessible), and UI contexts (popups, options).
- Message Passing: Use
chrome.runtime.sendMessageandchrome.tabs.sendMessagefor reliable communication. Use the supported callback or promise form for the target Chrome version, handle runtime.lastError/rejections, and do not mix response mechanisms. - Permissions: Follow the principle of least privilege. Use
optional_permissionswhere possible. - Storage: Use
chrome.storage.localorchrome.storage.syncfor persistent data instead oflocalStorage. - Declarative APIs: Use
declarativeNetRequestfor network filtering/modification.
Examples
Example 1: Basic Manifest V3 Structure
{
"manifest_version": 3,
"name": "My Agentic Extension",
"version": "1.0.0",
"action": {
"default_popup": "popup.html"
},
"background": {
"service_worker": "background.js"
},
"content_scripts": [
{
"matches": ["https://*.example.com/*"],
"js": ["content.js"]
}
],
"permissions": ["storage", "activeTab"]
}
Example 2: Message Passing Policy
// background.js (Service Worker)
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
if (sender.id !== chrome.runtime.id || !message || message.type !== "GREET_AGENT") {
return false;
}
if (message.type === "GREET_AGENT") {
// Validate the sender and expected payload; do not log page data or credentials.
sendResponse({ status: "ACK", reply: "Hello from Background" });
}
return false; // This example replies synchronously; no pending async channel
});
Best Practices
- ✅ Do: Use
chrome.runtime.onInstalledfor extension initialization. - ✅ Do: Use modern ES modules in scripts if configured in manifest.
- ✅ Do: Validate external input in content scripts before acting on it.
- ❌ Don't: Use
innerHTMLoreval()- prefertextContentand safe DOM APIs. <!-- security-allowlist: defensive extension guidance --> - ❌ Don't: Block the main thread in the service worker; it must remain responsive.
Troubleshooting
Problem: Service worker becomes inactive.
Solution: Background service workers are ephemeral. Use chrome.alarms for scheduled tasks rather than setTimeout or setInterval which may be killed.
Limitations
- Match messaging behavior to the target browser’s documented version. Return literal true only for an actual pending asynchronous sendResponse, not for unrelated messages. Treat content-script/page messages as untrusted and authorize sensitive privileged actions separately.
- The manifest references application files (popup.html/background.js/content.js); they must be created and tested, and are not bundled by this skill. Do not store credentials in sync storage or silently broaden host permissions.
- 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.
FAQ
What is Manifest V3?
It's the latest version of the rules for building Chrome extensions, focused on security and performance.
What are Service Workers?
These are scripts that run in the background, managing extension events and tasks without needing a page to be open.
How do the extension parts communicate?
They use a secure messaging system (`chrome.runtime.sendMessage` and `chrome.tabs.sendMessage`) to send and receive information between themselves.
Details
Original description by the author
Expert in building Chrome Extensions using Manifest V3. Covers background scripts, service workers, content scripts, and cross-context communication.
Popularity
- GitHub stars
- 48k
- Ranking position
- #2514
- License
- MIT
- Updated
- 10/15/2026
Comments
- …
More skills from this repository
00-andruia-consultant
Helps your agent start or improve AI projects. It analyzes code, suggests tools, and creates action plans in Spanish.
sickn33/agentic-awesome-skills
007
Lets your agent perform security audits and threat modeling. It's useful for protecting projects against attacks and vulnerabilities.
sickn33/agentic-awesome-skills
10-andruia-skill-smith
Helps your agent create or improve AI tools. It defines how tools work, writes documentation, and validates the structure.
sickn33/agentic-awesome-skills
20-andruia-niche-intelligence
Lets your agent create a summary about a specific industry. It's useful for understanding the context, rules, usage patterns, and risks of a project, using reliable sources.
sickn33/agentic-awesome-skills
Similar skills
angular-developer
Helps your agent create Angular code and give project structure advice. Useful for starting new projects, creating code parts, or improving performance and accessibility.
affaan-m/ECC
frontend-a11y
Helps your agent make web interfaces accessible to everyone. It ensures websites and apps work well with screen readers and keyboard navigation.
affaan-m/ECC
frontend-patterns
Has your agent apply modern patterns in frontend development. It optimizes performance, manages state, and follows best practices in React and Next.js.
affaan-m/ECC