dsh-web-search-brave
Manifest validBrave Search API-backed web search provider for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (`dsh`)
@deads-inc/dsh-web-search-brave
Brave Search API-backed web search provider for DeepSeek Harness (dsh). It registers a WebSearchProvider into the ctx.web seam, so the built-in web_search tool works out of the box when you have a Brave Search API key.
- MIT license, ~270 lines of code, zero runtime dependencies
- Concurrency-safe rate limiting (1500ms gap between requests)
- Exponential backoff with jitter on 429s
- Configurable via DSH Settings or env vars
Install
Requires BRAVE_API_KEY from brave.com/search/api.
From npm (recommended):
dsh plugin --profile web add @deads-inc/dsh-web-search-brave
export BRAVE_API_KEY=<your-key>
From this repo:
git clone https://github.com/ChrisDeadman/dsh-web-search-brave.git
cd dsh-web-search-brave
export BRAVE_API_KEY=<your-key>
bash install.sh
Restart dsh web. Verify the provider is active:
dsh --profile web --dump-config | grep -A3 brave
How it works
- Registers the
brave-searchprovider on thectx.webseam. - Resolves the API key in this order:
- Literal
apiKeyin the config (not recommended). - The
BRAVE_API_KEYcredential stored in the DSH credentials service. - The
BRAVE_API_KEYenv var at launch time.
- Literal
- Serializes concurrent calls through an in-process rate limiter (1500ms gap, configurable).
- On 429/403, honors
Retry-After, backs off with exponential + jittered backoff (capped at 30s), up to 3 attempts.
Configuration
All options are optional; sensible defaults are used.
| Option | Env / Config Key | Default | Notes |
|---|---|---|---|
| API key | BRAVE_API_KEY | — | Required. |
| API base URL | BRAVE_SEARCH_BASE_URL | https://api.search.brave.com/res/v1/web/search | Override for proxies or testing. |
| Throttle (ms) | — | 1500 | Min gap between outbound requests. |
| Max attempts | — | 3 | Retries on 429/403 before failing. |
Enabling as the active search provider
The plugin registers brave-search but does not forcibly enable it. To use it as your search backend, add this to your profile's cordis.patch.yml:
- id: web
config:
searchProvider: brave-search
bash install.sh does this automatically for you.
Security notes
- Your
BRAVE_API_KEYis only ever sent to the configuredbaseURL(default: Brave's official endpoint). - Custom
baseURLis an escape hatch for proxies or testing; use it deliberately. The plugin does not validate the URL's domain. - There are no postinstall scripts, no network calls other than the search API, no telemetry.
Development
This package is plain ESM with no build step and no runtime dependencies —
everything it imports (@deepseek-ai/*) is provided by the host DSH install
as peer dependencies.
To test a local change, run bash install.sh, then in a fresh terminal:
# 1. Confirm the bundle is wired into the composed profile config:
dsh --profile web --dump-config | grep -A3 brave
# 2. (Optional) Import the module directly. This needs the profile's
# node_modules to already carry the @deepseek-ai/* peers (a web profile
# that has any dshmarket package does). It fails harmlessly otherwise —
# dsh itself always resolves the peers from its own installation at boot:
node --input-type=module -e "
const m = await import('@deads-inc/dsh-web-search-brave');
if (typeof m.apply !== 'function' || m.name !== 'web-search-brave') throw new Error('bad module');
console.log('OK: exports:', Object.keys(m).join(', '));
"
# 3. With BRAVE_API_KEY set, run a real end-to-end search:
dsh --profile web "Use web_search to find one page about Node.js 24. Reply with just the URL."
See AGENTS.md for guidance for AI coding agents working on this repo.
License
MIT.
Similar plugins
by DDDMUC
Free web search provider for DeepSeek Harness - DuckDuckGo backend, no API key needed
★ 189
MIT
JavaScript
Sep 13, 2026
dsh plugin --profile web add dsh-free-searchby X-C1811
Tavily web-search provider for DeepSeek Harness (ctx.web). Keyless or API-key modes with a configurable UI card; provider framework designed to be extended to more search APIs.
★ 3
↓ 269/wk
MIT
JavaScript
Sep 10, 2026
dsh plugin --profile web add dsh-web-search-pluginby nitrazepam01
Tavily-backed web search provider bundle for DeepSeek Harness (dsh) with hot-switchable backend (Tavily / DeepSeek search)
★ 3
MIT
JavaScript
Aug 14, 2026
dsh plugin --profile web add dsh-web-search-tavilyby cinob
🌐 Multi-provider web search plugin for DeepSeek Harness: Zero-key Bing/Baidu direct search, free-tier APIs (Tavily/Brave/Serper/Bocha), SearXNG token auth, auto-fallback, and a built-in Web Settings
★ 6
↓ 72/wk
MIT
JavaScript
Aug 26, 2026
dsh plugin --profile web add dsh-web-search-multiby mcxianyujun
Native AnySearch /v1/search WebSearchProvider for DeepSeek Harness with Web UI, credentials integration, and Web/Headless support.
★ 4
↓ 306/wk
MIT
TypeScript
Sep 9, 2026
dsh plugin --profile web add dsh-web-search-anysearchby hiyms
Improve web search in Deepseek Harness, use server-side search service.
★ 4
↓ 124/wk
MIT
TypeScript
Sep 1, 2026
dsh plugin --profile web add dsh-web-search-provider