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.

DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
F

dsh-free-web

Free Web

Free web search: no search API required; fetches publicly available Bing result pages and, when necessary, uses local Chrome/Edge headless rendering. Provides search capabilities for the built-in web_search, adds three web access modes—“Off / Smart / Always”—to the input box, and adds a search panel

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

npx -y @deepseek-ai/dsh plugin --profile web add github:skyhome000/dsh-free-web#e4cc1d548a988b52579fd8b4d778c210e2bc8a9e
READMECompatibilityVersions

Description

Free web search: no search API required; fetches publicly available Bing result pages and, when necessary, uses local Chrome/Edge headless rendering. Provides search capabilities for the built-in web_search, adds three web access modes—“Off / Smart / Always”—to the input box, and adds a search panel to the left sidebar.

Compatibility and provenance

Free Web is published as dsh-free-web and currently resolves to version 1.1.3. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/24/2026

Versions

1.1.3stable
10/24/2026

Related plugins

Loading related plugins…

Latest
1.1.3
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 1
Weekly downloads
0
Last push
10/24/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

Related plugins

More verified plugins in search-research.

Free Searchdsh-free-searchFree web search for DeepSeek Harness: 27 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel/You.com keyless; Zhihu global/site via MCP and Perplexity/SerpBase/DeepSeek (official + native tools/search)/Baidu/Kimi/Aliyun/DoubaAb Wechat Scrapedsh-ab-wechat-scrape--- description: "The out-of-tree wechat_scrape tool: retrieves WeChat official-account articles, filters promotional blocks, and saves each as a Markdown file, for maintainers of this machine's dsh profiles." kind: "package-reference" ---Ab Market Researchdsh-ab-market-researchAn out-of-tree DeepSeek Harness plugin: the trade_search tool (multi-round aspect-broadening query planning, publisher-tier ranking, source diversity, JSON snapshot) and its browser card in one package.Arisdsh-arisARIS research-workflow skills as a DeepSeek Harness bundle: 82 skills plus cross-model adversarial review through 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