dsh-web-search-kagi
Manifest validKagi Search v1 provider for the DeepSeek Harness.
dsh-web-search-kagi
Kagi Search v1 provider for the DeepSeek Harness web capability seam (ctx.web).
Published on npm as dsh-web-search-kagi.
Registers a WebSearchProvider with id kagi that POSTs to Kagi's
https://kagi.com/api/v1/search with bearer auth and maps data.search[] onto
the seam's portable citation shape (url, title, snippet, publishedAt).
Install
Add the package to the profile that runs the web app:
dsh plugin --profile web add dsh-web-search-kagi
This writes dsh-web-search-kagi to the profile's package.json and installs
it. Without the dsh CLI, run pnpm add dsh-web-search-kagi from the profile
directory instead.
Then compose it in $DSH_HOME/profiles/web/cordis.patch.yml:
- insert:
- id: web-search-kagi
name: 'dsh-web-search-kagi'
- id: web
config:
searchProvider: kagi
- id: web-search-deepseek
disabled: true
Restart the harness.
API key
The provider reads the key from the credentials service under the KAGI_SEARCH_API_KEY
reference. Put it in $DSH_HOME/.credentials.yaml:
KAGI_SEARCH_API_KEY: your-kagi-api-key
You can also set it later in the web UI at Settings → Plugins → Plugin configuration; the card writes the same credential. Get a key from Kagi.
Config
All fields optional:
| Field | Default | Notes |
|---|---|---|
baseURL | https://kagi.com/api/v1 | Kagi Search API v1 base. |
limit | 10 | Fallback result limit, 1 to 1024. |
safeSearch | true | Requests Kagi safe_search. |
Settings UI
Since DeepSeek Harness v0.1.0-rc.7 the plugin's settings show in the web UI at
Settings → Plugins → Plugin configuration. The package registers the
web-search-kagi settings namespace on the Host (installSettingsSection) and
ships a dsh.client browser bundle (lib/client.js) that renders a card for
it. No cordis.patch.yml edit is needed to change these values after install.
The card edits the API key, the endpoint (baseURL), the result limit
(limit), and the safe search toggle (safeSearch). The key field writes the
KAGI_SEARCH_API_KEY credential and never shows the stored value; leave it blank to
keep the current key.
Edits are held until you press Save. Each write carries the revision it read,
and overridden fields show a Reset to default button. The layering is unchanged:
schema defaults, then the composition entry config, then the user document. The
config: block in cordis.patch.yml stays the deployment's base layer.
Config in lib/index.js and the card's field list describe the same fields.
The card mirrors the schema defaults for reset previews, so keep them in sync
when you add or change a field.
Comments
Loading…
Similar plugins
by Yinxe
Tavily AI search provider for DeepSeek Harness
★ 0
MIT
JavaScript
Sep 8, 2026
dsh plugin --profile web add @dshp-inx/tavily-searchby ChrisDeadman
Brave Search API-backed web search provider for [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) (`dsh`)
★ 0
MIT
JavaScript
Sep 4, 2026
dsh plugin --profile web add @deads-inc/dsh-web-search-braveby fan56
Tavily web search provider plugin for DeepSeek Harness (dsh)
★ 1
MIT
JavaScript
Sep 24, 2026
dsh plugin --profile web add @aiwayds/dsh-web-search-tavilyby nitrazepam01
Tavily-backed web search provider bundle for DeepSeek Harness (dsh) with hot-switchable backend (Tavily / DeepSeek search)
★ 3
↓ 207/wk
MIT
JavaScript
Aug 14, 2026
dsh plugin --profile web add dsh-web-search-tavilyby kkgace
Self-hosted SearXNG web search provider for DeepSeek Harness (dsh). No API key or vendor account.
★ 0
MIT
JavaScript
Sep 17, 2026
dsh plugin --profile web add dsh-web-searxng-searchby 240xu
Unified web search provider for DSH
★ 5
↓ 599/wk
MIT
JavaScript
Sep 27, 2026
dsh plugin --profile web add @240xu/dsh-websearch