dsh-web-gateway
Manifest validResilient web search and page extract tools for DeepSeek Harness with provider fallback and SSRF-safe extract
📦 @goodandready/dsh-web-gateway
Resilient Web Search & SSRF-Safe Markdown Extract Fallback Chain for DeepSeek Harness
🇬🇧 English • 🇨🇳 中文说明 • 🇷🇺 Русский
|
⭐ If you like this plugin, please star it on GitHub — it shows me that the plugin is useful to you and motivates me to keep developing it.
🐛 If you find a bug or would like to request a feature, open a GitHub issue in any language — I will review your proposal and implement useful suggestions in a future plugin version. |
Resilient web search and page extract tools for DeepSeek Harness.
When the built-in web_search / web_fetch tools hit rate limits, captchas, or empty results, this plugin gives the model a separate fallback chain with different tool names (no registration collisions).
Tools
| Tool | Purpose |
|---|---|
web_gateway_search | Search the web. Chain: Tavily → Brave → Firecrawl → Exa → SearXNG → DuckDuckGo |
web_gateway_extract | Fetch a URL as markdown. Chain: Firecrawl → Tavily → Crawl4AI → Jina → readability |
web_gateway_research | Search + extract top sources into a capped multi-source brief |
A provider is skipped on missing key, empty result, HTTP 429/5xx, rate limits or network error. Built-in Circuit Breaker temporarily pauses providers suffering consecutive failures to avoid long timeouts. Results are cached in memory (configurable TTL). Successful responses include provider, skipped (providers not used and why), and cached.
Extract URLs are validated: http/https only, no embedded credentials, and hostnames must resolve to public IPs (loopback / RFC1918 / link-local / metadata blocked). Set allowInternalUrls only if you intentionally need internal targets.
Install
dsh plugin --profile web add @goodandready/dsh-web-gateway
Restart the web profile after install.
Credentials
Add keys under Settings → Credentials (or $DSH_HOME/.credentials.yaml). The settings card stores only credential names, never secret values:
| Default name | Used by |
|---|---|
TAVILY_API_KEY | search + extract |
FIRECRAWL_API_KEY | search + scrape |
EXA_API_KEY | search |
BRAVE_API_KEY | search |
CRAWL4AI_TOKEN | extract (only if crawl4aiUrl is set) |
Settings
Configure in Settings → Plugins → Web Gateway:
| Setting | Default | Meaning |
|---|---|---|
defaultLimit | 5 | Default search result count |
maxLimit | 20 | Hard search cap |
timeoutMs | 30000 | Per-provider timeout |
cacheTtlMs | 600000 | In-memory cache TTL (0 disables) |
searxngUrl | empty | Local SearXNG base URL; empty disables |
crawl4aiUrl | empty | Crawl4AI base URL; empty disables |
includeDomains / excludeDomains | empty | Search domain allow/deny lists |
freshness | any | any / day / week / month |
diskCacheEnabled | true | Persist cache under the DSH profile |
dailyCap* | 0 | Per-provider daily caps (0 = unlimited, UTC day) |
searchProviderOrder | tavily,firecrawl,exa,searxng | Comma-separated search provider order |
extractProviderOrder | firecrawl,tavily,crawl4ai | Comma-separated extract provider order |
allowInternalUrls | false | Allow private/loopback extract targets |
How it relates to core DSH web tools
DeepSeek Harness already ships web_search and web_fetch via @deepseek-ai/dsh-tool-web. This plugin does not replace them. It registers web_gateway_* tools so the model can fall back when the built-in path fails.
Development
npm test
npm run check
Tests run offline with mocked fetch (no live network).
Visual verification
Plugins settings card for Web Gateway — Dark and Light themes side by side:

License
MIT © GooDAnDReaDY
Comments
Loading…
From the same category
DeepSeek Harness plugin for Reactive Resume: bridges your resumes and job applications into a Harness session over MCP.
★ 41.7k
↓ 270/wk
MIT
Aug 24, 2026
dsh plugin --profile web add dsh-plugin-reactive-resumeby Tencent
Let AI agents use your real, logged-in browser without interrupting your work. CLI + extension for browser automation across any shell-capable AI agent.
★ 8.1k
↓ 7k/wk
MIT
TypeScript
Sep 30, 2026
dsh plugin --profile terminal add @wxg-prc-cpg/browser-skill-dsh-pluginby yjh051108
dsh-routing-suite — injector + router-standard kit: install the runtime injector first, then the task-aware reasoning-mode router preset (measured P1-P23).
★ 7k
MIT
JavaScript
Sep 18, 2026
dsh plugin --profile web add @dsh-external/dsh-super-injectorby Q00
Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CLI, Gemini CLI, OpenCode,
★ 6.2k
MIT
Python
Oct 3, 2026
by dsh-market
The plugin market inside DeepSeek Harness — browse, search, one-click install · DSH 可视化插件市场
★ 5.4k
↓ 164.4k/wk
MIT
TypeScript
Oct 3, 2026
dsh plugin --profile web add dshmarketby superdesigndev
OpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn
★ 4.1k
NOASSERTION
Python
Oct 3, 2026
dsh plugin --profile web add treg-dsh