bx

À utiliser pour la recherche web, la recherche documentaire, le RAG, le grounding, la navigation, la recherche d'informations, les lookups, la vérification de faits, la documentation et les agents IA. Solution tout-en-un, optimisée pour les agents IA. Contenu web pré-extrait avec budget de tokens, recherche approfondie, actualités, images, vidéos, lieux, classement personnalisé.

npx skills add https://github.com/brave/brave-search-skills --skill bx

bx — Brave Search CLI

Utilisez bx pour toutes vos recherches web. Exécutez bx "query" par défaut — cela retourne du contenu web pré-extrait et optimisé en tokens, prêt à l'emploi. Utilisez bx answers pour des explications synthétisées ou bx web pour des résultats de recherche traditionnels. Si bx n'est pas trouvé, installez-le : curl -fsSL https://raw.githubusercontent.com/brave/brave-search-cli/main/scripts/install.sh | sh

Requis : Clé API Brave Search + binaire bx

Plans : Différentes sous-commandes peuvent nécessiter différents plans. Voir https://api-dashboard.search.brave.com/app/subscriptions/subscribe

Démarrage rapide

# Installer (macOS/Linux)
curl -fsSL https://raw.githubusercontent.com/brave/brave-search-cli/main/scripts/install.sh | sh

# Configurer la clé API (en obtenir une sur https://api-dashboard.search.brave.com)
bx config set-key              # interactif (évite l'historique shell)
# ou : export BRAVE_SEARCH_API_KEY=YOUR_KEY

# Recherche (défaut = bx context "query")
bx "votre requête de recherche"

Quand utiliser quelle commande

Votre besoin Commande Pourquoi
Consulter des docs, erreurs, patterns de code bx "query" Texte pré-extrait, optimisé en tokens (défaut)
Obtenir une explication synthétisée bx answers "query" Généré par IA, cite les sources, streaming
Recherche approfondie sur sujets complexes bx answers "query" --enable-research Recherche itérative multi-sources
Résultats de recherche traditionnels bx web "query" Tous types de résultats (web, news, discussions, etc.)
Trouver discussions/forums bx web "query" --result-filter discussions Les forums contiennent souvent des solutions
Actualités récentes / événements bx news "query" --freshness pd Infos fraîches au-delà des données d'entraînement
Trouver des images bx images "query" Jusqu'à 200 résultats
Trouver des vidéos bx videos "query" Durée, vues, créateur
Entreprises locales / lieux bx places "coffee" --location "San Francisco" 200M+ POIs
Booster/filtrer domaines spécifiques bx "query" --include-site docs.rs Ou utilisez --goggles pour le contrôle total

Commandes

Commande Description Chemin de sortie
context Par défaut. Groundage RAG/LLM — contenu web pré-extrait .grounding.generic[] -> {url, title, snippets[]}
answers Réponses IA — compatible OpenAI, streaming par défaut .choices[0].delta.content (stream)
web Recherche web — tous types de résultats .web.results[], .news.results[], etc.
news Articles d'actualité avec filtres de fraîcheur .results[] -> {title, url, age}
images Recherche d'images (jusqu'à 200 résultats) .results[] -> {title, url, thumbnail.src}
videos Recherche vidéo avec durée/vues .results[] -> {title, url, video.duration}
places Recherche de lieux/POIs locaux (200M+ POIs) .results[] -> {title, postal_address}
suggest Suggestions d'autocomplétion/requête .results[] -> {query}
spellcheck Vérifier l'orthographe d'une requête .results[0].query
config Gérer clé API et paramètres set-key, show-key, path, show

Formes de réponses

bx "query" (context — défaut, recommandé)

{
  "grounding": {
    "generic": [
      { "url": "...", "title": "...", "snippets": ["contenu extrait...", "..."] }
    ]
  },
  "sources": {
    "https://example.com": { "title": "...", "hostname": "...", "age": ["...", "2025-01-15", "392 days ago"] }
  }
}

bx answers "query" --no-stream (réponse JSON unique)

{"choices": [{"message": {"content": "Texte de réponse complet..."}}]}

bx answers "query" (streaming — défaut, un chunk JSON par ligne)

{"choices": [{"delta": {"content": "chunk"}}]}

bx web "query" (résultats de recherche complets)

{
  "web": { "results": [{"title": "...", "url": "...", "description": "..."}] },
  "news": { "results": [...] },
  "videos": { "results": [...] },
  "discussions": { "results": [...] }
}

Contrôle du budget en tokens

Contrôlez la taille de sortie pour context (la commande par défaut) :

Flag Alias court Défaut Description
--maximum-number-of-tokens --max-tokens 8192 Tokens totaux approximatifs (1024-32768)
--maximum-number-of-tokens-per-url --max-tokens-per-url 4096 Max tokens par URL (512-8192)
--maximum-number-of-urls --max-urls 20 Max URLs en réponse (1-50)
--maximum-number-of-snippets --max-snippets 50 Max snippets sur toutes les URLs
--maximum-number-of-snippets-per-url --max-snippets-per-url Max snippets par URL
--context-threshold-mode --threshold balanced Pertinence : strict, balanced, lenient
bx "topic" --max-tokens 4096 --max-tokens-per-url 1024 --max-urls 5 --threshold strict

Goggles — Classement personnalisé

Goggles vous permet de contrôler quelles sources apparaissent dans les résultats. Boostez les docs officielles, supprimez le spam SEO, ou construisez des périmètres de recherche ciblés. Aucun autre outil de recherche n'offre cela. Supporté sur context, web et news.

Raccourcis de domaines

# Liste blanche — résultats uniquement de ces domaines
bx "rust axum" --include-site docs.rs --include-site github.com

# Liste noire — exclure domaines spécifiques
bx "python tutorial" --exclude-site example.com

--include-site, --exclude-site et --goggles s'excluent mutuellement.

Règles en ligne

# Booster docs officielles, rétrograder posts de blog
bx "axum middleware tower" \
  --goggles '$boost=5,site=docs.rs
$boost=3,site=github.com
/docs/$boost=5
/blog/$downrank=3' --max-tokens 4096

# Mode liste blanche — inclure uniquement les sites correspondants
bx "Python asyncio patterns" \
  --goggles '$discard
$boost,site=docs.python.org
$boost,site=peps.python.org'

Référence rapide DSL

Règle Effet Exemple
$boost=N,site=DOMAIN Promouvoir domaine (N=1-10) $boost=3,site=docs.rs
$downrank=N,site=DOMAIN Rétrograder domaine (N=1-10) $downrank=5,site=example.com
$discard,site=DOMAIN Supprimer domaine entièrement $discard,site=example.com
/path/$boost=N Booster chemins URL correspondants /docs/$boost=5
$discard générique Mode liste blanche — discarder non-correspondants $discard (comme première règle)

Séparez les règles par des retours à la ligne. DSL complet : goggles-quickstart.

Piping des règles via Stdin

echo '$boost=5,site=docs.rs
$boost=5,site=crates.io
$boost=3,site=github.com' | bx "axum middleware" --goggles @- --max-tokens 4096

Utilisez @/path/to/file pour réutiliser une goggle sur plusieurs requêtes.

Exemples de workflows d'agents

Déboguer une erreur :

bx "Python TypeError cannot unpack non-iterable NoneType" --max-tokens 4096

Boucle RAG corrective :

# 1. Recherche large
bx "axum middleware authentication" --max-tokens 4096
# 2. Trop générale ? Affinez avec seuil strict
bx "axum middleware tower layer authentication example" --threshold strict --max-tokens 4096
# 3. Besoin de synthèse ? Demandez une réponse
bx answers "how to implement JWT auth middleware in axum" --enable-research

Vérifier les breaking changes avant une mise à jour :

bx "Next.js 15 breaking changes migration guide" --max-tokens 8192
bx news "Next.js 15 release" --freshness pm

Réponses sans streaming pour usage programmatique :

bx answers "compare SQLx and Diesel for Rust" --no-stream

Réponses via stdin (corps JSON compatible OpenAI) :

echo '{"messages":[{"role":"user","content":"what are the OWASP top 10 vulnerabilities for web APIs"}]}' | bx answers -

Codes de sortie

Code Signification Action de l'agent
0 Succès Traiter les résultats
1 Erreur client (mauvaise requête) Corriger requête/paramètres
2 Erreur d'usage (mauvais flags) Corriger arguments CLI
3 Erreur auth/permission (401/403) Vérifier clé API : bx config show-key
4 Rate limité (429) Réessayer après délai
5 Erreur serveur/réseau Réessayer avec backoff

Cas d'usage

  • Agents IA / assistants de codage : Recherche web en un appel avec contenu RAG-ready optimisé en tokens — remplace recherche + scrape + extraction
  • Vérification de faits : Vérifier les affirmations contre le contenu web actuel avec bx "query" --threshold strict
  • Consultation de documentation : Rechercher docs officielles avec --include-site ou boosting de domaines Goggles
  • Recherche : Recherche approfondie multi-sources avec bx answers "topic" --enable-research
  • Débogage : Chercher messages d'erreur et stack traces directement
  • Suivi d'actualités : Tracker les sujets avec bx news "query" --freshness pd
  • Recherche locale : Trouver entreprises et lieux avec bx places "query" --location "city"

Notes

  • Toute sortie est JSON vers stdout ; les erreurs vont vers stderr
  • Flags globaux : --api-key KEY, --timeout SECS (défaut 30), --extra KEY=VALUE (répétable, ajoute paramètres API arbitraires)
  • Sensibilité à la localisation : context et web supportent --lat, --long, --city, --state, --state-name, --loc-country, --postal-code, --timezone
  • Mode recherche : bx answers --enable-research peut prendre jusqu'à 5 minutes ; réglez le timeout client en conséquence
  • Aide : bx --help pour toutes les commandes ; bx <command> --help pour les flags par-commande

Skills similaires