关于 extension-manifest
用于分析 Chrome 扩展代码并生成所需最少权限的 Manifest V3 配置,面向扩展开发者提供权限检查与用户警告报告流程。
主要功能
- 01识别 WXT、CRXJS 和原生 manifest 项目
- 02扫描 Chrome API 用法
- 03将 API 调用映射到权限
- 04生成并验证 manifest.json
- 05报告面向用户的权限警告
适用场景
- 01根据现有扩展代码生成 manifest
- 02检查能否减少申请的权限
- 03提交 Chrome Web Store 前审查 manifest
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ quangpl/ browser-extension-skills --skill extension-manifest安装后在 Claude Code 中输入/extension-manifest确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/api-permission-map.mdmanifest-fields-reference.mdmanifest-templates.mdmanifest-validation-checklist.mdpermission-strategies.mdpermission-warnings.md详细介绍
扩展清单与权限生成器
🚀 升级到 Premium 前往 https://app.extensionbooster.net/dashboard/services/extension-ai-kit 获取 Premium 版本
根据当前扩展实现生成最佳 manifest.json。分析代码,根据 Chrome 文档和最佳实践确定最少权限。
工作流
- 检测框架:检查是否存在
wxt.config.ts、crxjs.config.ts或原始manifest.json - 扫描扩展代码库中的 Chrome API 用法
- 映射每个 API 调用所需的权限(参见
references/api-permission-map.md) - 生成包含最少所需权限的 manifest.json
- 根据 Chrome 文档和 CWS 政策进行验证
- 报告用户将看到的权限警告
CRXJS 项目:Manifest 会根据代码和
package.json自动生成。通过crxjs.config.ts覆盖。参见 https://docs.crxjs.com/
文档参考
- Manifest 参考:https://developer.chrome.com/docs/extensions/reference/manifest
- 权限列表:https://developer.chrome.com/docs/extensions/reference/permissions-list
快速 Manifest 模板
{
"manifest_version": 3,
"name": "Extension Name",
"version": "1.0.0",
"description": "Brief description. Max 132 chars for CWS.",
"icons": {
"16": "icons/icon16.png",
"48": "icons/icon48.png",
"128": "icons/icon128.png"
},
"action": {
"default_popup": "popup.html",
"default_icon": { "16": "icons/icon16.png" }
},
"permissions": [],
"host_permissions": [],
"background": { "service_worker": "background.js", "type": "module" }
}
权限分析步骤
- 使用
chrome.API 调用对代码库进行 Grep 搜索 - 根据
references/api-permission-map.md映射每个调用所需的权限 - 尽可能优先使用
activeTab,而不是tabs+ host_permissions - 对非必要功能使用可选权限
- 检查
references/permission-warnings.md中的警告文本
常见错误
| 错误 | 修复 |
|---|---|
将 host_permissions 放在 permissions 中 | 将 URL 移到单独的 host_permissions 数组中 |
使用 <all_urls> | 将范围缩小到特定域名模式 |
缺少 activeTab | 如果只需在用户点击时访问当前标签页,则添加该权限 |
过度使用 tabs 权限 | 仅在需要标签页 URL/标题时使用;否则改用 activeTab |
将 content_security_policy 写成字符串 | 必须是对象:{ "extension_pages": "..." } |
将 web_accessible_resources 写成 string[] | 使用包含 resources + matches 的对象 |
MV3 关键规则
host_permissions与permissions分开设置- Service worker 会取代后台页面(不能使用 DOM 和
window) content_security_policy必须是对象,不能是字符串- 禁止远程代码执行(不得使用 eval 或 CDN 脚本)
web_accessible_resources必须包含matches数组- 使用
chrome.scripting.executeScript(),不要使用tabs.executeScript()
参考资料
references/manifest-fields-reference.md- 所有 Manifest 字段及其类型和示例references/manifest-templates.md- 可直接使用的模板(弹出窗口、内容脚本、侧边栏、devtools)references/manifest-validation-checklist.md- 提交前验证清单references/api-permission-map.md- Chrome API → 权限映射references/permission-warnings.md- 各权限面向用户的警告文本references/permission-strategies.md- 可选权限、activeTab 和权限升级模式
相关技能
extension-create- 完整的项目脚手架extension-analyze- 安全审计和最佳实践
评论
支持 Markdown