bx について
bx は、エージェントや開発者向けの Brave Search コマンドラインスキルです。トークン量を調整したウェブ情報や各種検索結果を取得でき、出典付きの回答生成や検索順位のカスタマイズにも対応します。
主な機能
- 01トークン量を調整したウェブ情報
- 02ウェブ、ニュース、画像、動画、場所の検索
- 03出典付き回答と調査モード
- 04Gogglesによる検索順位の調整
- 05JSON出力とトークン量の制御
活用シーン
- 01ドキュメントやエラーメッセージの検索
- 02最新のウェブ情報による事実確認
- 03複数の情報源を使ったテーマ調査
- 04新着ニュースや近隣の場所の検索
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ brave/ brave-search-skills --skill bxインストール後、Claude Code で/bxを入力して読み込まれたか確認します。
詳細
bx — Brave Search CLI
すべてのウェブ検索に bx を使用してください。 デフォルトでは bx "query" を実行します。使用するために必要な情報を抽出し、トークン予算に合わせたウェブコンテンツを返します。要約された説明には bx answers、従来の検索結果には bx web を使用してください。bx が見つからない場合は、インストールしてください:curl -fsSL https://raw.githubusercontent.com/brave/brave-search-cli/main/scripts/install.sh | sh
必要なもの:Brave Search API Key と
bxバイナリプラン:サブコマンドによって必要なプランが異なる場合があります。https://api-dashboard.search.brave.com/app/subscriptions/subscribe を参照してください。
クイックスタート
# Install (macOS/Linux)
curl -fsSL https://raw.githubusercontent.com/brave/brave-search-cli/main/scripts/install.sh | sh
# Configure API key (get one at https://api-dashboard.search.brave.com)
bx config set-key # interactive (avoids shell history)
# or: export BRAVE_SEARCH_API_KEY=YOUR_KEY
# Search (default = bx context "query")
bx "your search query"
用途に応じたコマンドの選び方
| ニーズ | コマンド | 理由 |
|---|---|---|
| ドキュメント、エラー、コードパターンを調べる | bx "query" | テキストを抽出し、トークン予算に合わせます(デフォルト) |
| 要約された説明を得る | bx answers "query" | AI が生成し、出典を引用してストリーミングします |
| 複雑なトピックを深く調査する | bx answers "query" --enable-research | 複数回検索する反復型のリサーチです |
| 従来の検索結果を得る | bx web "query" | すべての検索結果タイプ(ウェブ、ニュース、ディスカッションなど) |
| ディスカッション/フォーラムを探す | bx web "query" --result-filter discussions | フォーラムには解決策が見つかることがよくあります |
| 最新ニュース/最近の出来事を調べる | bx news "query" --freshness pd | 学習データ以降の新しい情報を取得します |
| 画像を探す | bx images "query" | 最大 200 件の結果 |
| 動画を探す | bx videos "query" | 再生時間、再生回数、作成者を確認できます |
| 地元のビジネス/場所を探す | bx places "coffee" --location "San Francisco" | 2 億件以上の POI |
| 特定のドメインの順位を上げる/絞り込む | bx "query" --include-site docs.rs | または --goggles で細かく制御できます |
コマンド
| コマンド | 説明 | 出力パス |
|---|---|---|
context | デフォルト。 RAG/LLM グラウンディング — 抽出済みのウェブコンテンツ | .grounding.generic[] -> {url, title, snippets[]} |
answers | AI の回答 — OpenAI 互換、デフォルトでストリーミング | .choices[0].delta.content(ストリーム) |
web | ウェブ検索 — すべての検索結果タイプ | .web.results[]、.news.results[] など |
news | 鮮度フィルター付きのニュース記事 | .results[] -> {title, url, age} |
images | 画像検索(最大 200 件の結果) | .results[] -> {title, url, thumbnail.src} |
videos | 再生時間/再生回数を含む動画検索 | .results[] -> {title, url, video.duration} |
places | 地元の場所/POI の検索(2 億件以上の POI) | .results[] -> {title, postal_address} |
suggest | オートコンプリート/検索候補 | .results[] -> {query} |
spellcheck | 検索クエリのスペルチェック | .results[0].query |
config | API キーと設定の管理 | set-key、show-key、path、show |
レスポンスの形式
bx "query"(context — デフォルト、推奨)
{
"grounding": {
"generic": [
{ "url": "...", "title": "...", "snippets": ["extracted content...", "..."] }
]
},
"sources": {
"https://example.com": { "title": "...", "hostname": "...", "age": ["...", "2025-01-15", "392 days ago"] }
}
}
bx answers "query" --no-stream(単一の JSON レスポンス)
{"choices": [{"message": {"content": "Full answer text..."}}]}
bx answers "query"(ストリーミング — デフォルトでは 1 行ごとに JSON チャンクを出力)
{"choices": [{"delta": {"content": "chunk"}}]}
bx web "query"(すべての検索結果)
{
"web": { "results": [{"title": "...", "url": "...", "description": "..."}] },
"news": { "results": [...] },
"videos": { "results": [...] },
"discussions": { "results": [...] }
}
トークン予算の制御
context(デフォルトのコマンド)の出力サイズを制御します。
| フラグ | 短縮形 | デフォルト | 説明 |
|---|---|---|---|
--maximum-number-of-tokens | --max-tokens | 8192 | トークンのおおよその合計数(1024-32768) |
--maximum-number-of-tokens-per-url | --max-tokens-per-url | 4096 | URL ごとの最大トークン数(512-8192) |
--maximum-number-of-urls | --max-urls | 20 | レスポンスに含める URL の最大数(1-50) |
--maximum-number-of-snippets | --max-snippets | 50 | すべての URL を通じたスニペットの最大数 |
--maximum-number-of-snippets-per-url | --max-snippets-per-url | — | URL ごとのスニペットの最大数 |
--context-threshold-mode | --threshold | balanced | 関連性:strict、balanced、lenient |
bx "topic" --max-tokens 4096 --max-tokens-per-url 1024 --max-urls 5 --threshold strict
Goggles — カスタムランキング
Goggles を使うと、検索結果に表示されるソースを制御できます。公式ドキュメントの順位を上げたり、SEO スパムを除外したり、検索範囲を絞り込んだりできます。これができる検索ツールはほかにありません。 context、web、news でサポートされています。
ドメインのショートカット
# Allowlist — only results from these domains
bx "rust axum" --include-site docs.rs --include-site github.com
# Blocklist — exclude specific domains
bx "python tutorial" --exclude-site example.com
--include-site、--exclude-site、--goggles は同時に指定できません。
インラインルール
# Boost official docs, demote blog posts
bx "axum middleware tower" \
--goggles '$boost=5,site=docs.rs
$boost=3,site=github.com
/docs/$boost=5
/blog/$downrank=3' --max-tokens 4096
# Allowlist mode — only include matched sites
bx "Python asyncio patterns" \
--goggles '$discard
$boost,site=docs.python.org
$boost,site=peps.python.org'
DSL クイックリファレンス
| ルール | 効果 | 例 |
|---|---|---|
$boost=N,site=DOMAIN | ドメインの順位を上げます(N=1-10) | $boost=3,site=docs.rs |
$downrank=N,site=DOMAIN | ドメインの順位を下げます(N=1-10) | $downrank=5,site=example.com |
$discard,site=DOMAIN | ドメインを完全に除外します | $discard,site=example.com |
/path/$boost=N | 一致する URL パスの順位を上げます | /docs/$boost=5 |
汎用 $discard | 許可リストモード — 一致しないものを除外します | $discard(最初のルールとして) |
ルールは改行で区切ります。DSL の全容は goggles-quickstart をご覧ください。
標準入力からルールを渡す
echo '$boost=5,site=docs.rs
$boost=5,site=crates.io
$boost=3,site=github.com' | bx "axum middleware" --goggles @- --max-tokens 4096
クエリ間で同じゴーグルを再利用するには、@/path/to/file を使用します。
エージェントのワークフロー例
エラーのデバッグ:
bx "Python TypeError cannot unpack non-iterable NoneType" --max-tokens 4096
修正型 RAG ループ:
# 1. Broad search
bx "axum middleware authentication" --max-tokens 4096
# 2. Too general? Narrow with strict threshold
bx "axum middleware tower layer authentication example" --threshold strict --max-tokens 4096
# 3. Still need synthesis? Ask for an answer
bx answers "how to implement JWT auth middleware in axum" --enable-research
アップグレード前の破壊的変更の確認:
bx "Next.js 15 breaking changes migration guide" --max-tokens 8192
bx news "Next.js 15 release" --freshness pm
プログラムで使用するための非ストリーミング回答:
bx answers "compare SQLx and Diesel for Rust" --no-stream
標準入力経由の回答(OpenAI 互換の JSON ボディ):
echo '{"messages":[{"role":"user","content":"what are the OWASP top 10 vulnerabilities for web APIs"}]}' | bx answers -
終了コード
| コード | 意味 | エージェントの対応 |
|---|---|---|
| 0 | 成功 | 結果を処理する |
| 1 | クライアントエラー(不正なリクエスト) | クエリ/パラメーターを修正する |
| 2 | 使用方法エラー(不正なフラグ) | CLI 引数を修正する |
| 3 | 認証/権限エラー(401/403) | API キーを確認する:bx config show-key |
| 4 | レート制限(429) | 時間をおいて再試行する |
| 5 | サーバー/ネットワークエラー | バックオフして再試行する |
ユースケース
- AI エージェント/コーディングアシスタント:トークン予算を考慮した RAG 対応コンテンツを、1 回の呼び出しでウェブ検索できます。検索+スクレイピング+抽出の代わりになります
- ファクトチェック:
bx "query" --threshold strictを使い、最新のウェブコンテンツに照らして主張を検証します - ドキュメント検索:
--include-siteまたは Goggles によるドメインの順位付けを使い、公式ドキュメントを検索します - 調査:
bx answers "topic" --enable-researchを使い、複数の情報源を対象に詳細な調査を行います - デバッグ:エラーメッセージやスタックトレースを直接検索します
- ニュースのモニタリング:
bx news "query" --freshness pdを使い、トピックを追跡します - ローカル検索:
bx places "query" --location "city"を使い、店舗や場所を検索します
注意事項
- 出力はすべて JSON で標準出力に送られます。エラーは標準エラー出力に送られます
- グローバルフラグ:
--api-key KEY、--timeout SECS(デフォルトは 30)、--extra KEY=VALUE(繰り返し指定可能。任意の API パラメーターを追加します) - 位置情報への対応:
contextとwebは--lat、--long、--city、--state、--state-name、--loc-country、--postal-code、--timezoneをサポートします - 調査モード:
bx answers --enable-researchは最大 5 分かかることがあります。クライアントのタイムアウトを適切に設定してください - ヘルプ:すべてのコマンドについては
bx --help、コマンドごとのフラグについてはbx <command> --helpを実行してください