Skip to content

TonyDua/dsh-web-search-exa

52Last commit Aug 14, 2026

dsh-web-search-exa DSH plugin

A drop-in WebSearchProvider for dsh's ctx.web seam. It uses Exa's free anonymous MCP by default (no API key required) and automatically switches to the REST API when an EXA_API_KEY is configured. Supports coexistence with the official Exa provider via a configurable providerId.

How to install the dsh-web-search-exa DSH plugin

dsh plugin --profile web add @tonydua/dsh-web-search-exa

Copying does not run this command. Review the repository and version before installing the dsh-web-search-exa DSH plugin.

dsh-web-search-exa DSH plugin data source

dsh-web-search-exa DSH plugin snapshot date: Aug 16, 2026

discovered

What the dsh-web-search-exa DSH plugin can do

  • No API key required for basic search (anonymous MCP)
  • Automatic upgrade to REST API when key is configured
  • Drop-in integration with dsh ctx.web seam
  • Configurable providerId to coexist with official Exa provider
  • Supports search type, result count, highlights per result
  • MIT licensed, ESM, bundled types

Where the dsh-web-search-exa DSH plugin fits

  • Quickly add web search to a dsh agent without any setup
  • Use Exa search in a dsh profile without exposing an API key
  • Run both official and anonymous Exa providers simultaneously for different profiles
  • Switch between anonymous and authenticated search based on environment

Who the dsh-web-search-exa DSH plugin is for

  • dsh users who want instant web search capability without an API key
  • Developers evaluating Exa search before committing to a paid plan
  • dsh profile authors who need flexible search provider configuration

dsh-web-search-exa DSH plugin limitations

  • Anonymous MCP is rate-limited by Exa (HTTP 429)
  • Web UI settings card not yet available; configuration must be done via cordis.patch.yml or environment variables
  • Requires Node >= 18
  • Coexistence with official package requires explicit providerId configuration

dsh-web-search-exa DSH plugin: from the repository README

Quoted from the TonyDua/dsh-web-search-exa README, the upstream source of the dsh-web-search-exa DSH plugin. Copyright remains with the original authors.

**English** | [简体中文](README.zh.md) [![npm version](https://img.shields.io/npm/v/@tonydua/dsh-web-search-exa)](https://www.npmjs.com/package/@tonydua/dsh-web-search-exa) [![npm downloads](https://img.shields.io/npm/dm/@tonydua/dsh-web-search-exa)](https://www.npmjs.com/package/@tonydua/dsh-web-search-exa) [![License](https://img.shields.io/npm/l/@tonydua/dsh-web-search-exa)](LICENSE) [![GitHub stars](https://img.shields.io/github/stars/TonyDua/dsh-web-search-exa)](https://github.com/TonyDua/dsh-web-search-exa) [![GitHub issues](https://img.shields.io/github/issues/TonyDua/dsh-web-search-exa)](https://github.com/TonyDua/dsh-web-search-exa) [![Node](https://img.shields.io/badge/node-%3E%3D18-339933?logo=node.js&logoColor=white)](package.json) > Zero-config [Exa](https://exa.ai) web search for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (dsh): > **no API key required** — a `WebSearchProvider` for the `ctx.web` seam with an > anonymous MCP fallback plus a keyed REST path. Built with [deepseek-v4-flash](https://api-docs.deepseek.com) inside DeepSeek Harness (dsh). ## Features - 🆓 **Zero-config, keyless by default** — searches route through Exa's hosted MCP

Read the full READMERepository license: MIT

dsh-web-search-exa DSH plugin questions

Do I need an Exa API key to use this plugin?

No. Without a key, the provider uses Exa's free anonymous hosted MCP. If you configure an API key, it automatically switches to the REST API for higher limits.

I got HTTP 429 rate limited. What should I do?

That's Exa's anonymous-MCP rate limit. Set the EXA_API_KEY environment variable or configure the apiKey field, and the provider will switch to the REST path automatically.

Can I run this plugin alongside the official @deepseek-ai/dsh-web-search-exa?

Yes. Give this package a distinct providerId (e.g., exa-anon) in its config and select it explicitly. See the Coexistence section in the README.

Why don't I see a settings entry in the Web UI for this plugin?

This version registers the settings namespace server-side only; a UI card is planned for the next version. For now, configure through cordis.patch.yml or environment variables.

How do I install the plugin?

Run `dsh plugin --profile web add @tonydua/dsh-web-search-exa` and restart dsh web. No API key is needed for basic functionality.