
DeepSeek Harness PluginPublished by crayonlu →
DSH Web Search Tavily
☆ 0Tavily-backed web search provider for DeepSeek Harness (ctx.web) — no DeepSeek API key required
Get this plugin
Review the source, then continue to the publisher.
dsh plugin add @crayonlu/dsh-web-search-tavily@latestAbout this plugin
Source snapshot 8/13/2026@crayonlu/dsh-web-search-tavily
Tavily-backed WebSearchProvider for the DeepSeek Harness web capability seam (ctx.web). Lets dsh's web_search tool run entirely on Tavily — no DeepSeek API key required.
Install
dsh plugin --profile web add github:crayonlu/dsh-web-search-tavily
Then add the provider to the profile patch layer at $DSH_HOME/profiles/web/cordis.patch.yml (hot-reloaded — no restart needed):
- insert:
- id: web-search-tavily
name: '@crayonlu/dsh-web-search-tavily'
- id: web
config:
searchProvider: tavily
# Optional: drop the DeepSeek-backed search (and chat route) entirely.
- id: web-search-deepseek
disabled: true
- id: llm-deepseek
disabled: true
Configuration
Every field is optional:
| Field | Default | Meaning |
|---|---|---|
apiKey | — | Literal Tavily key (write it here instead of apiKeyEnv only if you must; it lands in a config file). |
apiKeyEnv | TAVILY_API_KEY | Credential reference resolved per search through ctx.credentials (inherited env > $DSH_HOME/.credentials.yaml > project/user .env). |
baseURL | https://api.tavily.com | Endpoint base; /search is appended. |
maxResults | 5 | Default result count when a request carries no maxResults. |
includeAnswer | true | Carry Tavily's generated answer as the search result content. |
searchDepth | basic | basic or advanced (Tavily's search_depth). |
The key resolves once per search, so an empty TAVILY_API_KEY fails the request with WEB_MISSING_CREDENTIAL rather than falling through to an unrelated credential.
Tests
npm install
npm test
Unit tests mock the HTTP layer; the smoke test runs a real Tavily search when TAVILY_API_KEY is set.
License
MIT