DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
W

dsh-web-search-ddg

Web Search Ddg

适用于 DeepSeek Harness(ctx.web 接口)的免密 DuckDuckGo 网页搜索提供商——无需 API 密钥、无需令牌、无需账户

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:tatselkrik/dsh-web-search-ddg#f7510db9ddaca4c18a678c6a2b73ab1f68900dad
README兼容性版本

兼容性与来源证明

Web Search Ddg 以 dsh-web-search-ddg 发布,当前版本为 0.1.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/8/24

版本

0.1.1stable
2026/8/24
0.1.0stable
2026/8/24

相关插件

正在加载相关插件…

最新版
0.1.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/8/24
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 search-research 分类下经过校验的插件。

Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:27 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel/You.com 无需密钥;通过 MCP 支持 Zhihu 全局/站内搜索,以及 Perplexity/SerpBase/DeepSeek(官方 + 原生工具/搜索)/Baidu/Kimi/Aliyun/Douba)Ab Wechat Scrapedsh-ab-wechat-scrape--- description: "树外 wechat_scrape 工具:获取微信公众号文章,过滤推广区块,并将每篇文章保存为 Markdown 文件,供此机器的 dsh 配置文件维护者使用。" kind: "package-reference" ---Arisdsh-arisARIS research-workflow 技能作为 DeepSeek Harness 捆绑包:包含 82 项技能,以及通过 Codex 进行的跨模型对抗性审查。Ab Market Researchdsh-ab-market-research一个树外 DeepSeek Harness 插件:将 trade_search 工具(多轮扩展方面的查询规划、出版商级别排序、来源多样性、JSON 快照)及其浏览器卡片集成在一个包中。

README

dsh-web-search-ddg

Keyless DuckDuckGo web search for DeepSeek Harness. No API key. No account. No credit card. No tokens burned — the search runs as a plain HTTP scrape of DuckDuckGo's lite results page, registered through the harness's public ctx.web provider seam.

Why

DeepSeek Harness is free software. The agent running inside it can be free. Everything a coding agent actually needs — files, shell, git, planning, subagents — is local and costs nothing. Web search was the one wall: every shipped provider requires a paid account (DeepSeek platform key, Exa, Perplexity), while closed tools like Claude Code and ChatGPT bundle live search into their subscriptions.

This plugin exists because "free" shouldn't mean "free, except the internet." Search should not be the feature that forces your first API signup and your first metered bill. It runs on the same public page your browser uses — no quota to exhaust, no key to rotate, nothing to cancel when the trial ends. And because it lives in your checkout rather than someone's endpoint, it is yours to audit, patch, and keep: free software deserves free search.

Features

  • Zero credentials — available() is a pure config-shape check; nothing to store in the credential vault
  • Zero model tokens — unlike the in-box DeepSeek provider, one search never costs an auxiliary model turn
  • Strict mode — only DuckDuckGo result-marked anchors are accepted; zero parsed results raises WEB_PROVIDER_ERROR, never a silent empty success
  • Redirect-aware parsing — /l/?uddg= wrappers unwrapped to real targets; internal duckduckgo.com links dropped; duplicate URLs deduplicated
  • Entity-safe text — numeric/hex/named entities decoded with & last, so escaped text never double-decodes
  • GET and POST — POST form fallback for deployments where GET trips anomaly checks
  • Snippet pairing done right — each snippet attaches to its preceding anchor only

Install

Into a profile (recommended)

dsh plugin --profile my-profile add github:tatselkrik/dsh-web-search-ddg

Built artifacts are committed under lib/, so no build-script allowance is needed. The bundle inserts itself into the ctx.web registry; when it is the only usable search provider it is auto-selected. To pin it explicitly, add to your profile's cordis.patch.yml:

- id: web
  name: '@deepseek-ai/dsh-web'
  config:
    searchProvider: duckduckgo

Then start with your profile:

dsh --profile my-profile web

Inside a source checkout (in-tree variant)

For a Harness development checkout that already contains the in-tree package, replace packages/web/web-search-ddg/src/ with this repository's src/, then rebuild from the Harness root:

pnpm exec tsc -b packages/web/web-search-ddg
pnpm exec vitest run packages/web/web-search-ddg

A fresh in-tree integration also needs the package added to the Harness workspace and build graph. For normal use, the profile installation above is the supported route and requires no source-tree changes.

Config

KeyDefaultMeaning
baseURLhttps://lite.duckduckgo.com/lite/The lite results page. Extra params on the base (e.g. ?kl=us-en) are preserved.
limit10Provider-level cap on sources per search; the seam still enforces the tool request's maxResults.
methodgetQuery verb. GET sends q in the URL; POST sends it only as a URL-encoded form body.
timeoutMs15000Wall-clock cap per request, independent of caller cancellation; timeouts surface as WEB_PROVIDER_ERROR.

Override any of them via a patch row:

- id: web-search-ddg
  name: dsh-web-search-ddg
  config:
    limit: 5
    method: post

Security and performance notes

Security

  • No secrets, no vault access — the provider reads nothing from the credentials domain; there is nothing to leak.
  • No install-time code execution — no prepare/postinstall scripts; lib/ ships committed, so installs run zero build scripts (the supply-chain vector the harness docs warn about).
  • Bounded dependency ranges — every published dependency has an explicit caret range, never *; align them with your running harness version if you prefer exactness.
  • Input handling — GET queries travel in the encoded q URL parameter; POST queries travel only in the encoded form body. Results are parsed as inert text (never evaluated), and unmarked/internal/non-http targets are rejected before they can become citations.
  • Parser honesty — extraction is regex-based, not a full HTML parser: adequate for the lite page's flat markup, and it only ever sees what DuckDuckGo returns. Treat result titles/snippets like any search tool's output — untrusted text entering model context.
  • Privacy — each query is visible to DuckDuckGo Inc. (that's how searching works); nothing else receives anything, and no telemetry exists in this package.

Performance

  • One small HTTP round trip per search (~20–60 KB lite page); parsing is a single linear token pass.
  • Stateless between calls; per-request wall clock capped at timeoutMs (default 15 s) even if a consumer forgets cancellation.
  • Result count bounded by limit before the seam applies its own maxResults, so context cost stays predictable.
  • Contrast: the in-box DeepSeek provider pays a full auxiliary model turn (seconds + tokens) per search; this pays one fetch.

Known limitations

  • Unofficial endpoint — no SLA. Aggressive bursts can earn 403s/CAPTCHAs; markup changes break parsing loudly until patched.
  • No published dates — the lite page does not expose them.
  • Bing-index depth — result quality tracks DuckDuckGo's index, slightly behind Google for niche technical queries.
  • Peer dependency versions — declared with loose ranges against the harness packages; if you hit class-identity issues (WebError instanceof) between a registry-installed copy and an in-box copy, pin dependencies to match your running harness version.

Development

pnpm install --frozen-lockfile
pnpm run typecheck
pnpm test             # 24 tests
pnpm run build         # regenerate committed lib/
git diff --exit-code -- lib

lib/ is committed so end users never need a build step.

License

MIT