Preface¶
DeepSeek Harness (DSH) adopts a plugin-based architecture, allowing local models to be extended with web access capabilities. When building local-first agents, developers often face two pain points: first, external search APIs are expensive or unreliable; second, built-in Web features may not meet specific scenario requirements or conflict with custom configurations.
dsh-web-automation is designed to address these issues. It integrates multi-engine keyless search, cached fetching, and platform-specific search into a standalone plugin.
Plugin Overview¶
This is a DeepSeek Harness (DSH) plugin that provides a local-first Web stack for local models.
Maintainer: stelmakhdigital
License: MIT
It includes four core capabilities, all enabled by a single installation command:
- Multi-engine search: Provides the
web_searchtool, supporting DuckDuckGo and Bing (keyless), with optional Exa / DeepSeek / Jina (API Key required). Supports fallback or fusion routing, cooldown mechanisms, and BM25 optimization. - Cached fetching: Provides the
web_fetchtool, SQLite cache-based, with support for ETag/Last-Modified validation. Repeated requests within the TTL do not make network requests. - Web platform search: Provides the
web_platform_searchtool for direct searches on GitHub, Reddit, YouTube, Bilibili, V2EX, RSS, and more. Supports adding new platforms through configuration without code changes. - History & statistics: Provides the
web_history,web_search_stats, andweb_cache_cleartools, reading local shared storage without internet access.
All state is stored locally; no cloud services are required.
Core Capabilities¶
-
Multi-engine search
Supports routing to DuckDuckGo/Bing (keyless) and Exa/DeepSeek/Jina (optional). Supportsfallbackorfuse(parallel + RRF fusion) modes, plus region settings and BM25 enrichment. -
SQLite cache
Backed by a SQLite page cache, using ETag and Last-Modified for conditional validation. If a page is repeatedly fetched within the TTL, no network request is made. -
Web platform search
Searches specific platforms through theweb_platform_searchtool. The platform list includes GitHub, Reddit, YouTube, Bilibili, V2EX, RSS, and more. New platforms can be added by configuration or hot-loading rule packs. -
History and cache tools
web_historyviews search history,web_search_statsviews statistics, andweb_cache_clearclears the cache. All data comes from the local database.
Installation & Activation¶
Prerequisites:
* Node.js 22.19+ or 24+ (DSH’s own requirement).
* DeepSeek Harness is installed (run it via npx @deepseek-ai/dsh or a source build).
- Install the plugin
Use the official command to install the plugin into a specified Profile (for example, thewebprofile):
dsh plugin --profile web add git+https://github.com/stelmakhdigital/dsh-web-automation.git
This command automatically applies the `local-web.cordis.yml` overlay, pins the `web` seam, and registers the related tools.
- Start and verify
After installation, start the Profile:
dsh web # Start the Web UI at http://127.0.0.1:3080
dsh --profile tui # Start the TUI (ensure the Profile name is tui)
Run the smoke test in a DSH session:
web_search "hello world"
Configuration & Notes¶
Configuration methods
The plugin enables all features by default with no extra configuration required. If adjustments are needed, add configuration sections in DSH’s cordis.yml or apply overlays via dsh --patch ....
Key configuration items include:
* search: Configure the engine list (engines), mode (mode: fallback or fuse), region (region), and API Keys for Exa/DeepSeek/Jina.
* fetch: Configure the cache validation strategy (revalidate).
* platforms: Register the web_platform_search tool, set the maximum number of results, or add custom platforms via id and searchUrl.
* history: Control enabling/disabling history, cache clearing, and statistics features.
Notes
1. Local storage: Plugin state is stored in $DSH_HOME/web.db; all data is local.
2. Mutual exclusivity: This plugin is mutually exclusive with DSH’s built-in Web packages (such as web-search-multi) and cannot be loaded simultaneously; otherwise startup will report WEB_DUPLICATE_PROVIDER.
3. Browser automation (optional): If web automation (such as browser_open) is needed, separately install the dsh-web-browser subpackage and run playwright install chromium.
4. License: The plugin follows the MIT License.
Conclusion¶
dsh-web-automation decouples the functionality required for a local Web stack into a plugin, making keyless, zero-cost search and localized caching in DSH simple. It is suitable for developers who want to run agents in local environments and avoid dependencies on external APIs.
- Plugin directory: skillhub.cn
- GitHub repository: stelmakhdigital/dsh-web-automation