Tools & Capabilities
dsh-tavily
SZMY-haruhi/dsh-tavily · ★ 3
Tavily web search for DSH with a settings toggle, keyless by default, and a connection test.
Manifest details
安装
dsh plugin --profile web add github:SZMY-haruhi/dsh-tavilyGitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试
For install and environment setup, plus plugin development tutorials, see DSH community docs ↗
README
中文 | English
Tavily web search for DeepSeek Harness. Adds Tavily Search API as a web search provider for DSH.
Install
npm (stable, official recommendation):
dsh plugin --profile web add dsh-tavily
dsh web
Or follow GitHub (latest commit on the repo):
dsh plugin --profile web add github:SZMY-haruhi/dsh-tavily
dsh web
Sidebar Plugins → installed dsh-tavily → the web-search-tavily row’s configuration page: turn the toggle on. The key is optional; leave it blank for keyless. Test connection on that page checks that search works now (including keyless).
Please update to 0.3.2. 0.3.1 and earlier mount the card with DSH 0.1’s settings.register and settings.plugin.item. DSH 0.2 removed that API and slot, so the plugin fails during startup and the card has no entry. 0.3.2 registers plugins.row.config on the Plugins page. npm:
dsh plugin --profile web update dsh-tavily
GitHub installs: run add github:SZMY-haruhi/dsh-tavily again.
Pin a commit:
dsh plugin --profile web add github:SZMY-haruhi/dsh-tavily#<commit>
Remove:
dsh plugin --profile web remove dsh-tavily
dsh.bundle· prebuiltlib/· git install does not needallowBuilds
Features
- Plugins-page toggle: off = official DeepSeek, on = Tavily — no uninstall to switch back
- No key uses Tavily keyless; a key uses
Authorization: Bearer - Bottom-left connection test: one real Tavily search (
max_results: 1); keyless if no key, account quota if a key is saved (1 credit) - Timeout, abort, official host lock, drop results without a url
- Key and toggle live on the credentials plane, not the settings file
Behavior
| Toggle | Key | web_search |
|---|---|---|
| Off (default) | — | official DeepSeek |
| On | empty | Tavily keyless |
| On | set | Tavily account quota |
Provider id: tavily.
Credentials
| Ref | Meaning |
|---|---|
TAVILY_API_KEY |
Optional. Present = account quota; absent = keyless |
TAVILY_SEARCH_ENABLED |
Present = on; unset = off |
You can also put these in $DSH_HOME/.credentials.yaml. Do not commit real keys.
The Plugins-page card always reads and writes TAVILY_API_KEY and TAVILY_SEARCH_ENABLED. The cordis field apiKeyEnv only changes which reference the host resolver and the connection test use when there is no draft key. They name the same reference only while apiKeyEnv stays at the default TAVILY_API_KEY. A different apiKeyEnv leaves the card on TAVILY_API_KEY while search and the test read the new name.
Updates
- 2026-10-12 0.3.2 (please update) DSH 0.2: drop the removed
settings.register; move the card fromsettings.plugin.itemtoplugins.row.configon the Plugins page (dsh-tavily#web-search-tavily); read and write credentials throughremote.credentialsand refresh oncredentials/reference-updated; snapshot store is the peer@deepseek-ai/dsh-client-storeso it shares the host instance. Peers stay on 0.2.x (including0.2.0-rc.2and0.2.1-alpha) and cordis 4.x. A failed save shows its error code; a failed credential read locks the toggle. The connection test is a POST-onlyconnection.fetchroute, so an anonymous request gets the host's 401.@deepseek-ai/dsh-client-connectionis a peer because the plugin injectsconnection. Toggle and key still live on credentials. - 2026-08-17 0.3.1 Fix: installing alongside other client plugins could freeze Web on “Failed to load plugins / dsh-tavily” (the then-current
settings.plugin.itemneededkey). That slot is gone in DSH 0.2; use 0.3.2. - 2026-08-17 Configuration page: Test connection at the bottom-left. Works without a key (Tavily keyless). A saved key uses the account path and 1 credit. Does not change the toggle or Save.
Author
Thanks for the star ❤️ tonkatsu258 · personal site