jwynia/web-search-brave
Search the web using Brave Search API for fast, privacy-respecting results with localization, freshness filtering, and extra snippets. Use when you need web search results with country/language targeting or time-based filtering. Requires BRAVE_API_KEY. Keywords: brave, web search, localized search, privacy search, freshness filtering.
npx skills add https://github.com/jwynia/agent-skills --skill web-search-brave
Search the web using Brave's Search API. Returns web results with descriptions, optional extra snippets, and support for country/language targeting.
Note: This skill requires a Brave Search API key. For basic web search using the agent's built-in capability, see web-search. For AI-optimized results with relevance scores, see web-search-tavily.
Use this skill when:
Do NOT use this skill when:
web-search-tavily instead)Before using this skill, ensure:
Get a Brave Search API key at: https://brave.com/search/api/
Run a simple search:
deno run --allow-env --allow-net=api.search.brave.com scripts/search.ts "your search query"
Example with freshness filter:
deno run --allow-env --allow-net=api.search.brave.com scripts/search.ts "React 19 new features" --freshness pw
deno run --allow-env --allow-net=api.search.brave.com scripts/search.ts [options] "query"
| Option | Description | Default |
|--------|-------------|---------|
| --results <n> | Number of results to return (max 20) | 5 |
| --freshness <range> | Time filter: pd, pw, pm, or py | none |
| --country <code> | Country code for localized results (e.g., US, GB, DE) | none |
| --lang <code> | Search language (e.g., en, fr, de) | none |
| --safesearch <level> | Safe search: off, moderate, or strict | moderate |
| --extra-snippets | Include additional content snippets | false |
| --offset <n> | Pagination offset | 0 |
| --json | Output as JSON (for programmatic use) | false |
| --help | Show help message | - |
Filter results by recency:
Use standard 2-character country codes to get localized results:
US (United States), GB (United Kingdom), DE (Germany), FR (France), JP (Japan), etc.Search: "React 19 new features"
Found 5 results in 189ms
1. React 19 Release Notes
https://react.dev/blog/2024/04/25/react-19
React 19 is now available on npm! This release includes...
Age: 2 months ago
2. What's New in React 19
https://example.com/react-19-features
A comprehensive overview of React 19's new features...
{
"query": "React 19 new features",
"results": [
{
"title": "React 19 Release Notes",
"url": "https://react.dev/blog/2024/04/25/react-19",
"description": "React 19 is now available on npm...",
"age": "2 months ago",
"language": "en",
"family_friendly": true
}
],
"response_time": 189,
"total_results": 1250000
}
| Field | Type | Description |
|-------|------|-------------|
| title | string | Page title |
| url | string | Source URL |
| description | string | Relevant excerpt from the page |
| extra_snippets | string[] | Additional content snippets (only with --extra-snippets) |
| age | string | How old the result is (e.g., "2 hours ago") |
| language | string | Language of the result |
| family_friendly | boolean | Whether the result is family-friendly |
Scenario: Find recent news about a technology topic
scripts/search.ts "OpenAI GPT-5 announcement" --freshness pw --results 10
Expected output: Recent web results about GPT-5 from the past week
Scenario: Find specific technical documentation
scripts/search.ts "Deno deploy edge functions tutorial" --results 10 --extra-snippets
Expected output: Comprehensive results with extra snippets from documentation and tutorial sites
Scenario: Find results targeted to a specific country and language
scripts/search.ts "aktuelle Nachrichten" --country DE --lang de --freshness pd
Expected output: German-language results from Germany from the past day
Scenario: Get structured results with strict safe search
scripts/search.ts "machine learning tutorials" --safesearch strict --extra-snippets --json
Expected output: JSON results with extra snippets, filtered for safe content
Symptoms: Script exits immediately with API key error
Solution:
export BRAVE_API_KEY="your-api-key-here"
BRAVE_API_KEY="your-key" deno run --allow-env --allow-net=api.search.brave.com scripts/search.ts "query"
Symptoms: 401 authentication error
Solution:
Symptoms: 429 error response
Solution:
Symptoms: Empty results array
Solution:
This skill has the following limitations:
web-search-tavily for that)Take jwynia/web-search-brave from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.