Agent Skills by ALSEL
Anthropic ClaudeLLM・AI開発⭐ リポ 0品質スコア 50/100

camoufox-cli

ボット検出・CAPTCHA・アンチボット対策が施されたWebサイトへのアクセスが必要な場合に使用する、AIエージェント向けのアンチ検出ブラウザ自動化CLIおよびスキル集。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、Webアプリのテスト、フィンガープリントチェックの回避が必要なあらゆるブラウザ操作タスクの自動化に対応します。

description の原文を見る

Anti-detect browser automation CLI & Skills for AI agents. Use when the user needs to interact with websites with bot detection, CAPTCHAs, or anti-bot blocks, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task that requires bypassing fingerprint checks.

SKILL.md 本文

Camoufox を使用したアンチディテクト ブラウザ オートメーション

何が異なるのか

camoufox-cli は Camoufox(アンチディテクト Firefox)上に構築されており、C++ レベルのフィンガープリント スプーフィングを備えています:

  • navigator.webdriver = false
  • 実際のブラウザプラグイン、ランダム化された canvas/WebGL/audio フィンガープリント
  • 実際の Firefox UA 文字列 -- Chromium オートメーションをブロックするサイトのボット検出をパス

ターゲット サイトにボット検出がある場合は、agent-browser の代わりに camoufox-cli を使用してください。

コアワークフロー

すべてのブラウザ オートメーションは次のパターンに従います:

  1. ナビゲート: camoufox-cli open <url>
  2. スナップショット: camoufox-cli snapshot -i (@e1, @e2 などの要素参照を取得)
  3. インタラクト: 参照を使用してクリック、入力、選択
  4. 再スナップショット: ナビゲーション後または DOM 変更後に新しい参照を取得
  5. クローズ: camoufox-cli close (タスクが完全に終了したときにブラウザを閉じます。ユーザーが後続の指示を持つ可能性がある場合はブラウザを開いたままにします)
camoufox-cli open https://example.com/form
camoufox-cli snapshot -i
# Output: - textbox "Email" [ref=e1]
#         - textbox "Password" [ref=e2]
#         - button "Submit" [ref=e3]

camoufox-cli fill @e1 "user@example.com"
camoufox-cli fill @e2 "password123"
camoufox-cli click @e3
camoufox-cli snapshot -i  # Check result

コマンド チェーン

コマンドは単一のシェル呼び出しで && でチェーンできます。ブラウザはバックグラウンド デーモン経由でコマンド間で永続化されるため、チェーンは安全で、個別の呼び出しより効率的です。

# open + snapshot をチェーン
camoufox-cli open https://example.com && camoufox-cli snapshot -i

# 複数のインタラクションをチェーン
camoufox-cli fill @e1 "user@example.com" && camoufox-cli fill @e2 "password123" && camoufox-cli click @e3

# ナビゲートしてキャプチャ
camoufox-cli open https://example.com && camoufox-cli screenshot page.png

チェーンするとき: 中間コマンドの出力を読む必要がない場合に && を使用してください (例:open + screenshot)。最初に出力を解析する必要がある場合は別々にコマンドを実行してください (例:スナップショットで参照を検出してから、それらの参照を使用してインタラクト)。

必須コマンド

# Navigation
camoufox-cli open <url>              # URL にナビゲート (デーモンがなければ開始)
camoufox-cli back                    # 戻る
camoufox-cli forward                 # 進む
camoufox-cli reload                  # ページをリロード
camoufox-cli url                     # 現在の URL を表示
camoufox-cli title                   # ページタイトルを表示
camoufox-cli close                   # ブラウザを閉じてデーモンを停止
camoufox-cli close --all             # すべてのセッションを閉じる

# Snapshot
camoufox-cli snapshot                # ページの完全な aria ツリー
camoufox-cli snapshot -i             # インタラクティブ要素のみ (推奨)
camoufox-cli snapshot -s "#selector" # CSS セレクタでスコープ

# Interaction (snapshot から @refs を使用)
camoufox-cli click @e1               # 要素をクリック
camoufox-cli fill @e1 "text"         # クリア + 入力に入力
camoufox-cli type @e1 "text"         # クリアなしで入力 (追加)
camoufox-cli select @e1 "option"     # ドロップダウン オプションを選択
camoufox-cli check @e1               # チェックボックスを切り替え
camoufox-cli hover @e1               # 要素にマウスオーバー
camoufox-cli press Enter             # キーボード キーを押す
camoufox-cli press "Control+a"       # キーの組み合わせ

# Data Extraction
camoufox-cli text @e1                # 要素のテキスト内容を取得
camoufox-cli text body               # すべてのページ テキストを取得 (CSS セレクタ)
camoufox-cli eval "document.title"   # JavaScript を実行

# Capture
camoufox-cli screenshot              # JSON としてスクリーンショット {"base64": "..."}
camoufox-cli screenshot page.png     # ファイルにスクリーンショット
camoufox-cli screenshot --full p.png # フルページ スクリーンショット
camoufox-cli pdf output.pdf          # ページを PDF として保存

# Scroll & Wait
camoufox-cli scroll down             # 500px 下にスクロール
camoufox-cli scroll up               # 500px 上にスクロール
camoufox-cli scroll down 1000        # 1000px 下にスクロール
camoufox-cli wait @e1                # 要素が表示されるのを待つ
camoufox-cli wait 2000               # ミリ秒待機
camoufox-cli wait --url "*/dashboard" # URL パターンを待機

# Tabs
camoufox-cli tabs                    # 開いているタブを一覧表示
camoufox-cli switch 2                # インデックスでタブに切り替え
camoufox-cli close-tab               # 現在のタブを閉じる

# Cookies & State
camoufox-cli cookies                 # クッキーを JSON としてダンプ
camoufox-cli cookies import file.json # クッキーをインポート
camoufox-cli cookies export file.json # クッキーをエクスポート

# Sessions
camoufox-cli sessions                # アクティブなセッションを一覧表示
camoufox-cli --session work open <url> # 名前付きセッションを使用
camoufox-cli close --all             # すべてのセッションを閉じる

# Setup
camoufox-cli install                 # Camoufox ブラウザをダウンロード
camoufox-cli install --with-deps     # ブラウザ + システムライブラリをダウンロード (Linux)

一般的なパターン

フォーム送信

camoufox-cli open https://example.com/signup
camoufox-cli snapshot -i
camoufox-cli fill @e1 "Jane Doe"
camoufox-cli fill @e2 "jane@example.com"
camoufox-cli select @e3 "California"
camoufox-cli check @e4
camoufox-cli click @e5
camoufox-cli snapshot -i  # 送信結果を確認

データ抽出

camoufox-cli open https://example.com/products
camoufox-cli snapshot -i
camoufox-cli text @e5                # 特定の要素のテキストを取得
camoufox-cli eval "document.title"   # JS でページタイトルを取得
camoufox-cli screenshot results.png  # ビジュアル キャプチャ

クッキー管理 (ログイン を永続化)

# ログインしてクッキーをエクスポート
camoufox-cli open https://app.example.com/login
camoufox-cli snapshot -i
camoufox-cli fill @e1 "user"
camoufox-cli fill @e2 "pass"
camoufox-cli click @e3
camoufox-cli cookies export auth.json

# 将来のセッションで復元
camoufox-cli open https://app.example.com
camoufox-cli cookies import auth.json
camoufox-cli reload

クッキーだけでなく、サイトがデバイスの安定性も検証する長期間有効なアカウントの場合は、--persistent と組み合わせて、クッキーと一緒にフィンガープリントを固定してください。下記の「Persistent Identity」セクションを参照してください。

複数のタブ

camoufox-cli open https://site-a.com
camoufox-cli eval "window.open('https://site-b.com')"
camoufox-cli tabs                    # タブを一覧表示
camoufox-cli switch 1                # 2 番目のタブに切り替え
camoufox-cli snapshot -i

並列セッション

camoufox-cli --session s1 open https://site-a.com
camoufox-cli --session s2 open https://site-b.com
camoufox-cli sessions                # 両方を一覧表示
camoufox-cli --session s1 snapshot -i
camoufox-cli --session s2 snapshot -i

ビジュアル ブラウザ (デバッグ)

camoufox-cli --headed open https://example.com
camoufox-cli snapshot -i
camoufox-cli screenshot debug.png

セッション管理とクリーンアップ

複数のエージェントまたはオートメーションを同時に実行する場合は、競合を避けるために常に名前付きセッションを使用してください:

camoufox-cli --session agent1 open https://site-a.com
camoufox-cli --session agent2 open https://site-b.com
camoufox-cli sessions                  # アクティブなセッションを確認

リークされたプロセスを避けるために、完了したときにブラウザ セッションを常に閉じてください:

camoufox-cli close                     # デフォルト セッションを閉じる
camoufox-cli --session agent1 close    # 特定のセッションを閉じる
camoufox-cli close --all               # すべてのセッションを閉じる

以前のセッションが適切に閉じられなかった場合、デーモンはまだ実行中かもしれません。新しい作業を開始する前に camoufox-cli close を使用してクリーンアップしてください。

タイムアウトと遅いページ

一部のページ、特に動的コンテンツまたは高い JavaScript を持つページは、完全に読み込むのに時間がかかります。スナップショットを取得する前に明示的な待機を使用してください:

# 特定の要素が表示されるのを待つ
camoufox-cli wait @e1
camoufox-cli snapshot -i

# URL パターンを待機 (リダイレクト後に有用)
camoufox-cli wait --url "*/dashboard"
camoufox-cli snapshot -i

# 最後の手段として固定期間待機
camoufox-cli wait 3000
camoufox-cli snapshot -i

遅いページを処理する場合は、スナップショット取得前に常に待機してください。スナップショットを早すぎるタイミングで取得すると、要素が出力から欠落する可能性があります。

Ref ライフサイクル (重要)

Ref (@e1, @e2 など) は各スナップショット中に順序番号で割り当てられた 一時的な識別子 です。ページが変更されると無効になります。

必ず以下の後に再スナップショットしてください:

  • リンクまたはナビゲートするボタンをクリック
  • フォーム送信
  • 動的コンテンツ読み込み (ドロップダウン、モーダル、遅延読み込みコンテンツ)
  • 新しいコンテンツをトリガーするスクロール
# 正しい: ナビゲーション後に再スナップショット
camoufox-cli click @e5              # 新しいページにナビゲート
camoufox-cli snapshot -i            # 再スナップショット必須
camoufox-cli click @e1              # 新しい ref を使用

# 正しい: 動的変更後に再スナップショット
camoufox-cli click @e1              # ドロップダウンを開く
camoufox-cli snapshot -i            # ドロップダウン アイテムを表示
camoufox-cli click @e7              # アイテムを選択

# 間違い: スナップショットなしで ref を使用
camoufox-cli open https://example.com
camoufox-cli click @e1              # Ref がまだ存在しない!

# 間違い: ナビゲーション後に古い ref を使用
camoufox-cli click @e5              # ナビゲートして移動
camoufox-cli click @e3              # 古い REF - 間違った要素!

ナビゲーションまたはページ変更後に要素とインタラクトする前に、常に新しいスナップショットを取得してください。

トラブルシューティング

"Ref @eN not found"

Ref は無効になりました。新しい ref を取得するために再スナップショットしてください:

camoufox-cli snapshot -i

スナップショットに要素が表示されない

# 下にスクロールして要素を表示
camoufox-cli scroll down 1000
camoufox-cli snapshot -i

# または動的コンテンツを待機
camoufox-cli wait 2000
camoufox-cli snapshot -i

スナップショットに要素が多すぎる

# 特定のコンテナにスコープ
camoufox-cli snapshot -s "#main-content"
camoufox-cli snapshot -i -s "form.login"

ページが完全に読み込まれていない

# リダイレクト後に URL パターンを待機
camoufox-cli wait --url "*/dashboard"
camoufox-cli snapshot -i

# 最後の手段として固定期間待機
camoufox-cli wait 3000
camoufox-cli snapshot -i

グローバル フラグ

--session <name>       名前付きセッション (デフォルト: "default")
--headed               ブラウザ ウィンドウを表示 (デフォルト: headless)
--timeout <seconds>    デーモン アイドル タイムアウト (デフォルト: 1800)
--json                 人間が読める形式の代わりに JSON として出力
--persistent [path]    Persistent identity — 複数回のローンチ間でフィンガープリント + クッキーを再利用
                       (デフォルト パス: ~/.camoufox-cli/profiles/<session>)
--proxy <url>          プロキシ サーバー (http:// または https://; 認証: http://user:pass@host:port)
--no-geoip             自動 GeoIP スプーフィングを無効化 (--proxy で自動有効)
--locale <tag>         ブラウザ ロケールを強制 (例: "en-US" または "en-US,zh-CN")

Persistent Identity

デフォルトでは、毎回のローンチで新しいランダムなフィンガープリントが取得されます。--persistent [path] を追加して、複数回のローンチ間でフィンガープリント + クッキーを再利用してください。フィンガープリント/OS/canvas+font シードは初回ローンチで固定されます (ディレクトリを削除してリセット)。--locale とプロキシ由来のタイムゾーン/地政学情報は保存されますが、フラグを渡すたびにリフレッシュされます。--proxy / --no-geoip は保存されないため、毎回のローンチで渡してください。

使用するとき: 同じデバイスが複数回の訪問で同じフィンガープリントを見るべき場合 (アカウント バウンド タスク、平行独立アイデンティティ、またはクッキー import/export だけでは不十分で、サイトがデバイスの安定性もチェックする場合)。スキップする: ワンオフ スクレイピングまたはクイック デバッグの場合。

# 並列アイデンティティ、各々は独自のフィンガープリント + クッキーを持つ
camoufox-cli --session a --persistent ~/.camoufox-cli/profiles/alice open https://app.example.com
camoufox-cli --session b --persistent ~/.camoufox-cli/profiles/bob   open https://app.example.com

# アイデンティティをリセット: ディレクトリを削除するだけ
rm -rf ~/.camoufox-cli/profiles/alice

ドキュメント

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
bin-huang
リポジトリ
bin-huang/camoufox-cli
ライセンス
MIT
最終更新
不明

Source: https://github.com/bin-huang/camoufox-cli / ライセンス: MIT

関連スキル

OpenAILLM・AI開発⭐ リポ 6,054

agent-browser

AI エージェント向けのブラウザ自動化 CLI です。ウェブサイトとの対話が必要な場合に使用します。ページ遷移、フォーム入力、ボタンクリック、スクリーンショット取得、データ抽出、ウェブアプリのテスト、ブラウザ操作の自動化など、あらゆるブラウザタスクに対応できます。「ウェブサイトを開く」「フォームに記入する」「ボタンをクリックする」「スクリーンショットを取得する」「ページからデータを抽出する」「このウェブアプリをテストする」「サイトにログインする」「ブラウザ操作を自動化する」といった要求や、プログラマティックなウェブ操作が必要なタスクで起動します。

by JimmyLv
汎用LLM・AI開発⭐ リポ 1,982

anyskill

AnySkill — あなたのプライベート・スキルクラウド。GitHubを基盤としたリポジトリからエージェントスキルを管理、同期、動的にロードできます。自然言語でクラウドスキルを検索し、オンデマンドでプロンプトを自動ロード、カスタムスキルのアップロードと共有、スキルバンドルの一括インストールが可能です。OpenClaw、Antigravity、Claude Code、Cursorに対応しています。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 1,982

engram

AIエージェント向けの永続的なメモリシステムです。バグ修正、意思決定、発見、設定変更の後はmem_saveを使用してください。ユーザーが「覚えている」「記憶している」と言及した場合、または以前のセッションと重複する作業を開始する際はmem_searchを使用します。セッション終了前にmem_session_summaryを使用して、コンテキストを保持してください。

by LeoYeAI
汎用LLM・AI開発⭐ リポ 21,584

skyvern

AI駆動のブラウザ自動化により、任意のウェブサイトを自動化できます。フォーム入力、データ抽出、ファイルダウンロード、ログイン、複数ステップのワークフロー実行など、ユーザーがウェブサイトと連携する必要があるときに使用します。Skyvernは、LLMとコンピュータビジョンを活用して、未知のサイトも自動操作可能です。Python SDK、TypeScript SDK、REST API、MCPサーバー、またはCLIを通じて統合できます。

by Skyvern-AI
汎用LLM・AI開発⭐ リポ 1,149

pinchbench

PinchBenchベンチマークを実行して、OpenClawエージェントの実世界タスクにおけるパフォーマンスを評価できます。モデルの機能テスト、モデル間の比較、ベンチマーク結果のリーダーボード提出、またはOpenClawのセットアップがカレンダー、メール、リサーチ、コーディング、複数ステップのワークフローにどの程度対応しているかを確認する際に使用します。

by pinchbench
汎用LLM・AI開発⭐ リポ 4,693

openui

OpenUIとOpenUI Langを使用してジェネレーティブUIアプリを構築できます。これらはLLM生成インターフェースのためのトークン効率的なオープン標準です。OpenUI、@openuidev、ジェネレーティブUI、LLMからのストリーミングUI、AI向けコンポーネントライブラリ、またはjson-render/A2UIの置き換えについて述べる際に使用します。スキャフォルディング、defineComponent、システムプロンプト、Renderer、およびOpenUI Lang出力のデバッグに対応しています。

by thesysdev
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: bin-huang · bin-huang/camoufox-cli · ライセンス: MIT