> SpecStream is the live web data engine for teams and agents. This is the Markdown copy of https://specstream.ai/docs/integrations/dsh-searxng. Every page, with what SpecStream does and costs: https://specstream.ai/llms.txt

# dsh-searxng

Run `dsh-searxng setup` with SpecStream's SearXNG address and your key in it, and DeepSeek Harness's `web_search` searches through SpecStream's Search API. There is no SearXNG container to run, no Docker, and no engines to keep unblocked.

[SpecStream for dsh-searxngCoding agents](https://specstream.ai/integrations/dsh-searxng.md)

## What you need

-   DeepSeek Harness (`dsh`) and Node.js 20 or newer. Docker is not needed with an address of your own.
-   A SpecStream API key. New accounts get $10 of credit on sign up, no card. [Get your key](https://specstream.ai/workspace/search?route=searxng&utm_source=dsh-searxng&utm_medium=howto) on the Search API screen of your workspace.

1.  1

    ## 1. Put your key in the address

    dsh-searxng takes an address with no query string and no user name or password in it, and adds `/search` to it by itself. So the key goes in the path, as the address's last part. Put your key in place of `YOUR_SPECSTREAM_KEY`:

    Address

    ```text
    https://api.specstream.ai/searxng/YOUR_SPECSTREAM_KEY
    ```

2.  2

    ## 2. Run setup with --url

    Pass the address to `setup` with `--url`. With an address of your own, setup never starts Docker. It runs a real search through the address and through the DeepSeek Harness provider, and only then attaches dsh-searxng to the profile. Use the profile name you launch dsh with:

    Terminal

    ```bash
    npx dsh-searxng setup --profile web --url https://api.specstream.ai/searxng/YOUR_SPECSTREAM_KEY
    ```

3.  3

    ## 3. Start dsh with SearXNG as the search provider

    If the profile has more than one search provider, DeepSeek's own included, select this one with `DSH_WEB_SEARCH_PROVIDER=searxng`, or with `searchProvider: searxng` on the web row of the profile:

    Terminal

    ```bash
    DSH_WEB_SEARCH_PROVIDER=searxng dsh --profile web
    ```

4.  4

    ## 4. Ask about something recent

    Ask a question about something from this week. The agent's `web_search` calls go to `https://api.specstream.ai/searxng/<key>/search` and come back with each result's title, link and text.

## What dsh-searxng sends, and what comes back

| dsh-searxng sends | SpecStream |
| --- | --- |
| `GET {baseURL}/search` | `https://api.specstream.ai/searxng/<key>/search`, with the key read from the address |
| `q`, the agent's query | Searched as written. `site:`, `filetype:`, `after:` and the other search operators hold on every result |
| `format=json` | SearXNG's JSON: `results[]` with `title`, `url` and `content`. `publishedDate` is null on most results |

## Where the key is kept

Setup writes the address into the `web-search-searxng` row of `$DSH_HOME/profiles/<name>/cordis.patch.yml`, so that file holds your key. Keep it private. To end the key's access, revoke it under **API keys** in **Agents & API** in your workspace, and make a new one.

## If setup fails

`E_AUTH_FAILED` means SpecStream got no valid key. Check that the whole key is the address's last part and that the key can search: a key made with no scopes can read and cannot search. Keys made on the Search API screen can search.

`url must be an absolute HTTP(S) URL without query, fragment, or credentials` means the key went in as `?key=` or as a user name. Put it in the path as above.

## Cost

Each search dsh-searxng sends through the SearXNG address is one Search API call on the fast tier: $1 per 1,000 searches of up to 10 results, a fifth of the default search's $5. Setup's checks run real searches, each charged as one. dsh-searxng serves a repeated query from its own cache for 10 minutes by default, and a cache hit sends no request. Searches come out of your balance, with no quote and no approval. New accounts start with $10 of credit, no card. Questions go to [support@specstream.ai](mailto:support@specstream.ai).

## Read pages and get rows too

The same key reads pages with the [Extract API](https://specstream.ai/docs/extract-api.md) at $0.80 per 1,000 pages, and a page with no text is not charged. For a dataset, add SpecStream's MCP server at `https://api.specstream.ai/mcp` and ask for the records in plain words. Deep Search returns every match as structured rows at 5¢, 15¢ or $1 a row, under a maximum you approve. See [MCP](https://specstream.ai/docs/mcp.md).

## Remove

Run `npx dsh-searxng remove --profile web`. It detaches the profile and removes the plugin package from that profile. Then revoke the key in your workspace if you no longer use it.

## More

[SpecStream for dsh-searxng](https://specstream.ai/integrations/dsh-searxng.md) covers what it does in dsh-searxng on one page. Every other tool has its guide in [Connect your tools](https://specstream.ai/docs/integrations.md). You see the most a request can cost before it starts, and the matches are paid from your balance. [Billing](https://specstream.ai/docs/billing.md) has the details. For help, email [support@specstream.ai](mailto:support@specstream.ai).
