Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

steel-browser

JavaScriptのレンダリングが必要なページ、フォームの入力・送信、ライブページのスクリーンショット/PDF取得、CAPTCHA突破、ログインフロー、セッションを維持した複数ステップのブラウザ操作など、WebFetchやcurlでは対応できないWebタスクに使用するスキル。実際のクラウドブラウザを起動してJavaScriptを実行し、Cookie管理やボタンクリック、アンチボット対策にも対応するため、ユーザーがWebタスクの「実行」を求めている場面でトリガーする。単純なGETで取得できる静的ページ、ローカルホストや非公開ネットワーク、ユーザー自身が実行するブラウザ自動化コードの作成、またはブラウザツールに関する概念的な質問には使用しない。

description の原文を見る

>- Use this skill for any web task where WebFetch or curl would fail or be insufficient — pages that require JavaScript to render, forms to fill and submit, screenshots or PDFs of live pages, CAPTCHA/bot-protection bypass, login flows, and multi-step browser navigation with persistent session state. WebFetch returns empty HTML for JS-rendered pages; this skill runs a real cloud browser that executes JavaScript, maintains cookies, clicks buttons, and handles anti-bot measures. Trigger when the user wants you to actually perform a web task (visit, interact, extract, capture) rather than just write code for it. Skip only for: static pages a simple GET can fetch, localhost or private-network targets, writing browser automation code the user will run themselves, or conceptual questions about browser tools.

SKILL.md 本文

Steel

AI エージェント向けクラウドブラウザインフラストラクチャ。Steel は、ページナビゲーション、フォーム入力、CAPTCHA 解決、コンテンツ抽出ができる実際のブラウザをエージェントに提供します。

Steel がまだインストールされていない場合、以下のセットアップステップを自動的に実行してください。ユーザーにはたった 1 つのことをお願いしてください:認証リンクをクリックすることです。

目標:Steel CLI をインストール、認証、動作確認を完了させます。

完了条件:steel scrape https://example.com がページコンテンツを正常に返します。

セットアップ

ステップ 1:Steel CLI をインストール

steel が既に利用可能かチェック:

steel --version

コマンドが見つからない場合はインストール:

curl -sSf https://setup.steel.dev/install.sh | sh
export PATH="$HOME/.steel/bin:$PATH"

ステップ 2:認証

STEEL_API_KEY が既に環境に設定されている場合、このステップをスキップしてください。

それ以外の場合は実行:

steel login

URL が出力されます。ユーザーにリンクをクリックして認証を完了するようお願いしてください。 コマンドが終了するまで待機してください。ユーザーが承認すると「Authentication successful」と表示されます。

ステップ 3:確認

steel scrape https://example.com

これは Markdown コンテンツを返すはずです。返されれば、セットアップは完了です。


適切なツールを選択

タスクツール
ページからテキスト/HTML を抽出steel scrape <url>
スクリーンショットを取得steel screenshot <url>
PDF を生成steel pdf <url>
複数ステップのインタラクション、ログイン、フォーム、JS 多用ページsteel browser セッション
アンチボット / CAPTCHA サイトsteel browser --stealth セッション

ページコンテンツのみが必要な場合は steel scrape で開始してください。 ページがインタラクションまたは JavaScript レンダリングを必要とする場合は steel browser にエスカレートしてください。

API ツール(ワンショット、セッション不要)

# スクレイプ — デフォルトで Markdown を返す(構造化出力には --json フラグを使用)
steel scrape https://example.com
steel scrape https://example.com --format html
steel scrape https://example.com --use-proxy

# スクリーンショット
steel screenshot https://example.com
steel screenshot https://example.com --full-page

# PDF
steel pdf https://example.com

インタラクティブなブラウザセッション

コアワークフロー

  1. 開始:名前付きセッションを開始
  2. ナビゲート:ターゲット URL に移動
  3. スナップショット:ページの状態と要素参照を取得
  4. インタラクト:スナップショットからの @eN 参照を使用
  5. 再スナップショット:ナビゲーションまたは DOM 変更後は毎回実行(参照は期限切れ)
  6. 停止:完了時にセッションを終了
steel browser start --session my-task --session-timeout 3600000
steel browser navigate https://example.com --session my-task
steel browser snapshot -i --session my-task
steel browser fill @e3 "search term" --session my-task
steel browser click @e7 --session my-task
steel browser wait --load networkidle --session my-task
steel browser snapshot -i --session my-task
steel browser stop --session my-task

ルール:

  • すべてのコマンドで同じ --session <name> を使用してください。
  • 新しいスナップショットなしで @eN 参照を使用しないでください。ナビゲーションまたは DOM 変更後は参照の有効期限が切れます。
  • CSS セレクタより snapshot -i からの要素参照を優先してください。大きい DOM には -c を、深さを制限するには -d 3 を使用してください。
  • batch を使用して複数のコマンドを 1 つの呼び出しに統合して効率化してください。

バッチ実行

複数のコマンドを 1 つの CLI 呼び出しで実行します。各クォート文字列は 1 つのコマンドです。

# ナビゲートとスナップショットを 1 回の呼び出しで実行
steel browser batch "navigate https://example.com" "snapshot -i" --session my-task

# アクション + 再スナップショット(別のスナップショット呼び出し不要)
steel browser batch "click @e3" "snapshot -i" --session my-task

# 中間スナップショットなしで複数のアクションを実行
steel browser batch "fill @e1 Seoul" "fill @e2 Tokyo" "click @e5" --session my-task

# 最初のエラーで停止:--bail
steel browser batch "click @e3" "snapshot -i" --session my-task --bail

以下の場合に batch を使用してください:

  • アクション後にスナップショットが必要な場合(最も一般的)
  • 複数のフォームフィールドを順序通り入力する場合
  • CLI 呼び出し回数を減らしたい場合

1 つのコマンド出力を読んで次を決める必要がある場合は、別のコマンドを使用してください。

セッションライフサイクル

steel browser start --session <name> --session-timeout 3600000
steel browser start --session <name> --stealth
steel browser start --session <name> --proxy <url>
steel browser sessions
steel browser live --session <name>
steel browser stop --session <name>
steel browser stop --all

ナビゲーションと検査

steel browser navigate <url> --session <name>
steel browser snapshot                         # フルアクセシビリティツリー
steel browser snapshot -i                      # インタラクティブ要素 + 参照
steel browser snapshot -c                      # コンパクト出力
steel browser snapshot -i -c -d 3             # フラグを組み合わせ
steel browser get url --session <name>
steel browser get title --session <name>
steel browser get text @e1 --session <name>
steel browser back --session <name>
steel browser forward --session <name>
steel browser reload --session <name>

インタラクション

steel browser click @e1 --session <name>
steel browser dblclick @e1 --session <name>
steel browser fill @e2 "value" --session <name>
steel browser type @e2 "value" --delay 50 --session <name>
steel browser press Enter --session <name>
steel browser press Control+a --session <name>
steel browser hover @e1 --session <name>
steel browser select @e1 "option" --session <name>
steel browser scroll down 500 --session <name>
steel browser scrollintoview @e1 --session <name>
steel browser drag @e1 @e2 --session <name>
steel browser tab new --session <name>
steel browser tab switch 2 --session <name>
steel browser tab list --session <name>
steel browser tab close --session <name>

同期

steel browser wait --load networkidle --session <name>
steel browser wait --selector ".loaded" --state visible --session <name>
steel browser wait -t "Success" --session <name>
steel browser wait -u "/dashboard" --session <name>

抽出

steel browser get text @e1 --session <name>
steel browser get html @e1 --session <name>
steel browser get value @e1 --session <name>
steel browser get attr @e1 href --session <name>
steel browser get count ".item" --session <name>
steel browser content --session <name>
steel browser eval "document.querySelectorAll('a').length" --session <name>
steel browser find ".item" --session <name>

スクリーンショット(セッション内)

steel browser screenshot -o ./page.png --session <name>
steel browser screenshot --full --session <name>
steel browser screenshot --selector "#chart" --session <name>

トップレベルの steel screenshot <url>steel pdf <url> はステートレスなワンショット API 呼び出しです。--session または -o フラグを取りません。セッション内キャプチャの場合は steel browser screenshot を使用してください。

クッキーとストレージ

steel browser cookies --session <name>
steel browser cookies set <name> <value> --session <name>
steel browser cookies set <name> <value> --domain .example.com
steel browser cookies clear --session <name>
steel browser storage session --session <name>
steel browser storage session set authToken "abc123" --session <name>

ブラウザ設定

steel browser set viewport 1920 1080 --session <name>
steel browser set geo 37.7749 -122.4194 --session <name>
steel browser set offline on --session <name>
steel browser set useragent "Custom UA" --session <name>

CAPTCHA

steel browser start --session <name> --stealth
steel browser captcha status --wait --session <name>
steel browser captcha solve --session <name>

機能ギャップを埋める eval

直接コマンドが存在しない場合、steel browser eval "<js>" --session <name> を使用してください。一般的な用途:ネットワークインターセプション、DOM 状態インジェクション、複雑なフォームウィジェット。

存在しないコマンド

これらは試さないでください。失敗します。

存在しない代わりに使用
steel browser record / videosteel browser live でビューアー URL を取得
steel browser network / routefetch モンキーパッチで eval を使用
steel browser console / errorsconsole インターセプタで eval を使用
steel browser frameiframe contentDocument で eval を使用
steel browser tabs(複数形)steel browser tab list(単数形)
steel browser execute / runsteel browser eval
steel browser resizesteel browser set viewport W H
steel browser geolocationsteel browser set geo LAT LON
steel browser pdfトップレベルの steel pdf <url>

SDK 統合(プログラマティック)

CLI の代わりにコードから Steel を使用する必要がある場合:

Python (Playwright)

pip install steel-sdk playwright
from playwright.sync_api import sync_playwright
from steel import Steel
import os

client = Steel(steel_api_key=os.environ["STEEL_API_KEY"])
session = client.sessions.create()

try:
    pw = sync_playwright().start()
    browser = pw.chromium.connect_over_cdp(session.websocket_url)
    page = browser.contexts[0].pages[0]

    page.goto("https://example.com")
    print(page.title())
finally:
    browser.close()
    pw.stop()
    client.sessions.release(session.id)

Node.js (Puppeteer)

npm install steel-sdk puppeteer
import Steel from 'steel-sdk';
import puppeteer from 'puppeteer';

const client = new Steel({ steelAPIKey: process.env.STEEL_API_KEY });
const session = await client.sessions.create();

try {
  const browser = await puppeteer.connect({
    browserWSEndpoint: `${session.websocketUrl}?apiKey=${process.env.STEEL_API_KEY}`,
  });
  const page = await browser.newPage();
  await page.goto('https://example.com');
  console.log(await page.title());
  await browser.disconnect();
} finally {
  await client.sessions.release(session.id);
}

重要なパターン: セッションを作成 → CDP websocket URL 経由で接続 → 任意のブラウザライブラリを使用 → セッションをリリース。

トラブルシューティング

症状修正
steel: command not foundcurl -sSf https://setup.steel.dev/install.sh | sh && export PATH="$HOME/.steel/bin:$PATH"
Missing browser authsteel login またはを STEEL_API_KEY 環境変数を設定
SDK の認証エラーexport STEEL_API_KEY="your_key"
No running sessionセッション名を確認;steel browser stop --all してから再開
古い要素参照インタラクション前に steel browser snapshot -i を再実行
CAPTCHA がブロックsteel browser start --stealth --session <name>
セッションタイムアウト5分以上のタスクには --session-timeout 3600000 を追加

問題が発生した場合は、https://docs.steel.dev を参照するか、steel --help を実行してください。

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

詳細情報

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

Source: https://github.com/steel-dev/cli / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

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