DSH HUB
HomePlugin StorePlugin PacksCommunityRankingsResourcesPublish Guide
Plugin source
Back to catalog

libinghui55 /

dsh-tavily-search

Verified

Tavily-backed web search provider plugin for DeepSeek Harness (dsh): GUI config card with API key + on/off switch

★ 0 Stars0 Forks0 IssuesN/A Community rating0 Confirmed installs
View on GitHub
READMESource: master@0092ee45

dsh-tavily-search

A Tavily-backed web search provider plugin for the DeepSeek Harness (dsh). It routes the harness web-search seam through the Tavily API and ships a GUI configuration card in Settings → Plugins where you can toggle the provider on/off and store your Tavily API key.

Everything is a plugin: this package composes a Cordis host plugin (the search provider) and a web client bundle (the settings card).

Features

  • Registers a web-search provider with id tavily and points the harness web seam at it via the bundle patch (cordis.patch.yml).
  • GUI configuration card (设置 → 插件) named tavily-search with:
    • an on/off switch — when off, the provider reports itself unavailable and refuses to search;
    • an API key field written through the harness credentials service (never stored in the settings file or echoed back to the client).
  • API key resolution order:
    1. a literal apiKey configured in the web-search-tavily settings section;
    2. the harness credentials service, under the credential reference named by apiKeyEnv (default TAVILY_API_KEY);
    3. the launching environment (TAVILY_API_KEY).
  • Configurable Tavily endpoint via baseURL (default https://api.tavily.com).

Requirements

  • A DeepSeek Harness (dsh) installation where the web search seam is composed.
  • A Tavily API key from https://app.tavily.com.

Installation

For graphical installations, drop the dsh-tavily-search folder into the plugin directory of the target profile. For a source checkout:

git clone https://github.com/libinghui55/dsh-tavily-search.git
cd dsh-tavily-search
npm install

Then add the plugin to your harness bundle. With the standard web/web-app seam, the bundled patch (cordis.patch.yml) already:

  1. sets web.searchProvider = tavily so the web seam searches through Tavily;
  2. inserts a web-search-tavily host-plugin row whose config points apiKeyEnv at TAVILY_API_KEY.

Provide your API key

Choose one of these:

A. GUI (recommended) — open 设置 → 插件, expand tavily-search, and enter your key in the API key field, then Save. The key is written through the harness credentials service (e.g. ~/.dsh/.credentials.yaml).

B. Credentials file — add a line to your credentials store:

TAVILY_API_KEY: tvly-xxxxxxxx

C. Environment — export TAVILY_API_KEY in the launching environment.

Note on environment shadowing: if TAVILY_API_KEY exists in the process environment, the credentials service reports it as inherited (writable: false), so the GUI card disables its key field — an env-provided value cannot be overwritten from the UI. Store the key in the file (option A or B) rather than the environment if you want to edit it from the card.

Configuration

The plugin owns a settings namespace web-search-tavily with the schema:

Field Type Default Description
enabled boolean true Master switch; false makes the provider unavailable.
apiKey secret — Literal API key (written via credentials).
apiKeyEnv string TAVILY_API_KEY Credential reference resolved when no literal key is set.
baseURL string https://api.tavily.com Tavily endpoint override.

Example .yml config:

# dsh.config / bundle patch
web-search-tavily:
  enabled: true
  apiKeyEnv: TAVILY_API_KEY

Bundle contents

  • index.js — host-side web search provider (TavilySearchProvider) and the web-search-tavily settings section.
  • client.js — web client bundle: the plugin configuration card (settings.plugin.item slot, order 25).
  • cordis.patch.yml — bundles the provider into the web seam and resolves the API key reference.

Development

Run the offline smoke test from the profile that has the plugin installed (it imports the profile-installed copy so @deepseek-ai/* deps resolve):

node <profile>/plugins/dsh-tavily-search/smoke.mjs

The test verifies: provider id tavily, availability, a real Tavily search, and that enabled: false makes the provider unavailable and refuse to search.

Because the web client is served from its own bundle, changes to client.js require a harness restart to be reloaded by dsh-client-modules.

License

MIT

—/ 5

No ratings yet

Verified DSH bundle

Commit 0092ee452c20

Community comments

No comments yet. Be the first to write one.

DSH HUB

A community index for DSH plugins. Not an official GitHub or DeepSeek AI product.

CommunityResourcesAPIAbout