Skip to content

crayonlu/dsh-web-search-tavily

30Last commit Aug 13, 2026

dsh-web-search-tavily DSH plugin

This plugin provides a WebSearchProvider that uses the Tavily search API. It allows the `web_search` tool in DeepSeek Harness to run entirely on Tavily, without requiring a DeepSeek API key. Installation is done via the `dsh plugin` command, and configuration is added to the profile patch layer.

How to install the dsh-web-search-tavily DSH plugin

dsh plugin --profile web add github:crayonlu/dsh-web-search-tavily

Copying does not run this command. Review the repository and version before installing the dsh-web-search-tavily DSH plugin.

dsh-web-search-tavily DSH plugin data source

dsh-web-search-tavily DSH plugin snapshot date: Aug 16, 2026

discovered

What the dsh-web-search-tavily DSH plugin can do

  • Supports Tavily's `search_depth` (basic or advanced) and `maxResults` parameters.
  • Allows configuration of API key via direct value or environment variable reference.
  • Includes Tavily's generated answer as search result content when `includeAnswer` is enabled.
  • Supports custom base URL for Tavily API endpoint.
  • Hot-reloads configuration changes without restarting the DSH process.

Where the dsh-web-search-tavily DSH plugin fits

  • Replace DeepSeek's built-in search with Tavily for better or more customizable results.
  • Use in DSH workflows that require real-time web search via Tavily.
  • Integrate with other DSH plugins that rely on the `web_search` tool.
  • Avoid exposing DeepSeek API key by using Tavily as the search backend.

Who the dsh-web-search-tavily DSH plugin is for

  • DeepSeek Harness users who need a Tavily-powered search provider.
  • Developers building DSH workflows that require web search without DeepSeek API.

dsh-web-search-tavily DSH plugin limitations

  • Requires a valid Tavily API key (either via `apiKey` or `apiKeyEnv`).
  • Only supports Tavily as the search provider; no other search engines.
  • The `apiKey` field stores the API key in plaintext in the configuration file.
  • Depends on Tavily service availability; may fail if Tavily is down.

dsh-web-search-tavily DSH plugin: from the repository README

Quoted from the crayonlu/dsh-web-search-tavily README, the upstream source of the dsh-web-search-tavily DSH plugin. Copyright remains with the original authors.

Tavily-backed `WebSearchProvider` for the [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) web capability seam (`ctx.web`). Lets `dsh`'s `web_search` tool run entirely on [Tavily](https://tavily.com) — no DeepSeek API key required. ## Install ```sh 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): ```yaml - 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 ba

Read the full READMERepository license: MIT

dsh-web-search-tavily DSH plugin questions

How do I install this plugin?

Run the command `dsh plugin --profile web add github:crayonlu/dsh-web-search-tavily` in your terminal. Then add the provider configuration to your profile patch file at `$DSH_HOME/profiles/web/cordis.patch.yml` as described in the README. No restart is needed due to hot-reload.

How do I configure the Tavily API key?

You can set the API key either by providing it directly in the `apiKey` field of the plugin configuration, or by setting the environment variable `TAVILY_API_KEY` (or a custom variable name via `apiKeyEnv`). The `apiKeyEnv` option is recommended to avoid storing keys in plaintext config files.

Can I use this plugin without a DeepSeek API key?

Yes, that's the main purpose. The plugin routes all search requests through Tavily, so you only need a Tavily API key. You can optionally disable the DeepSeek-backed search and chat routes by setting `disabled: true` for the corresponding IDs in the patch file.

How do I test if the plugin is working?

Run the unit tests with `npm install && npm test`. There is also a smoke test that performs a real Tavily search if the `TAVILY_API_KEY` environment variable is set. Make sure you have configured the plugin correctly in your profile.

What configuration options are available?

The plugin supports `apiKey`, `apiKeyEnv`, `baseURL`, `maxResults`, `includeAnswer`, and `searchDepth`. All fields are optional. Defaults are: `apiKeyEnv` = `TAVILY_API_KEY`, `baseURL` = `https://api.tavily.com`, `maxResults` = 5, `includeAnswer` = true, `searchDepth` = `basic`.