Integrate AnySearch into DeepSeek Harness to provide real-time web search, vertical domain search, and concurrent batch search capabilities.
- Language
- TypeScript
- License
- MIT
- Branch
- main
Install
$ dsh plugin --profile web add @anysearch/anysearch-dshRun the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial
Install via your agent
Install the DeepSeek Harness plugin anysearch-team/anysearch-dsh for me: review the repository at https://github.com/anysearch-team/anysearch-dsh first, then run the install command and verify the plugin loads successfully.
Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.
One-Line Pitch
Bring AnySearch's search capabilities as a plugin to DeepSeek Harness, enabling Harness's built-in web search to use AnySearch's real-time data source, while adding vertical domain search and concurrent batch search tools.
Core Capabilities
- Replace Harness's built-in
web_searchwith AnySearch as the data source, returning results with title, summary, and URL for easy citation - Provide
anysearch_capabilitiestool for models to discover searchable domains, vertical categories, and supported parameters in real-time - Provide
anysearch_searchtool supporting vertical search by tags, region, language and dynamic parameters, with optional cleaned content - Provide
anysearch_batch_searchtool for concurrent execution of 1-5 independent searches, where single failure doesn't affect other results - Use DSH managed credentials parsing API Key; credential rotation takes effect on next request without restarting DSH
- Fall back to AnySearch anonymous quota when no API Key is present, enabling trial before registration
Technical Implementation
- Language: TypeScript (ESM,
type: module,sideEffects: false) - Key Dependencies:
@deepseek-ai/cordis(Cordis plugin runtime),@deepseek-ai/dsh-tools(tool registration),@deepseek-ai/dsh-credentials(credentials parsing),@deepseek-ai/schemastery(configuration schema) - Architecture Pattern: Cordis plugin;
cordis.patch.ymlsetssearchProvidertoanysearchand registersweb-search-anysearchentry; pluginapply()replaces default search Provider viactx.web.registerSearchProviderand registers three advanced tools toctx.tools - Entry File:
src/index.ts(exportsapply,Config,name = 'web-search-anysearch',inject = ['web', 'credentials', 'tools'])
Use Cases
Harness users want more real-time and professional search results without the model leaving Harness — for example, queries across vertical data sources like finance, academia, law, code, or running multiple independent search tasks in the same turn. This plugin挂载 AnySearch's search infrastructure into Harness's tool system; regular prompts continue using web_search, while professional searches are automatically handled by the advanced tools when needed.
Prerequisites and Compatibility
| Dependency | Minimum Version | Description |
|---|---|---|
| DSH (cordis/credentials/tools/web) | 0.1.0-rc.6+ (cordis ≥4.0.1-rc.1 <5) | From peerDependencies |
| Node.js | ^22.19.0 or >=24.0.0 | From engines.node |
| pnpm | 11.7.0+ | DSH plugin command relies on pnpm for profile management |
| Platform | macOS / Windows / Linux | README states same install command for all three platforms |
| Native Modules | None | Pure HTTP client, no node-pty, node:sqlite or other native dependencies |
Installation
dsh plugin --profile web add github:anysearch-team/anysearch-dsh
Configuration Options
| Config | Type | Description | Default |
|---|---|---|---|
apiKeyEnv | String (credential reference name) | DSH credential reference; falls back to AnySearch anonymous quota on parse failure | ANYSEARCH_API_KEY |
baseURL | String (absolute URL) | AnySearch API base address, must be http or https, cannot include user info | https://api.anysearch.com |
maxRenderedContentChars | Integer (≥1) | Maximum cleaned content characters to show the model per advanced tool call | 12000 |
FAQ
Q: What does this plugin do?
A: It integrates AnySearch into DeepSeek Harness, making Harness's built-in web_search and three new tools all use AnySearch's real-time data source; regular web search, vertical search, and batch search share the same credentials.
Q: Is an API Key required?
A: No. For quick trials without an API Key, requests use AnySearch's anonymous quota. After registering an AnySearch account and writing to ~/.dsh/.credentials.yaml (key ANYSEARCH_API_KEY: "as_sk_xxx") or a same-named environment variable, you get 1000 free daily calls.
Q: What's the relationship with Harness's built-in web_search?
A: After installation, cordis.patch.yml sets web.searchProvider to anysearch; regular queries still go through Harness's web_search, but the underlying data source is switched to AnySearch; professional searches are handled by the new tools anysearch_search, anysearch_batch_search, anysearch_capabilities.
Q: How to uninstall?
A: Run dsh plugin --profile web remove @anysearch/anysearch-dsh; Harness will remove the AnySearch Provider and fall back to the built-in search Provider; use dsh plugin --profile web update @anysearch/anysearch-dsh for updates.
Q: Doesn't it support Windows / Linux / macOS?
A: All three platforms are supported with the same install command, but requires Node.js, npx, and pnpm to be in PATH.
Q: What to do when errors occur?
A: All plugin errors are categorized under AnySearchClientError, with diagnostic fields like request_id, httpStatus, retry-after; use dsh --profile web --dump-config to check combined configuration (credential values are not output). If upstream issues are suspected, contact AnySearch with the returned request_id for investigation.
Learning Curve
Beginner — one-click install command, works with default config, no manual YAML editing needed; configuration editing only required when custom API addresses or limits are needed.
Known Issues and Limitations
- DeepSeek Harness is still in development preview and may release breaking changes (see README "Compatibility and limitations")
- Currently no
anysearch_extracttool provided; extracting full pages requires using AnySearch MCP - DSH settings page currently has no third-party Provider credential input field; API Key can only be configured via managed credentials file or environment variable
- Single batch search supports max 5 independent requests (
src/tools/batch.ts:16); single tool timeout is 60 seconds (src/limits.ts:2)
@anysearch/anysearch-dsh
AnySearch-powered real-time web and vertical search for DeepSeek Harness.
English | 简体中文
@anysearch/anysearch-dsh connects AnySearch to DeepSeek Harness as a plugin. Keep using Harness's native web_search while gaining real-time web search, vertical search, and concurrent batch search.
AnySearch is search infrastructure for AI agents, covering the public web and specialized data sources across code, finance, academia, law, security, and more.
Quick start
For AI Agents
# Fetch the complete installation guide, read it end to end, and then follow it step by step:
curl -fsSL https://raw.githubusercontent.com/anysearch-team/anysearch-dsh/refs/heads/main/docs/agent-installation.md
For Humans
Install the plugin into the web profile:
npx -y @deepseek-ai/dsh plugin --profile web add @anysearch/anysearch-dsh
Start DeepSeek Harness:
npx -y @deepseek-ai/dsh web
No API key is required for a quick start. Requests use AnySearch's anonymous quota until you configure one.
What you get
- Through Harness's built-in
web_search, AnySearch returns results with titles, snippets, and URLs for easy citation. - Discover searchable domains, vertical categories, and supported parameters in real time, then run advanced searches using tags, regions, languages, and structured parameters.
- Run one to five searches concurrently; an individual failure does not affect the other results.
- Advanced search can return cleaned page content on demand for deeper research.
Optional API key
Try it without an API key.
Sign up for an AnySearch account and configure an API key to get 1,000 free search calls per day.
Sign up or sign in at anysearch.com, then visit API Keys to get one. Store the key in $DSH_HOME/.credentials.yaml (~/.dsh/.credentials.yaml by default):
ANYSEARCH_API_KEY: "as_sk_your_key"
The plugin resolves the managed credential for every operation, so credential rotation reaches the next request without restarting DSH. A launching ANYSEARCH_API_KEY environment variable has higher priority.
Inspect the composed profile without exposing the credential value:
npx -y @deepseek-ai/dsh --profile web --dump-config
Tools
| Use case | Harness tool |
|---|---|
| Ordinary web search | web_search |
| Discover available domains and tags | anysearch_capabilities |
| Vertical or parameterized search | anysearch_search |
| Run one to five searches together | anysearch_batch_search |
For ordinary prompts, let Harness select the tool. Models can discover live domain and parameter definitions before making a specialized search.
Environment requirements
Requires Node.js 22.19 or Node.js 24+, pnpm 11.7, and DeepSeek Harness. The DSH plugin command uses pnpm to manage profile dependencies, so pnpm must be available on PATH.
Windows, Linux, and macOS use the same installation command. Before installing, ensure that Node.js, npx, and pnpm can all be run directly from PATH.
Configuration
The bundled profile layer automatically selects AnySearch as the existing ctx.web provider and mounts the advanced tools, so no changes are required by default.
To customize it, ask an AI assistant—or edit it manually—to add the complete block below to the target DSH profile's user configuration layer, overriding the bundled id: web-search-anysearch entry. Keep the id unchanged, replace the complete config, and do not add a second AnySearch provider under a different ID:
- id: web-search-anysearch
config:
apiKeyEnv: ANYSEARCH_API_KEY
baseURL: https://api.anysearch.com
maxRenderedContentChars: 12000
| Field | Default | Purpose |
|---|---|---|
apiKeyEnv | ANYSEARCH_API_KEY | DSH credential reference; missing uses anonymous access |
baseURL | https://api.anysearch.com | AnySearch API base URL |
maxRenderedContentChars | 12000 | Maximum cleaned-content characters rendered to the model per advanced tool call |
Manage the plugin
Update:
npx -y @deepseek-ai/dsh plugin --profile web update @anysearch/anysearch-dsh
Remove:
npx -y @deepseek-ai/dsh plugin --profile web remove @anysearch/anysearch-dsh
Compatibility and limitations
- DeepSeek Harness is in developer preview and may make compatibility-breaking changes.
- This plugin currently does not provide
anysearch_extract. For full-page extraction, use AnySearch MCP. - Configure the API key through DSH-managed credentials or an environment variable; the DSH settings page does not currently provide a third-party Provider credential field.
Documentation
Community & Support
Join the AnySearch community to share your experience, report issues, and get technical support.
- GitHub Issues: submit bug reports and usage feedback.
- WeChat Group: scan the QR code below and complete the group survey; staff will invite you after review.
- Discord Community: scan the QR code or follow the link to join directly.
WeChat group survey![]() | Discord invite![]() |
Development
git clone https://github.com/anysearch-team/anysearch-dsh.git
cd anysearch-dsh
pnpm install
pnpm run check
The live AnySearch E2E suite is opt-in. Run it without ambient credentials in anonymous mode:
ANYSEARCH_E2E=1 ANYSEARCH_E2E_ANONYMOUS=1 pnpm run test:e2e
License
Read the usage guide →
Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.
Listing badge
[](https://deepseek-plugin.org/plugins/anysearch-team/anysearch-dsh)Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

