DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

Surfing Plugin — DeepSeek Harness 插件(DSH Plugin)
← Plugins
S

dsh-surfing-plugin

Surfing Plugin

适用于 DeepSeek Harness 的 SearXNG 搜索和 Crawl4AI 抓取提供程序

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

npx -y @deepseek-ai/dsh plugin --profile web add github:cyijun/dsh-surfing-plugin#40041327e552157bafcc9bba866925b775c1469d
README兼容性版本

兼容性与来源证明

Surfing Plugin 以 dsh-surfing-plugin 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

0.1.0stable
2026/8/21

相关插件

正在加载相关插件…

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

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

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

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

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

相关插件

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

Browser Skill Dsh Plugin@wxg-prc-cpg/browser-skill-dsh-plugin向模型提供 BrowserSkill 浏览器自动化(browser_* 工具)的 DeepSeek Harness 工具插件Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:13 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl 无需密钥;Parallel/Perplexity/SerpBase/DeepSeek 需要密钥),支持时间筛选、平台搜索和 web_fetch,并提供网页设置界面。Find Plugindsh-find-plugin在代理中查找 DeepSeek Harness 插件——实时搜索 GitHub 上的 dsh-plugin 主题,并按星标数排序。Anysearch Dsh@anysearch/anysearch-dsh适用于 DeepSeek Harness 的 AnySearch 网络搜索和获取提供程序及高级工具

README

dsh-surfing-plugin

English | 中文

dsh-surfing-plugin adds self-hosted web access to DeepSeek Harness: web_search uses SearXNG and web_fetch uses Crawl4AI. It registers providers with DSH's ctx.web service, so the native tool names, arguments, rendering, timeouts, cancellation, and result limits remain unchanged.

Architecture

flowchart LR
  A[Native DSH web_search] --> B[surfing-searxng provider]
  B --> C[SearXNG /search]
  D[Native DSH web_fetch] --> E[surfing-crawl4ai provider]
  E --> F[Crawl4AI /crawl]

The bundled cordis.patch.yml mounts this plugin, selects surfing-searxng and surfing-crawl4ai, and adds a fetch-only native tool consumer. The separate consumer works in both DSH assemblies: headless keeps its host-level web_search, while the Web UI keeps the web_search mounted by each Agent Preset. The built-in DeepSeek search provider may remain mounted but is not selected.

Requirements

  • Node.js ^22.19.0 or >=24.0.0
  • DeepSeek Harness >=0.1.0-rc.6 <0.2.0
  • Reachable SearXNG and Crawl4AI services
  • JSON enabled in SearXNG's search.formats

Quick start

The endpoint values may be service roots or complete /search and /crawl URLs:

export SEARXNG_URL=http://127.0.0.1:8080
export CRAWL4AI_URL=http://127.0.0.1:11235

# Current Crawl4AI releases enable Bearer authentication by default.
export CRAWL4AI_API_TOKEN=replace-with-your-token

Install a local checkout into the web profile:

dsh plugin --profile web add .
dsh --profile web --dump-config
dsh --profile web

After npm publication:

dsh plugin --profile web add dsh-surfing-plugin

Remove it with dsh plugin --profile web remove dsh-surfing-plugin.

Configuration

Explicit configuration wins over environment values. Override this plugin's row in $DSH_HOME/profiles/web/cordis.patch.yml:

- id: surfing-plugin
  config:
    searxng:
      url: https://search.example.com
      apiKeyEnv: MY_SEARXNG_KEY
      authHeader: X-API-Key
      authScheme: ''
      language: en
      categories: general,news
      safeSearch: 1
      timeRange: month
    crawl4ai:
      url: https://crawl.example.com
      apiKeyEnv: CRAWL4AI_API_TOKEN
      authHeader: Authorization
      authScheme: Bearer
      markdownMode: raw
      maxContentChars: 100000
FieldEnvironment or defaultMeaning
searxng.urlSEARXNG_URLService root or /search endpoint
searxng.apiKeynoneOptional literal key
searxng.apiKeyEnvSEARXNG_API_KEYEnvironment variable containing the optional key
searxng.authHeaderAuthorizationAuthentication header
searxng.authSchemeBearerAuthentication prefix; empty sends the key directly
searxng.languageserver defaultSearXNG language parameter
searxng.categoriesserver defaultComma-separated categories parameter
searxng.safeSearchserver default0, 1, or 2
searxng.timeRangenoneday, month, or year
crawl4ai.urlCRAWL4AI_URLService root or /crawl endpoint
crawl4ai.apiKeynoneOptional literal key
crawl4ai.apiKeyEnvCRAWL4AI_API_TOKENEnvironment variable containing the optional key
crawl4ai.authHeaderAuthorizationAuthentication header
crawl4ai.authSchemeBearerAuthentication prefix; empty sends the key directly
crawl4ai.markdownModerawPrefer raw, fit, or citations markdown
crawl4ai.maxContentChars100000Provider content cap before returning to DSH

A literal apiKey takes precedence over the environment variable named by apiKeyEnv. No authentication header is sent when no key is available.

Provider behavior

The SearXNG provider sends form-encoded POST /search requests with format=json. It keeps absolute HTTP(S) result URLs, deduplicates by URL, maps title, content, and publishedDate into DSH sources, and exposes non-empty SearXNG answers as result content.

The Crawl4AI provider sends the minimal { "urls": [url] } body to POST /crawl; model input cannot supply browser or crawler configuration. Only HTTP(S) targets are accepted. Target non-2xx status codes remain successful DSH fetch results, while Crawl4AI API failures become structured WebError values.

fit and citations modes fall back to raw markdown when their preferred field is empty. HTML is returned only when no markdown representation exists.

Security

  • Prefer apiKeyEnv; never commit credentials.
  • Use HTTPS for non-loopback services.
  • Crawl4AI owns browser isolation, target-network access, and SSRF policy. Restrict its network and authentication before exposing it.
  • Backend redirects are rejected so credentials are not forwarded to another endpoint.

GitHub installation

Git installation builds from source through prepare. Pin a commit:

dsh plugin --profile web add github:cyijun/surfing-plugin#COMMIT_SHA

pnpm 10 and newer require build-script approval for Git dependencies. If the first install is blocked, copy its exact package key into the profile's pnpm-workspace.yaml and retry:

allowBuilds:
  dsh-surfing-plugin: true

npm packages and pnpm pack tarballs already contain lib/ and do not need this approval.

Development and publishing

corepack pnpm install
corepack pnpm run check
corepack pnpm pack

CI runs on main and pull requests. Tags matching v* trigger the npm Trusted Publishing workflow. Before the first release, configure this repository and publish.yml as an npm Trusted Publisher and confirm that the dsh-surfing-plugin package name remains available.

License

MIT