dsh-web-search-ollama
Verified@jlvncn/dsh-web-search-ollama Β· v0.1.15 Β· MIT
Ollama-backed search & fetch provider for the DeepSeek Harness `ctx.web` seam (host half of the web-search-ollama plugin)
Install
dsh plugin add @jlvncn/dsh-web-search-ollama Confirm the layer applied with dsh --profile default --dump-config β see the install guide.
Source
Tags
Creators
Readme
@jlvncn/dsh-web-search-ollama
Host half of the Ollama web-search plugin for DeepSeek Harness. Runs in the
Node.js process and registers, on the ctx.web seam:
- a search provider (
POST {baseURL}{searchPath}β{ results: [...] }) β always - a fetch provider (
POST {baseURL}{fetchPath}β{ title, content }) β opt-in viaconfig.enableFetchProvider: true. Off by default so a second usable fetch provider cannot fight the built-inhttpone for seam auto-selection. - the
web-search-ollamasettings namespace β projected automatically (harness >= 0.1.7) from this loader entry's Config schema; every field markedvolatile()is live-editable and hot-applies on save.
It writes no session events. Since v0.1.5 it stays out of the session log on
purpose: earlier versions recorded an Ollama payload under the first-party event
name web/deepseek-search-llm-request, and the frozen v0βv1 migration refuses
that event shape β making any v0-format session containing it unopenable. A
third-party plugin cannot register its own required event type either, so the
safe default is to write nothing.
Package name note (v0.1.12). This package used to be named
dsh-web-search-ollama; that unscoped name was taken on npm by an unrelated third party on 2026-08-25, so the project now publishes under the@jlvncnscope. The loader row id and settings namespace (web-search-ollama) are unchanged.
Install
Prefer the bundle channel (managed from the Web Plugins page / dsh plugin):
dsh plugin --profile web add @jlvncn/dsh-web-search-ollama # npm registry
dsh plugin --profile web add /path/to/packages/dsh-web-search-ollama # local dir
Or the copy channel: the package must be resolvable from your DSH profile's
node_modules ($DSH_HOME/profiles/node_modules/@jlvncn/dsh-web-search-ollama/).
Use the repo's ./scripts/install.sh, or copy index.js + package.json +
cordis.patch.yml there manually.
As a bundle it mounts its own row via dsh.bundle.patch; the equivalent
hand-written loader patch is:
- insert:
- id: web-search-ollama
name: '@jlvncn/dsh-web-search-ollama' # YAML: quote β '@' starts a plain scalar illegally
config:
baseURL: https://ollama.com
searchPath: /api/web_search
fetchPath: /api/web_fetch
apiKeyEnv: OLLAMA_API_KEY
The bundle deliberately does not seize the web seam; put
searchProvider: ollama (and web-search-deepseek: disabled) in your own
patch layer (install.sh does this for you).
Dependencies
| Package | Kind | Purpose |
|---|---|---|
@deepseek-ai/dsh-web |
peer (>=0.1.7-rc.1 <0.2.0) |
ctx.web seam & WebError |
@deepseek-ai/schemastery |
dependency (~3.18.4) |
config schema; must be β₯ 3.18.4 for volatile() |
@deepseek-ai/cordis |
devDependency | Context / Volatile types at build time |
Runtime packages are provided by the DSH installation; nothing extra to install.
Test
pnpm test # from the monorepo root (after pnpm install)
# runs test.mjs (module shape) + test-providers.mjs (8 behavioral tests,
# including the "never writes a session event" regression guard)
See the repo root README.md for full configuration & troubleshooting.