Tavily Search API Integration
andrewyng/context-hub
Guides building Tavily integrations for web search, URL extraction, site crawling and AI-assisted research in Python or JavaScript agent and RAG projects.
Documents Brave's LLM Context API, which returns pre-extracted, ranked web page content for grounding agent and RAG answers, with GET and POST calls and Goggles filters.
$ npx skills add brave/brave-search-skills --skill llm-context -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install brave/brave-search-skills llm-context --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/brave/brave-search-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/llm-context .claude/skills/llm-context && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "llm-context" agent skill from https://github.com/brave/brave-search-skills/tree/main/skills/llm-context into .claude/skills/llm-context/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-context", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/brave/brave-search-skills/tree/main/skills/llm-contextType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add brave/brave-search-skills --skill llm-context -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install brave/brave-search-skills llm-context --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/brave/brave-search-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/llm-context .agents/skills/llm-context && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "llm-context" agent skill from https://github.com/brave/brave-search-skills/tree/main/skills/llm-context into .agents/skills/llm-context/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-context", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add brave/brave-search-skills --skill llm-context -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install brave/brave-search-skills llm-context --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/brave/brave-search-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/llm-context .cursor/skills/llm-context && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "llm-context" agent skill from https://github.com/brave/brave-search-skills/tree/main/skills/llm-context into .cursor/skills/llm-context/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-context", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/brave/brave-search-skills.git --path skills/llm-context--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add brave/brave-search-skills --skill llm-context -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install brave/brave-search-skills llm-context --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/brave/brave-search-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/llm-context .gemini/skills/llm-context && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "llm-context" agent skill from https://github.com/brave/brave-search-skills/tree/main/skills/llm-context into .gemini/skills/llm-context/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-context", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install brave/brave-search-skills llm-contextInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add brave/brave-search-skills --skill llm-context -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/brave/brave-search-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/llm-context .github/skills/llm-context && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "llm-context" agent skill from https://github.com/brave/brave-search-skills/tree/main/skills/llm-context into .github/skills/llm-context/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-context", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add brave/brave-search-skills --skill llm-context -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install brave/brave-search-skills llm-context --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/brave/brave-search-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/llm-context .opencode/skills/llm-context && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "llm-context" agent skill from https://github.com/brave/brave-search-skills/tree/main/skills/llm-context into .opencode/skills/llm-context/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "llm-context", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
llm-contextDocuments Brave's LLM Context API, which returns pre-extracted, ranked web page content for grounding agent and RAG answers, with GET and POST calls and Goggles filters.
This skill describes the Brave Search endpoint that returns relevance-ranked content pulled from pages, such as text chunks, tables, code blocks and structured data, instead of a list of links and snippets, so your own model can reason over it directly. Each request runs a single search, and access is part of the Brave Search plan.
Requests go to /res/v1/llm/context with GET or POST and an X-Subscription-Token header carrying the API key, for example from a BRAVE_SEARCH_API_KEY variable. Parameters include the query, country, search language and a result count, and the description advises tuning max_tokens and count to the complexity of the question. Inline Goggles and local or point-of-interest search are supported. For finished answers with citations, the skill points to the separate answers endpoint, which is OpenAI-compatible and runs several searches.
Read from SKILL.md and the folder at commit 62793e0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.search.brave.combusiness.comraw.githubusercontent.complace.comAlso links to:
search.brave.comapi-dashboard.search.brave.comgithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
BRAVE_SEARCH_API_KEYAPI_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Brave LLM Context API loads about 3.3k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 1,070 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from brave/brave-search-skills at commit 62793e0, republished under its MIT licence (© brave). 1,070 words, ~3,263 tokens.
.claude/skills/llm-context/SKILL.md (or your agent's skills folder).Requires API Key: Get one at https://api.search.brave.com
Plan: Included in the Search plan. See https://api-dashboard.search.brave.com/app/subscriptions/subscribe
Brave LLM Context API delivers pre-extracted, relevance-ranked web content optimized for grounding LLM responses in real-time search results. Unlike traditional web search APIs that return links and snippets, LLM Context extracts the actual page content—text chunks, tables, code blocks, and structured data—so your LLM or AI agent can reason over it directly.
| Feature | LLM Context (this) | AI Grounding (answers) |
|---|---|---|
| Output | Raw extracted content for YOUR LLM | End-to-end AI answers with citations |
| Interface | REST API (GET/POST) | OpenAI-compatible /chat/completions |
| Searches | Single search per request | Multi-search (iterative research) |
| Speed | Fast (<1s) | Slower |
| Plan | Search | Answers |
| Endpoint | /res/v1/llm/context | /res/v1/chat/completions |
| Best for | AI agents, RAG pipelines, tool calls | Chat interfaces, research mode |
GET https://api.search.brave.com/res/v1/llm/context
POST https://api.search.brave.com/res/v1/llm/contextAuthentication: X-Subscription-Token: <API_KEY> header
Optional Headers:
Accept-Encoding: gzip — Enable gzip compressioncurl -s "https://api.search.brave.com/res/v1/llm/context?q=tallest+mountains+in+the+world" \
-H "Accept: application/json" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}"curl -s --compressed -X POST "https://api.search.brave.com/res/v1/llm/context" \
-H "Accept: application/json" \
-H "Accept-Encoding: gzip" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
-H "Content-Type: application/json" \
-d '{"q": "tallest mountains in the world"}'curl -s "https://api.search.brave.com/res/v1/llm/context" \
-H "Accept: application/json" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
-G \
--data-urlencode "q=rust programming" \
--data-urlencode 'goggles=$discard
$site=docs.rs
$site=rust-lang.org'| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
q | string | Yes | - | Search query (1-400 chars, max 50 words) |
country | string | No | US | Search country (2-letter country code or ALL) |
search_lang | string | No | en | Language preference (2+ char language code) |
count | int | No | 20 | Max search results to consider (1-50) |
spellcheck | bool | No | true | Whether to spellcheck the query before searching |
freshness | string | No | "" | Filters search results by page age. The age of a page is determined by the most relevant date reported by the content, such as its published or last modified date. Supported values: pd (24h or less), pw (7 days or less), pm (31 days or less), py (365 days or less), or a custom date range YYYY-MM-DDtoYYYY-MM-DD (e.g. 2022-04-01to2022-07-30). |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
maximum_number_of_urls | int | No | 20 | Max URLs in response (1-50) |
maximum_number_of_tokens | int | No | 8192 | Approximate max tokens in context (1024-32768) |
maximum_number_of_snippets | int | No | 50 | Max snippets across all URLs (1-256) |
maximum_number_of_tokens_per_url | int | No | 4096 | Max tokens per individual URL (512-8192) |
maximum_number_of_snippets_per_url | int | No | 50 | Max snippets per individual URL (1-100) |
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
context_threshold_mode | string | No | null | Relevance threshold for including content (strict/balanced/lenient/disabled) |
safesearch | string | No | null | Adult content filter (off/moderate/strict); not set means no filtering, except local recall which stays strict |
enable_local | bool | No | null | Local recall control (true/false/null, see below) |
goggles | string/list | No | null | Goggle URL or inline definition for custom re-ranking |
enable_source_metadata | bool | No | false | Adds site_name, favicon, thumbnail and description to each sources[url] entry |
| Task Type | count | max_tokens | Example |
|---|---|---|---|
| Simple factual | 5 | 2048 | "What year was Python created?" |
| Standard queries | 20 | 8192 | "Best practices for React hooks" |
| Complex research | 50 | 16384 | "Compare AI frameworks for production" |
Larger context windows provide more information but increase latency and cost (of your inference). Start with defaults and adjust.
| Mode | Behavior |
|---|---|
null (not set) | Default — resolves to lenient on the current API version |
strict | Higher threshold — fewer but more relevant results |
balanced | Good balance between coverage and relevance |
lenient | Lower threshold — more results, may include less relevant content |
disabled | No threshold filtering — return all extracted content |
The enable_local parameter controls location-aware recall:
| Value | Behavior |
|---|---|
null (not set) | Auto-detect — local recall enabled when any location header is provided |
true | Force local — always use local recall, even without location headers |
false | Force standard — always use standard web ranking, even with location headers |
For most use cases, omit enable_local and let the API auto-detect from location headers.
| Header | Type | Description |
|---|---|---|
X-Loc-Lat | float | Latitude (-90.0 to 90.0) |
X-Loc-Long | float | Longitude (-180.0 to 180.0) |
X-Loc-City | string | City name |
X-Loc-State | string | State/region code (ISO 3166-2) |
X-Loc-State-Name | string | State/region name |
X-Loc-Country | string | 2-letter country code |
X-Loc-Postal-Code | string | Postal code |
Priority:
X-Loc-Lat+X-Loc-Longtake precedence. When provided, text-based headers (City, State, Country, Postal-Code) are not used for location resolution. Provide text-based headers only when you don't have coordinates.
curl -s "https://api.search.brave.com/res/v1/llm/context" \
-H "Accept: application/json" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
-H "X-Loc-Lat: 37.7749" \
-H "X-Loc-Long: -122.4194" \
-G \
--data-urlencode "q=best coffee shops near me"curl -s "https://api.search.brave.com/res/v1/llm/context" \
-H "Accept: application/json" \
-H "X-Subscription-Token: ${BRAVE_SEARCH_API_KEY}" \
-H "X-Loc-City: San Francisco" \
-H "X-Loc-State: CA" \
-H "X-Loc-Country: US" \
-G \
--data-urlencode "q=best coffee shops near me"Goggles let you control which sources ground your LLM — essential for RAG quality.
| Use Case | Goggle Rules |
|---|---|
| Official docs only | $discard\n$site=docs.python.org |
| Exclude user content | $discard,site=reddit.com\n$discard,site=stackoverflow.com |
| Academic sources | $discard\n$site=arxiv.org\n$site=scholar.google.com |
| No paywalls | $discard,site=medium.com |
| Method | Example |
|---|---|
| Hosted | --data-urlencode "goggles=https://raw.githubusercontent.com/brave/goggles-quickstart/main/goggles/1k_short.goggle" |
| Inline | --data-urlencode 'goggles=$discard\n$site=example.com' |
Hosted goggles must be on GitHub/GitLab, include
! name:,! description:,! author:headers, and be registered at https://search.brave.com/goggles/create. Inline rules need no registration.
Syntax: Rules start with $ + comma-separated options. Actions (pick one): discard, boost[=N], downrank[=N] — N is an integer 1–10. Site filter: site=DOMAIN. Example: $site=example.com,boost=3. Separate rules with \n (%0A).
Allow list: $discard\n$site=docs.python.org\n$site=developer.mozilla.org — Block list: $discard,site=pinterest.com\n$discard,site=quora.com
Resources: Discover · Syntax · Quickstart
{
"grounding": {
"generic": [
{
"url": "https://example.com/page",
"title": "Page Title",
"snippets": [
"Relevant text chunk extracted from the page...",
"Another relevant passage from the same page..."
]
}
],
"map": []
},
"sources": {
"https://example.com/page": {
"title": "Page Title",
"hostname": "example.com",
"age": ["Wednesday, January 15, 2025", "2025-01-15", "392 days ago", "2025-01-15T13:45:02Z"]
}
}
}enable_local){
"grounding": {
"generic": [...],
"poi": {
"name": "Business Name",
"url": "https://business.com",
"title": "Title of business.com website",
"snippets": ["Business details and information..."]
},
"map": [
{
"name": "Place Name",
"url": "https://place.com",
"title": "Title of place.com website",
"snippets": ["Place information and details..."]
}
]
},
"sources": {
"https://business.com": {
"title": "Business Name",
"hostname": "business.com",
"age": []
}
}
}| Field | Type | Description |
|---|---|---|
grounding | object | Container for all grounding content by type |
grounding.generic | array | Array of URL objects with extracted content (main grounding data) |
grounding.generic[].url | string | Source URL |
grounding.generic[].title | string | Page title |
grounding.generic[].snippets | array | Extracted smart chunks relevant to the query |
grounding.poi | object/null | Point of interest data (only with local recall) |
grounding.poi.name | string/null | Point of interest name |
grounding.poi.url | string/null | POI source URL |
grounding.poi.title | string/null | POI page title |
grounding.poi.snippets | array/null | POI text snippets |
grounding.map | array | Map/place results (only with local recall) |
grounding.map[].name | string/null | Place name |
grounding.map[].url | string/null | Place source URL |
grounding.map[].title | string/null | Place page title |
grounding.map[].snippets | array/null | Place text snippets |
sources | object | Metadata for all referenced URLs, keyed by URL |
sources[url].title | string | Page title |
sources[url].hostname | string | Source hostname |
sources[url].age | array | The page's date in four fixed positions: full date, YYYY-MM-DD, relative age, ISO 8601 timestamp. Empty when the page has no known date |
sources[url].description | string | The page's own description, independent of the query. Requires enable_source_metadata |
sources[url].site_name | string | Site name. Requires enable_source_metadata |
sources[url].favicon | string | Favicon URL. Requires enable_source_metadata |
sources[url].thumbnail | object/null | Page thumbnail (src, original). Requires enable_source_metadata |
sources[url].snippet | string? | Best snippet for the page |
Note: Snippets may contain plain text OR JSON-serialized structured data (tables, schemas, code blocks). LLMs handle this mixed format well.
maximum_number_of_tokens=8192, count=20). Reduce for simple lookups, increase for complex research.context_threshold_mode=strict when precision > recall.count and maximum_number_of_tokens that meet your needs. For local queries, provide location headers.© brave, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/llm-context of brave/brave-search-skills.
Open the folder on GitHubat commit 62793e0
Brave LLM Context API next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Brave LLM Context API this skillbrave/brave-search-skills | 183 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Tavily Search API Integrationandrewyng/context-hub | 14k | — | ~1.1k | Automated safety check: Pass | MIT | |
| 9Router Web Searchdecolua/9router | 30k | — | ~1k | Automated safety check: Pass | MIT | |
| Sap AI Coresecondsky/sap-skills | 462 | — | ~3.3k | Automated safety check: Pass | GPL-3.0 | |
| Digoal Read Think Writerdigoal/blog | 8.6k | — | ~1.3k | Automated safety check: Pass | GPL-2.0 | |
| Discover APIbrightdata/skills | 264 | — | ~2.4k | Automated safety check: Pass | MIT |
andrewyng/context-hub
Guides building Tavily integrations for web search, URL extraction, site crawling and AI-assisted research in Python or JavaScript agent and RAG projects.
decolua/9router
Runs web, news and public X searches through a 9Router gateway's search endpoint, choosing among providers such as Tavily, Exa, Brave and Perplexity.
secondsky/sap-skills
Guides development with SAP AI Core and SAP AI Launchpad for enterprise AI/ML workloads on SAP BTP.
digoal/blog
以 digoal/德哥 的第一人称口吻重写一篇文章。流程是:先吃透原文(必要时用 mcpMiniMaxwebsearch 拓展资料库),再用德哥的语气重新讲一遍,输出 markdown 到当前项目的 markdown/ 目录(SVG 图存到 markdown/svg/,文中以 …
brightdata/skills
Use Bright Data's Discover API — intent-ranked, AI-relevance-scored web search at scale (not keyword SERP).
NeverSight/learn-skills.dev
Build RAG (Retrieval Augmented Generation) pipelines with web search and LLMs.
brave/brave-search-skills
Calls the Brave Search Answers endpoint for AI-grounded, cited answers, either a fast single-search reply or a slower multi-search deep research run.
brave/brave-search-skills
Searches images through the Brave Search API and returns titles, source pages, thumbnails and original image URLs, with a SafeSearch filter and up to 200 results.
brave/brave-search-skills
Fetches AI-written text descriptions for local places from the Brave Search API, using place IDs returned by an earlier local search.
brave/brave-search-skills
Looks up businesses, points of interest, addresses and streets through the Brave Search place endpoint, returning contact details, ratings and hours in one call.
brave/brave-search-skills
Looks up full details for local businesses and places, including ratings, hours and contact information, from Brave Search API point-of-interest IDs.
brave/brave-search-skills
A skill your agent uses FOR news search. An agent skill from brave/brave-search-skills.
Works with
Categories
Documents Brave's LLM Context API, which returns pre-extracted, ranked web page content for grounding agent and RAG answers, with GET and POST calls and Goggles filters. This skill describes the Brave Search endpoint that returns relevance-ranked content pulled from pages, such as text chunks, tables, code blocks and structured data, instead of a list of links and snippets, so your own model can reason over it directly. Each request runs a single search, and access is part of the Brave Search plan.
Brave LLM Context API fits situations like: grounding an agent's answers in fresh web content; building a RAG pipeline that needs page text, tables and code rather than links; fetching web context for a tool call with a size limit set by token budget; choosing between raw extracted content and ready-made answers with citations.
Run `npx skills add brave/brave-search-skills --skill llm-context -a claude-code`. Or copy the skill folder (skills/llm-context in brave/brave-search-skills) into .claude/skills/llm-context in your project. Claude Code loads it when a task matches its description.
Run `npx skills add brave/brave-search-skills --skill llm-context -a codex`. Or copy the skill folder (skills/llm-context in brave/brave-search-skills) into .agents/skills/llm-context in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add brave/brave-search-skills --skill llm-context -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/llm-context, .gemini/skills/llm-context, .github/skills/llm-context and .opencode/skills/llm-context in your project.
Going by SKILL.md and its folder, Brave LLM Context API needs the command-line tools its instructions call (curl) and credentials named BRAVE_SEARCH_API_KEY and API_KEY. Our summary lists: A Brave Search API key on the Search plan; Network access to api.search.brave.com.
SKILL.md names 7 domains. In commands or code: api.search.brave.com, business.com, raw.githubusercontent.com and place.com; the agent is likely to contact these when it follows the instructions. As links in the text: search.brave.com, api-dashboard.search.brave.com and github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Brave LLM Context API is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Brave LLM Context API: Tavily Search API Integration (andrewyng/context-hub, 14k stars), 9Router Web Search (decolua/9router, 30k stars), Sap AI Core (secondsky/sap-skills, 462 stars) and Digoal Read Think Writer (digoal/blog, 8.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
brave (a GitHub organization) maintains it in brave/brave-search-skills, which has 183 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on September 23, 2026.
Source: brave/brave-search-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.