New to Claude Skills? Learn how to install them →

Csickn33 on GitHub

Chrome Extension Developer

Free

Build and optimize Chrome Extensions with Manifest V3.

Get this skill

Free · Opens the source repo

What Chrome Extension Developer does

This skill is tailored for developers looking to create and enhance Chrome Extensions using the latest Manifest V3 architecture. It provides in-depth guidance on structuring extensions with a focus on service workers, content scripts, and effective cross-context communication. By following the best practices outlined, users can ensure their extensions are not only functional but also secure and efficient.

The skill emphasizes the importance of using service workers instead of background pages, promoting a modern approach to extension development. Users will learn how to implement essential features such as message passing between different parts of the extension, managing permissions wisely, and utilizing Chrome's storage APIs for data persistence. This skill is ideal for both new developers starting from scratch and experienced developers migrating existing extensions from Manifest V2 to V3.

Additionally, the skill includes practical examples and troubleshooting tips to help users navigate common challenges. For example, it provides a clear structure for a basic Manifest V3 file and demonstrates effective message handling between service workers and content scripts. By adhering to the guidelines, developers can avoid pitfalls related to security and performance, ensuring a smooth user experience for their extension's end-users.

Overall, this skill is a comprehensive resource for anyone involved in Chrome Extension development, offering a mix of theoretical knowledge and practical implementation strategies.

When to use it

Use this skill when designing new Chrome Extensions or updating existing ones to Manifest V3.

When not to use it

Avoid this skill for tasks related to Safari App Extensions or general web development not involving Chrome Extension APIs.

What you can build with it

Creating a New Chrome Extension

Leverage this skill to design and implement a new Chrome Extension from scratch, ensuring it meets modern standards.

Migrating to Manifest V3

Use this skill to effectively transition an existing extension from Manifest V2 to V3, updating necessary components.

Debugging Communication Issues

Utilize the guidance provided to troubleshoot and resolve issues related to message passing between service workers and content scripts.

How to install Chrome Extension Developer

View source

1. Install with the skills CLI

npx skills add sickn33/agentic-awesome-skills/chrome-extension-developer --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by sickn33

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-expert if available)
  • Developing for Firefox without the WebExtensions API
  • General web development that doesn't interact with extension APIs

Instructions

  1. Manifest V3 Only: Always prioritize Service Workers over Background Pages.
  2. Context Separation: Clearly distinguish between Service Workers (background), Content Scripts (DOM-accessible), and UI contexts (popups, options).
  3. Message Passing: Use chrome.runtime.sendMessage and chrome.tabs.sendMessage for reliable communication. Always use the responseCallback.
  4. Permissions: Follow the principle of least privilege. Use optional_permissions where possible.
  5. Storage: Use chrome.storage.local or chrome.storage.sync for persistent data instead of localStorage.
  6. Declarative APIs: Use declarativeNetRequest for 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 (message.type === "GREET_AGENT") {
    console.log("Received message from content script:", message.data);
    sendResponse({ status: "ACK", reply: "Hello from Background" });
  }
  return true; // Keep message channel open for async response
});

Best Practices

  • Do: Use chrome.runtime.onInstalled for 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 innerHTML or eval() - prefer textContent and 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

  • 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.

Frequently asked questions about Chrome Extension Developer

Similar skills