> ## Documentation Index
> Fetch the complete documentation index at: https://docs.keenable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# DeepSeek Harness

> Keenable web search and page fetch for DeepSeek Harness's built-in web_search and web_fetch tools, with any model and no API key.

*Plugin*

A DeepSeek Harness plugin that answers the built-in `web_search` and `web_fetch` tools through Keenable. The search provider Harness ships with needs a DeepSeek account or API key; this one works with whatever model you run, local models included, as soon as it is installed.

→ [@keenable/dsh-keenable on npm](https://www.npmjs.com/package/@keenable/dsh-keenable)

## Install

### Install the plugin

In Harness, open **Plugins → Add plugin**, enter `@keenable/dsh-keenable`, then choose **Install → Enable now**.

Or install from the terminal into the profile you run, then restart Harness:

```bash theme={"system"}
npx @deepseek-ai/dsh plugin --profile web add @keenable/dsh-keenable
npx @deepseek-ai/dsh web
```

Profiles are separate: `web`, `tui`, and `headless` each need their own install. Requires DeepSeek Harness 0.1.7-rc.2 or newer and Node.js 22.12 or newer.

### Use it

There is nothing to configure. The plugin points both web tools at Keenable, so ask the model to search the web or read a URL.

`web_search` returns a title, URL, excerpt, and publication date (when known) for each result. `web_fetch` returns the page as markdown. Pages are retrieved on Keenable's servers, so a URL the model chose is never requested from the machine running Harness, and private or internal hosts are refused.

### Add a key (optional)

Without a key, both tools use Keenable's public endpoints. To lift their per-IP limit, either set `KEENABLE_API_KEY` in the environment Harness starts in, or enter the key as **apiKey** in the plugin's settings on the **Plugins** page. A key in the settings wins over the environment variable.

To keep Harness's local fetch provider and use Keenable for search only, see the [plugin README](https://github.com/keenableai/dsh-keenable#keeping-the-local-fetch-provider).

<Note>
  Set `KEENABLE_API_KEY` to authenticate — this removes the hourly request cap. Without a key, calls run on the shared public tier at [lower rate limits](/rate-limits).
</Note>
