In DeepSeek Harness, switching search engines usually requires navigating to the settings page or entering a slash command. If network conditions restrict the official DeepSeek API, this process can become cumbersome. The dsh-search-switcher plugin renders the search engine switcher directly to the left of the model selector in the Composer input area, providing immediate access.
Plugin Positioning¶
The plugin is maintained by Hudson-Junior-Wang and open-sourced under the MIT license. It is a compact utility designed to solve the need to quickly change the preferred search engine in the DeepSeek Harness composer.
Installation and Activation¶
Installing the plugin must be done through the Harness plugin CLI. The plugin also depends on the dsh-free-search plugin (version >= 0.4.7) to provide settings bridging and search providers.
- Install the plugin:
dsh plugin --profile web add https://github.com/Hudson-Junior-Wang/dsh-search-switcher.git
- Install or verify that
dsh-free-searchis installed:
dsh plugin --profile web add https://github.com/DDDMUC/dsh-free-search.git
- After installation, restart the Harness Web host or refresh the UI. The control panel will appear to the left of the model selector.
Core Features¶
- Instant switching: Injects a control component via
conversation.input.right, positioned to the left of the model selector. - Engine list: Provides a scrollable list of engines, with the currently selected engine highlighted.
- Configuration read/write: Reads and writes the
free-search.providersetting through the loopback bridge. - Supported engines: Compatible with the ten engines exposed by
dsh-free-search, including DuckDuckGo HTML, DuckDuckGo Lite, Bing, AnySearch AI, SearXNG, Exa, Tavily, Keenable, Perplexity, and DeepSeek Official. - Visual adaptation: Renders using Harness theme variables to maintain interface consistency.
- Full keyboard support:
- Arrow keys: open the menu and move between engines.
- Home/End: jump to the first or last item in the list.
- Enter/Space: activate the currently selected engine.
- Escape: close the menu and restore focus.
Compatibility Notes¶
Before using this plugin, note the following environment requirements and known issues:
- Node.js version: The DeepSeek Harness Web profile must run on Node.js 20 or higher.
- dsh-free-search version:
dsh-free-searchversion >= 0.4.7 is required. - Specific version compatibility issue:
Indsh-free-searchversion 0.4.22, if the Harnessdsh-settingsversion is <= 0.1.2-alpha.1 (older runtime), the plugin will fail to load. This is because the older runtime removed theinstallSectionmethod, causing thefree-searchnamespace to remain unexposed.- Solution: Upgrade Harness to a version that includes
@deepseek-ai/dsh-settings >= 0.1.2-alpha.2; patch the locally installeddsh-free-search0.4.22 under the older runtime; or downgradedsh-free-searchto 0.4.21 or earlier.
- Solution: Upgrade Harness to a version that includes
Use Cases and Limitations¶
Typical usage:
* When the network environment blocks api.deepseek.com, you can keep the current conversation open and click the switcher to fall back to Bing, DuckDuckGo, or SearXNG.
* Quickly switch between multiple local or third-party search engines without memorizing or typing slash commands.
Limitations:
* The plugin only switches the preferred provider; it does not bypass any provider’s authentication, API key requirements, or network restrictions.
* It does not provide search result previews; it only controls the data source.
Summary¶
dsh-search-switcher improves the search experience in DeepSeek Harness by moving control directly into the Composer input area. For users who frequently switch network environments or search engines, it provides a direct and efficient path.
- Project homepage: https://github.com/Hudson-Junior-Wang/dsh-search-switcher
- SkillStar Directory: https://www.skillhub.cn/plugins/Hudson-Junior-Wang/dsh-search-switcher