DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Web Search Anysearch — DSH Plugin for DeepSeek Harness
← Plugins
W

@jpa957/dsh-web-search-anysearch

Web Search Anysearch

AnySearch-backed search provider plugin for DeepSeek Harness (ctx.web) with round-robin API-key rotation, per-key cooldown failover, and a Settings-page card

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:JPA957/dsh-web-search-anysearch#0f6e443a1cbf40810f319f710c2953b0c6fe6963
READMECompatibilityVersions

Compatibility and provenance

Web Search Anysearch is published as @jpa957/dsh-web-search-anysearch and currently resolves to version 0.3.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
9/3/2026

Versions

0.3.0stable
9/3/2026
0.1.0stable
9/2/2026

Related plugins

Loading related plugins…

Latest
0.3.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
9/3/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in search-research.

Browser Skill Dsh Plugin@wxg-prc-cpg/browser-skill-dsh-pluginDeepSeek Harness tool plugin that exposes BrowserSkill browser automation (browser_* tools) to the modelWeknora@wxg-prc-cpg/dsh-weknoraWeKnora knowledge retrieval tools for DeepSeek Harness (dsh): semantic search, document reading and RAG/agent answers over your own knowledge bases.Free Searchdsh-free-searchFree web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl keyless; Parallel/Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.Find Plugindsh-find-pluginFind DeepSeek Harness plugins inside the agent — live GitHub dsh-plugin topic search, ranked by stars.

README

@jpa957/dsh-web-search-anysearch

[English] | 中文

An AnySearch-backed search provider plugin for DeepSeek Harness, registered on the ctx.web seam (web-search-anysearch).

The plugin ships two halves, like the built-in providers:

  • Host half: registers the anysearch search provider with round-robin key rotation and per-key cooldown failover, and installs a settings section so the configuration is editable in the web app.
  • Browser half: its own tab in the Settings navigation (Settings → AnySearch) where the API key, endpoint, and result count are filled in the UI — no patch-file editing.

Install

dsh plugin --profile web add @jpa957/dsh-web-search-anysearch

(or from a local checkout: dsh plugin --profile web add /path/to/dsh-web-search-anysearch)

The bundle's patch layer registers the provider automatically. To make it the web seam's default search backend, add the pin to your own patch layer, applied after the bundle's layer:

- id: web
  config:
    searchProvider: anysearch
    fetchProvider: http

Migrating from a hand-mounted copy? Remove the old - insert: row that pointed at the plugin file from your profile patch first — the bundle now supplies its own registration, and a duplicate id would fail the composition. Keep the searchProvider: anysearch pin.

Configuration in the Settings tab

Open the web app's Settings → AnySearch tab: the page lets you set

  • API key — stored in the Host's credentials store under the key reference below; the literal is never sent back to the browser (the card only reports configured / unset).
  • Key reference — the credential/environment name the provider resolves per search; defaults to ANYSEARCH_API_KEY. A comma-separated value forms a key pool.
  • Endpoint base — defaults to https://api.anysearch.com when blank.
  • Max results — result count requested per search (1-10).

Edits are staged and written on Save; Discard reverts. The settings namespace is web-search-anysearch (the section the card edits), so the same configuration can also be managed through the settings document.

Key-pool behavior

Keys are gathered from the credentials reference (comma-split), plus any composition-layer apiKey/apiKeys literals, deduplicated. Searches rotate round-robin; a key-scoped failure — rate limiting (HTTP 429 / "retry after N seconds", honoring the API's retry-after header), quota exhaustion, or auth rejection (401/403) — puts that key on cooldown (60s default, 10min for auth/quota) and retries the next key within the same search, up to six attempts. An exhausted pool aggregates one WEB_PROVIDER_ERROR naming the pool size, masked key, and the API's request_id. An empty pool searches anonymously.

Key safety

Keys enter only through the credentials domain (Settings page or $ANYSEARCH_API_KEY), or through the composition config if you explicitly put them there. This repository contains no secrets; tests use obviously fake as_sk_unit-* keys. Diagnostics mask keys to their first ten characters.

How it behaves

  • Rotation: round-robin cursor advances on every successful search.
  • Failover: key-scoped failures cool the key down and retry the next key inside the same search; non-key-scoped failures (network, 5xx, unprocessable bodies) surface immediately.
  • Self-correction: if every key is cooling down, the earliest-deadline key is retried anyway.
  • Aborts surface as WEB_ABORTED from the fetch, body-parse, and signal phases.
  • Mapping: entries without a URL are dropped, duplicate URLs collapse, content is preferred over snippet; truncated is always false because the web service owns the final maxResults bound (clamped to the API's documented 1-10).

Development

node tests/unit.mjs           # offline unit tests (plain node, no framework)
node tests/client-bundle.mjs  # client-bundle contract smoke test
node tests/live.mjs           # live anonymous smoke test against the real endpoint

The browser half (lib/client.js) is a prebuilt, hand-maintained bundle in the client-module factory format — no build step is required. When installing from a git URL or npm, the committed lib/client.js is what the web app serves.

License

MIT