DeepSeek Harness plugin

dsh-web-search-brave-chrisdea

Brave Search API-backed web search provider for the DeepSeek Harness web capability seam (ctx.web)

Jump to install

Source facts

Repository
ChrisDeadman/dsh-web-search-brave
Latest update
Aug 20, 2026
Category
Docs & Rendering
GitHub stars
0
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-21

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/ChrisDeadman/dsh-web-search-brave
Plugin: dsh-web-search-brave-chrisdea
Author: ChrisDeadman

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer3 files
README.mdSource · read only

@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-search provider on the ctx.web seam.
  • Resolves the API key in this order:

1. Literal apiKey in the config (not recommended). 2. The BRAVE_API_KEY credential stored in the DSH credentials service. 3. The BRAVE_API_KEY env var at launch time.

  • 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.

OptionEnv / Config KeyDefaultNotes
API keyBRAVE_API_KEYRequired.
API base URLBRAVE_SEARCH_BASE_URLhttps://api.search.brave.com/res/v1/web/searchOverride for proxies or testing.
Throttle (ms)1500Min gap between outbound requests.
Max attempts3Retries 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_KEY is only ever sent to the configured baseURL (default: Brave's official endpoint).
  • Custom baseURL is 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](./AGENTS.md) for guidance for AI coding agents working on this repo.

License

[MIT](./LICENSE).