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
F

dsh-free-web

Free Web

免费联网搜索:不用搜索 API,抓取 Bing 公开结果页,必要时用本机 Chrome/Edge 无头渲染;为内置 web_search 提供搜索能力,并在输入框加入「关闭 / 智能 / 始终」三档联网开关、在左侧栏加入搜索面板。

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

npx -y @deepseek-ai/dsh plugin --profile web add github:skyhome000/dsh-free-web#e4cc1d548a988b52579fd8b4d778c210e2bc8a9e
README兼容性版本

兼容性与来源证明

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

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

版本

1.1.3stable
2026/10/24

相关插件

正在加载相关插件…

最新版
1.1.3
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 1
周下载
0
最近提交
2026/10/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" ---Ab Market Researchdsh-ab-market-research一个树外 DeepSeek Harness 插件:将 trade_search 工具(多轮扩展方面的查询规划、出版商级别排序、来源多样性、JSON 快照)及其浏览器卡片集成在一个包中。Arisdsh-arisARIS research-workflow 技能作为 DeepSeek Harness 捆绑包:包含 82 项技能,以及通过 Codex 进行的跨模型对抗性审查。

README

dsh-free-web

Free web search for DeepSeek Harness (DSH) with no search API and no API key.

dsh-free-web registers a search provider that reads Bing's public result page over plain HTTPS, falls back to its RSS view, and only then falls back to a local Chrome/Edge headless render. It powers DSH's built-in web_search tool, adds a per-session Web off / Smart / Always toggle next to the composer's permission control, and adds a search panel to the left sidebar.

No browser extension is involved. DSH's UI is a web surface, so this package has two halves: a Host half (Node) and a Client half (React components loaded by DSH itself). Chrome is only an optional headless renderer invoked by the Host.

中文说明

Features

  • No search API, no key: the provider scrapes the same public result page a browser would load.
  • Three search modes per session in the composer toolbar:
    • Off — web_search is blocked by a Host guard; web_fetch stays available for links the user provides.
    • Smart (default) — the model decides during reasoning when to search, and may search repeatedly and follow up with web_fetch.
    • Always — the Host runs one search automatically at the start of every user turn, injects the results as runtime context, and the model may search again if they are insufficient.
  • Left-sidebar panel for manual searches, with engine status and per-result links.
  • Works on Web and Desktop: routes live under /api/dsh-free-web/ and the Client half uses relative URLs, so the same code works for dsh web and the Desktop shell's dsh-app:// page.
  • Fail-open: if every engine fails, the agent tool falls back to its normal error and the turn continues.

Screenshots

The composer toggle — pick Off / Smart / Always for the current session:

Composer web-search toggle with the three modes

The sidebar panel — engine status, manual search, and per-result links:

Sidebar web-search panel

Requirements

  • DSH 0.2.1-rc.3 or newer (developed and tested against 0.2.1-rc.3, desktop profile, Windows 11).
  • Node.js 20+ on the Host (DSH bundles its own runtime).
  • Optional: Google Chrome or Microsoft Edge for the render fallback. It is auto-detected; the plugin also works with HTTP-only search.

Install

Clone the repository somewhere stable (the profile links to this directory, so do not delete it):

git clone https://github.com/skyhome000/dsh-free-web.git

Then install it as a local DSH bundle, either from the GUI (Plugins → Add plugin → from directory) or with the plugin-manager tool:

plugin_manager install_bundle target: /absolute/path/to/dsh-free-web

Refresh the DSH window once (Ctrl+R) after installing or updating, so the browser half is loaded.

The bundle patch switches the built-in web service to this provider and keeps the existing HTTP fetcher selected:

- id: web
  name: '@deepseek-ai/dsh-web'
  config:
    searchProvider: free-web
    fetchProvider: http

Uninstalling the bundle removes the patch and restores the shipped defaults.

Usage

Composer toggle

The button sits to the right of the permission preset in the composer toolbar and shows the current mode (🌐 Smart web):

ModeBehaviour
Web offweb_search calls are rejected by a Host guard; web_fetch remains available so the model can open a URL the user supplied.
Smart (default)The model searches on its own when the answer needs current or externally verifiable facts, and may search several times while reasoning.
AlwaysThe Host automatically runs one search for the turn before the first model step (15 s cap) and injects the results as runtime context; the model uses them and can refine with more searches.

The mode is stored per session in %DSH_HOME%/free-web/session-modes.json (up to 500 sessions) and applies to the next step immediately — no new session needed.

Sidebar panel

Click 联网搜索 / Web Search in the left sidebar to open a manual search panel:

  • query input with Enter-to-search;
  • engine mode: Auto / HTTP / Chrome;
  • engine status (HTTP ready, local browser version, provider wired into web_search), re-checkable;
  • result cards with title, URL and snippet, opening in a new tab;
  • fallback notes when an engine fails.

How it works

  1. Provider — index.js registers a WebSearchProvider with id free-web into ctx.web. available() is always true; search() runs the chain below and returns { sources, truncated }.
  2. Search chain
    1. https://www.bing.com/search?q=… parsed from li.b_algo blocks (title, URL, snippet);
    2. the same query with &format=rss parsed as RSS;
    3. chrome --headless=new --dump-dom on the same URL, using a throwaway profile under the OS temp directory.
  3. Per-agent policy — on agent/created (and for agents that already exist when the plugin mounts) it registers, on the agent's own context:
    • a ctx.tools.guard that rejects web_search while the session is off;
    • a systemPrompt.section whose text follows the current mode;
    • a systemPrompt.context that carries the automatic results in always mode;
    • an agent/pre-step listener that performs the automatic search on the first step of each turn.
  4. Client UI — client.js registers the sidebar entry, the main panel (main, key free-web) and the composer toggle (conversation.input.left). It talks to the Host over api/dsh-free-web/status, /search and /mode with relative URLs.

Configuration

SettingValue
DSH_FREE_WEB_CHROME / CHROME_PATHExplicit browser executable path.
Auto-detected pathsChrome and Edge under Program Files / Program Files (x86) / LocalAppData on Windows; /Applications/Google Chrome.app/…, /usr/bin/google-chrome, chromium, microsoft-edge elsewhere.
Resultsweb_search asks for up to 8 sources; the panel requests 8.
TimeoutsHTTP page 7 s, RSS 6 s, local browser 22 s, panel request 40 s, automatic search 15 s.
Mode store%DSH_HOME%/free-web/session-modes.json.

There is no plugin Config schema; the values above are code constants and environment variables.

Security

  • Routes accept only local callers: a missing Origin, null, the dsh-app: shell origin, or a loopback host (127.0.0.1, localhost, [::1]). Other origins get 403.
  • POST must be application/json, which is the CSRF boundary: a cross-site JSON request needs a preflight that only local origins pass. Bodies are capped at 64 KiB; queries at 400 characters.
  • No cookies, no browser session, no login state is read. The optional headless browser starts with a fresh temporary profile and is deleted afterwards.
  • Search results are external, untrusted data. The built-in web_search tool already labels them as untrusted; the panel does the same.

Development

npm test        # node:test — 15 offline unit tests
npm run check   # node --check for both halves

The tests cover the HTML/RSS parsers (including Bing redirect unwrapping), the route/guard wiring, the per-session mode route, and the Client half's slot registrations and toggle rendering. They use a temporary DSH_HOME and never touch the network.

index.js              Host half: provider, routes, mode store, agent policy
client.js             Client half: sidebar panel and composer toggle
cordis.patch.yml      Bundle patch: plugin row + web.searchProvider override
locale/{en,zh}.json   Plugin title/description for the Plugin Manager
icon.svg              Plugin icon
test/                 Offline unit tests
.github/workflows/    CI (syntax check + tests on Ubuntu and Windows)

Limitations

  • Bing can change its markup, rate-limit scraping, or serve different results by region; the chain retries through RSS and a local browser, but relevance is Bing's.
  • In Always mode the automatic query is the user's message text (up to 400 characters). Long or conversational prompts may produce broad results; the model is instructed to refine with its own search.
  • The Chrome fallback is slower (typically 6–15 s) and is only used when HTTP parsing fails.
  • This project is not affiliated with DeepSeek, Microsoft, or Google.

License

MIT