browse-config について
browse-configは、browse CLI向けのCamoufox設定を作成するスキルです。プリセットまたは個別の設定を選び、他の項目を保持しながらbrowse.jsonや名前付きプロファイルに保存できます。
主な機能
- 01ステルス・高速・Google-safeのプリセット
- 02カスタム項目の対話的な選択
- 03browse.jsonまたはプロファイルへの保存
- 04他の設定を保つマージ
- 05Camoufoxの起動方法の案内
活用シーン
- 01保護されたサイトのスクレイピング設定
- 02スクレイピング時のリソース読み込みを抑制
- 03Google検索用のブラウザ設定
インストール
コマンドをコピーしてターミナルで実行します。
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 を使って各オプショングループについて確認します。一度に 1 つのグループを提示します。
アイデンティティ
os(文字列または配列)-- 対象 OS のフィンガープリント:「windows」、「macos」、「linux」、またはランダム選択用の配列locale(文字列または配列)-- ブラウザーのロケール。例:「en-US」または ["en-US", "en-GB"]fingerprint(オブジェクト)-- 高度なフィンガープリントの上書き設定(ほとんどのユーザーは設定不要です)
プライバシー
blockWebrtc(ブール値)-- IP リークを防ぐために WebRTC をブロックしますblockWebgl(ブール値)-- WebGL フィンガープリンティングをブロックしますblockImages(ブール値)-- 画像の読み込みをブロックします(速度も向上します)
パフォーマンス
enableCache(ブール値)-- ブラウザーのディスクキャッシュを有効にしますblockImages(ブール値)-- プライバシーの項目でも説明済みです。ここでは速度が向上する点に触れます
ネットワーク
proxy(文字列またはオブジェクト)-- "http://user:pass@host:port" のようなプロキシ URL、または{"server":"...","username":"...","password":"..."}geoip(文字列またはブール値)-- プロキシ IP から自動判定する場合は true、または "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 評価を有効にしますexecutablePath(文字列)-- カスタム camoufox バイナリーのパスenv(Record)-- ブラウザープロセスの環境変数virtualDisplay(文字列)-- 仮想ディスプレイの設定(Linux のみ)disableCoop(ブール値)-- Cross-Origin-Opener-Policy ヘッダーを無効にしますdebug(ブール値)-- デバッグログを有効にします
ステップ 2:保存先を確認する
AskUserQuestion を使って、次の 2 つのオプションを提示します。
- browse.json -- プロジェクトの
browse.jsonに"camoufox"セクションを追加します。--runtime camoufoxを使うたびに自動で適用されます。 - 名前付きプロファイル --
.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 にマッピングされます。
| キー | 型 | 説明 |
|---|---|---|
os | string or string[] | 対象 OS のフィンガープリント |
blockImages | boolean | 画像の読み込みをブロックします |
blockWebrtc | boolean | WebRTC をブロックします |
blockWebgl | boolean | WebGL をブロックします |
disableCoop | boolean | COOP ヘッダーを無効にします |
geoip | string or boolean | GeoIP のスプーフィング(true または国コード) |
humanize | boolean or number | 人間らしい遅延(true または速度係数) |
locale | string or string[] | ブラウザーのロケール |
addons | string[] | Firefox アドオンのパス |
fonts | string[] | カスタムフォント |
customFontsOnly | boolean | カスタムフォントのみを使用します |
screen | object | 画面サイズの範囲({minWidth, maxWidth, minHeight, maxHeight}) |
window | [number, number] | 固定ウィンドウサイズ |
fingerprint | object | フィンガープリントの上書き設定 |
ffVersion | number | Firefox のバージョン |
headless | boolean or "virtual" | ヘッドレスモード |
mainWorldEval | boolean | メインワールドの eval |
firefoxUserPrefs | Record | Firefox の about:config 設定 |
proxy | string or object | プロキシ設定 |
enableCache | boolean | ディスクキャッシュを有効にします |
debug | boolean | デバッグログ |
excludeAddons | string[] | 除外するアドオン |
executablePath | string | カスタムブラウザーパス |
args | string[] | ブラウザーの追加引数 |
env | Record | 環境変数 |
virtualDisplay | string | 仮想ディスプレイ(Linux) |
ガードレール
- 設定を生成する前に、必ず AskUserQuestion を使用してください。ユーザーの好みを推測してはいけません。
- 生成するすべての JSON では camelCase キーを使用してください(CLI が snake_case へのマッピングを処理します)。
camoufoxキー以外の既存の browse.json フィールドを上書きしてはいけません。- ユーザーに表示する出力にプロキシの認証情報を含めてはいけません。認証情報はファイルにのみ書き込んでください。
- プリセットのデフォルト値を除き、ユーザーが要求または確認していないオプションを含めてはいけません。