Back to Skills

manifest-v3

verified

Comprehensive Manifest V3 reference covering manifest.json structure, all fields, service workers, content scripts, permissions, CSP, icons, and side panel configuration. Use when creating or modifying Chrome Extension manifests.

View on GitHub

Marketplace

fran-marketplace

francanete/fran-marketplace

Plugin

chrome-extension-expert

development

Repository

francanete/fran-marketplace

chrome-extension-expert/skills/manifest-v3/SKILL.md

Last Verified

January 20, 2026

Install Skill

Select agents to install to:

Scope:
npx add-skill https://github.com/francanete/fran-marketplace/blob/main/chrome-extension-expert/skills/manifest-v3/SKILL.md -a claude-code --skill manifest-v3

Installation paths:

Claude
.claude/skills/manifest-v3/
Powered by add-skill CLI

Instructions

# Manifest V3 Complete Reference

## Basic Structure

```json
{
  "manifest_version": 3,
  "name": "Extension Name",
  "version": "1.0.0",
  "description": "Brief description (max 132 chars for store)"
}
```

## Required Fields

| Field | Type | Description |
|-------|------|-------------|
| `manifest_version` | integer | Must be `3` |
| `name` | string | Extension name (max 45 chars) |
| `version` | string | Version string (e.g., "1.0.0") |

## Recommended Fields

| Field | Type | Description |
|-------|------|-------------|
| `description` | string | Brief description |
| `icons` | object | Extension icons |
| `action` | object | Toolbar button config |

---

## Icons

```json
{
  "icons": {
    "16": "icons/icon16.png",
    "32": "icons/icon32.png",
    "48": "icons/icon48.png",
    "128": "icons/icon128.png"
  }
}
```

| Size | Usage |
|------|-------|
| 16x16 | Favicon, toolbar |
| 32x32 | Windows computers |
| 48x48 | Extensions management page |
| 128x128 | Chrome Web Store |

---

## Background Service Worker

```json
{
  "background": {
    "service_worker": "background.js",
    "type": "module"
  }
}
```

| Property | Description |
|----------|-------------|
| `service_worker` | Path to service worker file |
| `type` | Set to `"module"` for ES module support |

**Key Differences from MV2:**
- No persistent background pages
- Service worker terminates after ~30s idle
- Must use `chrome.alarms` for periodic tasks
- Event listeners must be registered at top level

---

## Action (Toolbar Button)

```json
{
  "action": {
    "default_icon": {
      "16": "icons/icon16.png",
      "32": "icons/icon32.png"
    },
    "default_title": "Click to activate",
    "default_popup": "popup.html"
  }
}
```

| Property | Description |
|----------|-------------|
| `default_icon` | Icon shown in toolbar |
| `default_title` | Tooltip text |
| `default_popup` | Popup HTML file |

**Note:** Replaces both `browser_action` and `page_action` from MV2.

---

## Content Scripts

``

Validation Details

Front Matter
Required Fields
Valid Name Format
Valid Description
Has Sections
Allowed Tools
Instruction Length:
7483 chars