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 GitHubfrancanete/fran-marketplace
chrome-extension-expert
chrome-extension-expert/skills/manifest-v3/SKILL.md
January 20, 2026
Select agents to install to:
npx add-skill https://github.com/francanete/fran-marketplace/blob/main/chrome-extension-expert/skills/manifest-v3/SKILL.md -a claude-code --skill manifest-v3Installation paths:
.claude/skills/manifest-v3/# 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
``