How anysearch-dsh works
DeepSeek Harness installs anysearch-dsh into the web profile and automatically selects AnySearch for the existing ctx.web search and fetch provider. web_search returns titles, snippets and URLs. web_fetch sends a specific public HTTP(S) URL to AnySearch Extract and returns cleaned content. The plugin also exposes anysearch_capabilities, anysearch_search and anysearch_batch_search for live capability discovery, vertical searches and batches of one to five searches.
Configuring anysearch-dsh
The bundled profile layer uses these values:
| Key |
Default |
Purpose |
apiKeyEnv |
ANYSEARCH_API_KEY |
DeepSeek Harness credential reference |
baseURL |
https://api.anysearch.com |
AnySearch API base URL |
maxRenderedContentChars |
12000 |
Maximum content characters rendered to the model per advanced tool call |
To override the bundled id: web-search-anysearch entry, add the complete configuration block to the target DeepSeek Harness profile’s user configuration layer. Keep that id unchanged and do not add a second AnySearch provider under another ID.
DeepSeek Harness resolves the managed credential for every operation. Store an optional key as ANYSEARCH_API_KEY in $DSH_HOME/.credentials.yaml, which defaults to ~/.dsh/.credentials.yaml. A launching ANYSEARCH_API_KEY environment variable takes priority. Missing credentials use AnySearch’s anonymous quota.
Commands for anysearch-dsh
DeepSeek Harness manages the package with plugin --profile web update @anysearch/anysearch-dsh and plugin --profile web remove @anysearch/anysearch-dsh. Use --dump-config with the web profile to inspect the composed configuration without printing the credential value.
Requirements and limits
DeepSeek Harness requires Node.js 22.19 or 24+, pnpm 11.7, npx, and pnpm on PATH. The documented installation command is the same on Windows, Linux and macOS. DeepSeek Harness is in developer preview and may introduce compatibility-breaking changes. URL extraction is available through the provider-neutral web_fetch.
Written from the project's own documentation and kept in sync with it. Where the two disagree, the source is authoritative — read the README on GitHub