Parallel Search for DeepSeek Harness
This plugin makes DeepSeek Harness's built-in web_search tool use Parallel Search. It does not add a new tool or provide web_fetch.
It currently supports @deepseek-ai/dsh@0.1.0-rc.6 on Node.js ^22.19.0 || >=24.0.0.
DeepSeek Harness is still a developer preview, so later versions may need a plugin update.
Before you start
You will need:
- pnpm 10 or newer;
- a Parallel API key; and
- a model provider already configured in DeepSeek Harness.
You do not need to install dsh globally. The commands below run the supported version through npx.
Install
First, make your Parallel API key available in the terminal where you will run Harness:
export PARALLEL_API_KEY="your-key"Then install the plugin into the web profile:
npx --yes @deepseek-ai/dsh@0.1.0-rc.6 \
plugin --profile web add \
--allow-build=@parallel-web/dsh-web-search-parallel \
"github:parallel-web/dsh-web-search-parallel#main"The --allow-build flag lets pnpm build this plugin and nothing else. For a reproducible install, replace main with a full commit SHA.
Stop any running Harness process, then start it again:
npx --yes @deepseek-ai/dsh@0.1.0-rc.6 webCheck that it worked
Inspect the profile:
npx --yes @deepseek-ai/dsh@0.1.0-rc.6 \
--profile web --dump-config | \
grep -E 'searchProvider: parallel|web-search-parallel'You should see searchProvider: parallel and a web-search-parallel entry. Seeing the built-in web-search-deepseek plugin as well is normal—the searchProvider setting decides which provider handles searches.
For direct request evidence, start Harness with information-level Parallel logging:
PARALLEL_LOG=info npx --yes @deepseek-ai/dsh@0.1.0-rc.6 webAfter a web_search call, the terminal should show a successful request to https://api.parallel.ai/v1/search. Review logs before sharing them.
Optional settings
The defaults work without extra configuration. If you want to tune the search, edit ~/.dsh/profiles/web/cordis.patch.yml:
- id: web-search-parallel
config:
mode: turbo
maxCharsTotal: 12000
maxCharsPerResult: 2000| Setting | Default | What it controls |
|---|---|---|
mode | Parallel's advanced default | turbo, basic, or advanced search |
maxCharsTotal | 25000 | Total excerpt characters returned to Harness |
maxCharsPerResult | no limit | Excerpt characters kept for each result |
Keep PARALLEL_API_KEY in the environment rather than putting it in this file, which is stored as readable text.
If something goes wrong
dshis not found: use thenpx @deepseek-ai/dshcommands above.- Port 3080 is already in use: stop the older Harness process before
starting another one.
- The provider is still
deepseek-official: restart Harness and check
whether your cordis.patch.yml contains a later searchProvider override.
- pnpm reports missing DSH peer dependencies: this warning is expected for
this Git install. Harness supplies those packages from the profile runtime.
- Harness answers without searching: the configured model decides when to
call web_search. Try a prompt that clearly requires current information.
- The provider is unavailable: confirm
PARALLEL_API_KEYis set in the same
terminal that starts Harness.
Remove
npx --yes @deepseek-ai/dsh@0.1.0-rc.6 \
plugin --profile web remove @parallel-web/dsh-web-search-parallelRestart Harness after removing the plugin.
Development and security
See [CONTRIBUTING.md](./CONTRIBUTING.md) for local development, tests, and the packed-artifact review workflow. Report vulnerabilities according to [SECURITY.md](./SECURITY.md).
For help, contact [support@parallel.ai](mailto:support@parallel.ai).
MIT licensed.