启用
启动一个开发会话时带上你需要的控制开关:你可以做什么
| 命令 | 作用 | 门控 |
|---|---|---|
extension logs | 在一条按时间排序的时间线中聚合每个上下文(SW、content、popup、options、sidebar、devtools)的日志 | — |
extension inspect | 读取某个界面注入后的实时 DOM | — |
extension storage get | set | 读取或写入扩展的 chrome.storage | --allow-control |
extension reload | 重载扩展或某个标签页 | --allow-control |
extension open <popup|options|sidebar> | 打开扩展的某个界面 | --allow-control |
extension open action | 触发工具栏按钮——会打开它的 popup,或重放 onClicked | --allow-control |
extension open command --name <cmd> | 重放某个键盘快捷键命令 | --allow-control |
extension eval "<expr>" --context <c> | 在指定上下文中求值一个表达式并返回结果 | --allow-eval |
指定上下文
读取和执行操作共享同一套词汇——你只需说明界面名称,Extension.js 会根据它正在跟踪的会话进行解析。| 地址 | 含义 |
|---|---|
--context background | service worker(或 MV2 background 页面) |
--context popup / options / sidebar | 对应的扩展界面(如果已打开) |
--context content --url "https://shop.example/*" | 匹配页面上的隔离 content 世界 |
--context content --tab 7 | 特定标签页中的 content 世界 |
示例:我的后台处理器到底有没有运行?
console.log 都会同时通过 extension logs 输出,并按序号相关联——这样你能同时看到返回值和副作用。
跨浏览器支持
Extension.js 通过浏览器内伴侣进程进行调试,而不是 Chrome DevTools Protocol,因此核心循环可以在 Chrome 与 Firefox 上都到达你自己的界面——曾经那堵“Firefox 用 RDP,所以不支持”的墙在这些工具上已经不存在了。| 能力 | Chromium | Firefox |
|---|---|---|
logs、inspect、eval、storage、reload、open(含 action/command) | ✓ | ✓(已验证) |
inspect --deep-dom(闭合 shadow root) | ✓ | —(依赖 CDP) |
extension_list_extensions(MCP 工具) | ✓ | —(依赖 CDP) |
extension_list_extensions 是 MCP 工具而不是 CLI 子命令——它通过 DevTools Protocol 连接,因此仅支持 Chromium。)
安全性
这些门控是有意为之,而不是官僚式的限制:- 观察无需任何开关。 读取日志和 DOM 始终可用。
- 有边界的操作需要
--allow-control。storage、reload与open会改变状态,因此你需要按会话主动开启。 eval需要--allow-eval以及一个按会话生成的 token。 该 token 写入dist/之外的一个0600文件中,因此绝不会随构建产物发出——本地随机进程无法悄悄驱动你的 service worker。- 任何东西都不会进入生产环境。 控制通道只在
dev/preview期间存在;它依赖一个不会出现在打包产物中的端口。
配合 AI agent
同样这些操作通过@extension.dev/mcp 以 MCP 工具的形式暴露出来(extension_logs、extension_eval、extension_storage、extension_reload、extension_open、extension_list_extensions)。门控完全一致——助手可以自由地观察,但只有在你为本次会话启用后才能执行操作。
下一步
- 触发动作和键盘命令——无需点击即可测试处理器,无头并可在 CI 中运行。
- 同时运行两个 MCP 服务器——Extension.js 控制能力与 Chrome DevTools MCP 并存。
- CI 模板——将这些能力接入 pull request 的检查。

