mcpField
B
browse-config

browse-config

github.com/ulpi-io开发5107 次安装9 周前更新
代码仓库

关于 browse-config

browse-config 是为 browse 命令行生成 Camoufox 配置的技能,可引导选择预设或自定义选项,并将配置保存到 browse.json 或命名配置文件,同时保留其他字段。

主要功能

  1. 01隐蔽、快速和 Google-safe 预设
  2. 02交互式选择自定义选项
  3. 03保存至 browse.json 或配置文件
  4. 04合并配置且保留其他字段
  5. 05提供 Camoufox 运行方式说明

适用场景

  1. 01设置受保护网站抓取时的浏览器选项
  2. 02减少抓取时加载的资源
  3. 03配置用于 Google 搜索的浏览器配置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ulpi-io/skills --skill browse-config

安装后在 Claude Code 中输入/browse-config确认已加载。

详细介绍

browse-config:Camoufox 配置生成器

步骤 0:询问用户的需求

使用 AskUserQuestion 确定目标。提供以下预设:

预设描述
隐蔽浏览用于抓取受保护的网站。启用 geoip、humanize 和默认 OS 指纹。
快速抓取尽量减少占用。屏蔽图片、WebRTC 和 WebGL。启用磁盘缓存。
Google 安全模式搜索 Google 时避免触发“异常流量”拦截。启用 geoip、humanize 和随机 OS。
自定义逐组交互式配置各个选项。
预设默认值

隐蔽浏览:

{
  "geoip": true,
  "humanize": true
}

快速抓取:

{
  "blockImages": true,
  "blockWebrtc": true,
  "blockWebgl": true,
  "enableCache": true
}

Google 安全模式:

{
  "geoip": true,
  "humanize": true,
  "os": ["windows", "macos", "linux"]
}

步骤 1:自定义配置(选择预设时跳过)

如果用户选择了“自定义”,使用 AskUserQuestion 询问各组选项。每次展示一组。

身份
  • os(字符串或数组)——目标 OS 指纹:“windows”、“macos”、“linux”,或用于随机选择的数组
  • locale(字符串或数组)——浏览器区域设置,例如“en-US”或 ["en-US", "en-GB"]
  • fingerprint(对象)——高级指纹覆盖设置(大多数用户可跳过此项)
隐私
  • blockWebrtc(布尔值)——屏蔽 WebRTC,防止 IP 泄漏
  • blockWebgl(布尔值)——屏蔽 WebGL 指纹识别
  • blockImages(布尔值)——屏蔽图片加载(也能提升速度)
性能
  • enableCache(布尔值)——启用浏览器磁盘缓存
  • blockImages(布尔值)——已在“隐私”中介绍,在此说明其提升速度的作用
网络
  • proxy(字符串或对象)——代理 URL,例如 "http://user:pass@host:port" 或 {"server":"...","username":"...","password":"..."}
  • geoip(字符串或布尔值)——设为 true 时根据代理 IP 自动推断,也可以填写国家代码,例如 "US"
行为
  • humanize(布尔值或数字)——设为 true 时使用默认的类人延迟,也可以设置数字(0.5-2.0)来控制速度
高级(仅在用户提出要求时提供)
  • addons(字符串[])——要加载的 Firefox 扩展路径
  • excludeAddons(字符串[])——要跳过的内置扩展
  • firefoxUserPrefs(Record)——原始 Firefox about:config 首选项
  • args(字符串[])——额外的浏览器启动参数
  • fonts(字符串[])——自定义字体列表
  • customFontsOnly(布尔值)——仅使用自定义字体
  • screen(对象)——{minWidth, maxWidth, minHeight, maxHeight}
  • window([width, height])——固定窗口尺寸
  • ffVersion(数字)——目标 Firefox 版本
  • headless(布尔值或 "virtual")——无头模式(不建议用于反检测)
  • mainWorldEval(布尔值)——启用主世界 JavaScript eval
  • executablePath(字符串)——自定义 camoufox 二进制文件路径
  • env(Record)——浏览器进程的环境变量
  • virtualDisplay(字符串)——虚拟显示配置(仅限 Linux)
  • disableCoop(布尔值)——禁用 Cross-Origin-Opener-Policy 标头
  • debug(布尔值)——启用调试日志

步骤 2:询问保存位置

使用 AskUserQuestion 提供两个选项:

  1. browse.json ——向项目的 browse.json 添加 "camoufox" 配置段。每当使用 --runtime camoufox 时都会自动应用。
  2. 命名配置文件 ——保存到 .browse/camoufox-profiles/<name>.json。使用 --camoufox-profile <name> 加载。适合按场景配置(例如“google”、“scrape”、“stealth”)。

如果用户选择命名配置文件,询问配置文件名称。

步骤 3:生成并写入文件

如果是 browse.json

先读取现有的 browse.json(如果存在)。将新的 camoufox 键合并进去。写入结果:

{
  "camoufox": {
    "geoip": true,
    "humanize": true
  }
}
如果是命名配置文件

如有需要,创建目录 .browse/camoufox-profiles/。仅写入配置对象:

{
  "geoip": true,
  "humanize": true,
  "os": "windows"
}

步骤 4:展示用法

写入文件后,准确告知用户如何使用。

如果是 browse.json:

Run: browse --runtime camoufox goto <url>
The camoufox section is applied automatically.

如果是命名配置文件:

Run: browse --runtime camoufox --camoufox-profile <name> goto <url>

务必说明:“--camoufox-profile 标志仅在启动新服务时生效。如果服务已经在运行,请先使用 browse stop 停止服务。”

所有 CamoufoxConfig 选项

所有键在 JSON 中均使用 camelCase。它们会自动映射为 camoufox-js 内部使用的 snake_case。

键类型描述
osstring or string[]目标 OS 指纹
blockImagesboolean阻止加载图片
blockWebrtcboolean阻止 WebRTC
blockWebglboolean阻止 WebGL
disableCoopboolean禁用 COOP 标头
geoipstring or booleanGeoIP 欺骗(true 或国家/地区代码)
humanizeboolean or number类人延迟(true 或速度系数)
localestring or string[]浏览器区域设置
addonsstring[]Firefox 插件路径
fontsstring[]自定义字体
customFontsOnlyboolean仅使用自定义字体
screenobject屏幕尺寸范围({minWidth, maxWidth, minHeight, maxHeight})
window[number, number]固定窗口尺寸
fingerprintobject指纹覆盖项
ffVersionnumberFirefox 版本
headlessboolean or "virtual"无头模式
mainWorldEvalboolean主世界求值
firefoxUserPrefsRecordFirefox about:config 首选项
proxystring or object代理配置
enableCacheboolean启用磁盘缓存
debugboolean调试日志
excludeAddonsstring[]要排除的插件
executablePathstring自定义浏览器路径
argsstring[]额外的浏览器参数
envRecord环境变量
virtualDisplaystring虚拟显示器(Linux)

护栏

  • 生成配置前,始终先使用 AskUserQuestion。不要擅自假定用户偏好。
  • 所有生成的 JSON 均使用 camelCase 键(CLI 会处理 snake_case 映射)。
  • 切勿覆盖现有 browse.json 中 camoufox 键以外的字段。
  • 切勿在向用户显示的输出中包含代理凭据。仅将凭据写入文件。
  • 除预设默认值外,不要包含用户未要求或确认的选项。

评论

支持 Markdown