网络请求修改器

SKILL开发
开发 未标注权限 许可证不明确
安装这个技能

当用户想要观察、拦截或修改浏览器网络请求和响应时使用此 skill。Use when the user wants to observe, intercept, or modify browser network requests — monitor HTTP traffic, mock API responses, block analytics/tracking, modify request/response headers, rewrite response bodies, inject content into pages, or test web behavior under modified network conditions. Trigger even when the user doesn't use precise technical terms — 「帮我看这个网站发了什么请求」「把这个 API 的返回值改成假的」「屏蔽谷歌统计」「让页面显示不同数据」are all valid triggers. Keywords: 拦截 intercept mock 修改请求 修改响应 改包 抓包 network monitor CDP fake backend 替换返回值 注入 inject script 改 header 阻止 block request.

一句话选型结论

按资料字段整理

网络请求修改器是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_69043c0d/network-request-twister
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_69043c0d仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791625129
正文体量8.7 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
网络请求修改器当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

8.7 KB
模型实际读到的说明书原文,来自技能仓库

网络请求修改器 / Network Request Twister

通过 Chrome DevTools Protocol 实时观察和修改浏览器网络请求/响应,无需安装浏览器插件。

模式选择

根据用户意图选择工作模式:

用户意图 模式 行为
「看看这个页面发了什么请求」「帮我抓包分析」 观察模式 输出 JSONL 网络日志,AI 分析后决定下一步
「拦截 analytics 请求」「把 API 返回值改掉」「修改 Header」 拦截模式 启动浏览器加载规则,用户在浏览器中验证
「浏览器开了吗」「有哪些标签页」 列目标 列出当前可用的浏览器标签页

除非用户直接给出明确规则(如「把 /api/users 的返回值改成 XXX」),否则必须先观察再修改。

执行约束

twist 命令是纯阻塞进程,永不自动退出(行为与 tail -f 一致)。 如果同步等待命令返回,Agent 将永久阻塞——因为 twist 不像普通命令那样执行完就退出,它会持续运行直到被外部终止。因此必须使用平台后台机制启动,用非阻塞方式读取输出。

启动后:
- 观察模式:后台启动 → 非阻塞轮询 stdout 读取 JSONL → 收集够数据后终止进程
- 拦截模式:后台启动 → 不读输出(stdout 只有日志,没有结构化数据)→ 用户验证浏览器后终止进程
- 禁止等待进程退出 — twist 永不退出,等待会导致永久阻塞
- 始终通过 STDIN 管道传入规则配置,不在项目中写 .json 临时文件(避免残留文件污染项目)

观察模式

# 后台启动(阻塞进程,必须用平台后台机制执行)
python scripts/twist.py --launch --observe -u https://目标网站.com

# 只看 XHR/Fetch
python scripts/twist.py --launch --observe --observe-filter type=xhr,fetch -u https://example.com

# 只看含 "api" 的 URL
python scripts/twist.py --launch --observe --observe-filter url=api -u https://example.com

# 完整响应体(默认截断 4KB)
python scripts/twist.py --launch --observe --observe-full-body -u https://example.com

# 附加到已打开的浏览器页面(省略 -u,自动选第一个 tab)
python scripts/twist.py --observe

输出为 JSONL,每行一个事件,核心字段:type, requestId, url, method, resourceType, requestHeaders, statusCode, body, bodyTruncated。

解读要点: resourceType 区分 XHR/Fetch/Document;响应阶段才有 statusCode 和 body;bodyTruncated: true 表示被截断。

拦截模式

通过 STDIN 传入 JSON 规则配置:

# 启动浏览器 + 加载规则(阻塞进程,必须后台执行)
python scripts/twist.py --launch -u https://目标网站.com <<'EOF'
{"id":"cfg","name":"cfg","rules":[...]}
EOF

# 复用已有浏览器,页面已打开无需导航(省略 -u)
python scripts/twist.py <<'EOF'
{"id":"cfg","name":"cfg","rules":[...]}
EOF

# 复用已有浏览器更新规则(无需 --launch)
python scripts/twist.py -u https://目标网站.com <<'EOF'
{"id":"cfg","name":"cfg","rules":[...]}
EOF

规则结构

{
  "id": "配置ID",
  "name": "配置名称",
  "version": "1.0",
  "rules": [
    {
      "id": "规则ID",
      "name": "规则描述",
      "enabled": true,
      "priority": 10,
      "stage": "request",
      "match": { "allOf": [...], "anyOf": [...] },
      "actions": [...]
    }
  ]
}

规则要点: priority 越大越优先;allOf 是 AND、anyOf 是 OR;stage 决定在 request(发请求前)还是 response(返回浏览器前)修改;首条匹配后不再检查后续规则。

条件速查

用户意图 → 条件类型。完整参数说明见 references/conditions.md。

用户说 条件
URL 等于/前缀/后缀/包含/正则 urlEquals / urlPrefix / urlSuffix / urlContains / urlRegex
GET/POST 请求 method + values: ["GET"]
XHR/JS 文件 resourceType + values: ["XHR"]
有/没有某个 Header headerExists / headerNotExists
Header 等于/包含/正则 headerEquals / headerContains / headerRegex
有/没有某个 Query 参数 queryExists / queryNotExists
Query 等于/包含/正则 queryEquals / queryContains / queryRegex
有/没有某个 Cookie cookieExists / cookieNotExists
Cookie 等于/包含/正则 cookieEquals / cookieContains / cookieRegex
请求体包含字符串/JSONPath bodyContains / bodyJsonPath

动作速查

用户意图 → 动作。完整参数说明见 references/actions.md。

用户说 动作 阶段
拦截/屏蔽请求 block request
修改 URL setUrl request
改 HTTP 方法 setMethod request
添加/修改/删除 Header setHeader / removeHeader request
添加/修改/删除 Query setQueryParam / removeQueryParam request
修改/删除 Cookie setCookie / removeCookie both
修改/删除表单字段 setFormField / removeFormField request
修改响应状态码 setStatus response
替换/追加 Body setBody / appendBody both
查找替换 Body 文本 replaceBodyText both
JSON Patch (RFC 6902) patchBodyJson both
替换页面 HTML 元素 replaceElement response

完整示例

屏蔽追踪请求

需求:「把所有发往 analytics 或 tracking 的请求都拦截掉」

先观察确认 URL 特征 → 再编写规则:

{
  "id": "block-tracking",
  "name": "屏蔽追踪统计",
  "version": "1.0",
  "rules": [{
    "id": "rule-1",
    "name": "拦截分析请求",
    "enabled": true,
    "priority": 10,
    "stage": "request",
    "match": {
      "allOf": [{"type": "urlContains", "value": "analytics"}],
      "anyOf": [
        {"type": "urlContains", "value": "google"},
        {"type": "urlContains", "value": "tracking"}
      ]
    },
    "actions": [{"type": "block", "statusCode": 204}]
  }]
}

Mock API 响应

需求:「把 /api/users 的返回值改成自定义 JSON」

{
  "id": "mock-users",
  "name": "Mock 用户 API",
  "version": "1.0",
  "rules": [{
    "id": "rule-1",
    "name": "替换用户列表",
    "enabled": true,
    "priority": 10,
    "stage": "response",
    "match": {
      "allOf": [
        {"type": "urlContains", "value": "/api/users"},
        {"type": "method", "values": ["GET"]}
      ]
    },
    "actions": [
      {"type": "setHeader", "name": "Content-Type", "value": "application/json"},
      {"type": "setBody", "value": "{\"users\":[{\"id\":1,\"name\":\"测试用户\"}],\"total\":1}"}
    ]
  }]
}

参考文档

  • references/conditions.md — 所有 25 种匹配条件的完整参数对照
  • references/actions.md — 所有 17 种动作的完整参数对照
  • examples/basic.json — block 拦截 + Mock API 响应
  • examples/request-mod.json — 请求阶段修改(setHeader、setUrl、setMethod)
  • examples/response-mod.json — 响应阶段修改(setStatus、replaceBodyText、patchBodyJson、replaceElement)
  • examples/cookie-query.json — Cookie 和 Query 参数修改(setCookie、removeCookie、setQueryParam、removeQueryParam)
  • examples/form-body.json — 表单、Body 和 Header 修改(setFormField、removeFormField、appendBody、removeHeader)
  • examples/all-conditions.json — 全部 25 种匹配条件类型示例

更多命令参数运行 python scripts/twist.py --help 查看。

常见问题

5 问
答案由本站依据条目字段整理
网络请求修改器怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_69043c0d/network-request-twister。安装方式为未标注。装完刷新技能列表或重开客户端。

网络请求修改器支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

网络请求修改器权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

网络请求修改器收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

网络请求修改器用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。