Skip to content
dsh.fish
Bundle

dsh-free-web-search

Free web search for DeepSeek Harness: Bing, DuckDuckGo, SearXNG, Exa, Tavily, Keenable — with automatic fallback, time filtering, and platform search

Source
delef
stars
3 stars
License
Apache-2.0
Updated
Updated 1 hour ago

Readme

# dsh-free-web-search

Free web search plugin for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness). No API keys required — works out of the box with Bing, DuckDuckGo, and SearXNG. Optional paid engines (Exa, Tavily, Keenable, Perplexity, DeepSeek Official) activate when you add a key.

## Features

- **10 search engines** with automatic fallback — if one fails, the next one picks up
- **Time-filtered search** via `advanced_search` tool (last day/week/month/year, or custom ranges like `3d`, `2mo`, `2026-07-01`)
- **Platform search** — GitHub repos and Reddit threads via `platform_search` tool
- **Engine diagnostics** — `free_search_test` tool to check which engines work
- **Web Settings UI** — engine selection, API key management, cache TTL config
- **Result caching** — LRU cache (50 entries, configurable TTL up to 5 min) to reduce rate limiting

## Install

```bash
dsh plugin --profile web add github:delef/dsh-free-web-search
```

If pnpm blocks the build script, add the key it prints to `allowBuilds` in your profile's `pnpm-workspace.yaml` and retry.

## Engines

| Engine | Cost | Key required |
|--------|------|-------------|
| Bing | Free | No |
| DuckDuckGo (HTML / Lite) | Free | No |
| SearXNG | Free | No |
| AnySearch AI | Free | No |
| Exa | Free tier / paid | Optional |
| Tavily | Free tier / paid | Optional |
| Keenable | Free tier / paid | Optional |
| Perplexity | Paid | Yes |
| DeepSeek Official | Paid | Yes |

Default engine: **Bing** (most stable). Change it in Settings > Plugins > Free Web Search, or type `/free-search-engine` in chat.

## Tools

### `web_search` (built-in, powered by this plugin)

Standard harness web search. Uses the configured engine with automatic fallback.

### `advanced_search`

```
query: "rust async runtime"
timeRange: "week"        # day | week | month | year | 3d | 2mo | 1y | 2026-07-01
engine: "exa"            # optional, override preferred engine
maxResults: 5
```

### `platform_search`

```
platform: "github"       # github | reddit
query: "deepseek harness plugins"
maxResults: 5
```

### `web_fetch`

```
url: "https://docs.example.com/guide"
maxLength: 50000                       # optional, default 50000 chars
```

Fetches a single page, strips HTML, returns plain text. For reading articles, docs, or any URL.

### `free_search_test`

Tests engine availability. No arguments tests all engines.

## Configuration

Settings are managed through the web UI (Settings > Plugins > Free Web Search) or `settings.yaml`:

```yaml
free-search:
  provider: bing
  bingMarket: en-US
  cache: true
  cacheTtl: 5
  platforms:
    - github
    - reddit
  searxngInstances:          # optional, overrides default public instances
    - https://your-instance.example.com
  # Optional API keys
  exaApiKey: ""
  tavilyApiKey: ""
  keenableApiKey: ""
  perplexityApiKey: ""
  deepseekApiKey: ""
```

## License

Apache-2.0

Install

dsh plugin --profile web add github:delef/dsh-free-web-search#354b95a87fcc34233966047d18bb57375120ea3e

Profile: web

  • This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
Source