插件目录 / Knowledge / dsh-web-search-opencli
dsh-web-search-opencli
已验证 · 实测可装 sincerity711
功能简介
Knowledge 类别的 DeepSeek Harness 插件。
可用 — 实测通过,早期项目
Knowledge 类别的 DeepSeek Harness 插件。 实测能干净安装、正常启动。早期项目,但功能可用。
「已验证」表示我们的自动化 CI 在干净 profile 里实际执行了 dsh plugin add 并启动成功——仅此而已。功能描述与版本兼容性均为作者声明。这不是安全审计,也不代表对第三方代码的背书。
README
dsh-web-search-opencli
Use Google AI Mode as a DeepSeek Harness web_search provider through OpenCLI.
dsh-web-search-opencli registers a DSH ctx.web search provider. When an agent calls web_search, the plugin drives your existing Chrome or Edge browser through OpenCLI, opens Google Search AI Mode (udm=50), waits for the AI answer, extracts the answer and cited source URLs, and returns DSH's standard WebSearchResult.
Features
- Google AI Mode answers exposed through DSH
web_search. - OpenCLI browser automation instead of a scraped HTTP endpoint.
- Source URL extraction from AI Mode citations and links.
- Markdown conversion for the AI answer body.
- Reuses the configured OpenCLI browser session tab by default.
- Configurable provider id, OpenCLI command/session/window mode, timeout, and best-effort tab cleanup.
Requirements
- Node.js
^22.19.0 || >=24.0.0. - A DeepSeek Harness install that provides
@deepseek-ai/dsh-web. - OpenCLI installed and connected to its browser extension.
- Chrome or Edge signed in to a Google account that can use AI Mode.
- Google AI Mode available for the browser account, region, and locale.
The provider uses the current browser profile. It does not read or store Google cookies.
Verify OpenCLI first:
opencli doctor
Install
Preferred npm install:
dsh plugin --profile web add dsh-web-search-opencli
From a DeepSeek Harness source checkout, use the checkout wrapper:
pnpm dsh plugin --profile web add dsh-web-search-opencli
Before npm publication, install from GitHub:
dsh plugin --profile web add github:sincerity711/dsh-web-search-opencli
For local development:
git clone https://github.com/sincerity711/dsh-web-search-opencli.git
cd dsh-web-search-opencli
npm install
npm run build
dsh plugin --profile web add /path/to/dsh-web-search-opencli
The package includes built lib/ artifacts in npm releases. GitHub installs run the package prepare script to build them.
Bundle patch
The package includes cordis.patch.yml, so the normal plugin install can apply this default web-profile patch:
- id: web
config:
searchProvider: google-ai-mode
- insert:
- id: web-search-opencli
name: dsh-web-search-opencli
config:
providerId: google-ai-mode
opencliSession: dsh-google-ai-mode
opencliWindow: background
timeoutMs: 45000
closeTabAfterSearch: false
If you manually edit a profile patch, preserve any existing web config fields you still need. A patch replaces the targeted row's whole config.
Verify
Dump the resolved web profile:
dsh --profile web --dump-config
The output should include:
- id: web
name: '@deepseek-ai/dsh-web'
config:
searchProvider: google-ai-mode
and:
- id: web-search-opencli
name: dsh-web-search-opencli
config:
providerId: google-ai-mode
Restart DSH Web after changing the profile:
dsh web
Architecture reference
See docs/architecture.md for the runtime flow, provider registration, OpenCLI command sequence, extraction pipeline, and error mapping.
Config
| Field | Default | Meaning |
|---|---|---|
providerId |
google-ai-mode |
Provider id registered into ctx.web. |
opencliCommand |
opencli |
Executable name or path. |
opencliSession |
dsh-google-ai-mode |
OpenCLI browser session used for Google tabs. |
opencliWindow |
background |
Value passed as both OPENCLI_WINDOW and OpenCLI --window for browser commands. |
timeoutMs |
45000 |
Per-search timeout budget in milliseconds. |
closeTabAfterSearch |
false |
Optional best-effort tab close after each search. Disabled by default because Chrome can replace the final tab in OpenCLI's automation window with about:blank. |
Behavior
contentcontains the Google AI Mode answer converted to markdown.sources[]contains URLs cited or linked by the AI Mode answer.- Duplicate source URLs are collapsed in first-use order.
- Ordinary Google search results outside the AI Mode answer are not used as a fallback.
- DSH
ctx.webenforcesmaxResultsafter the provider returns. - The default
backgroundOpenCLI window mode avoids stealing focus. - The provider reuses its OpenCLI automation tab by default. Set
closeTabAfterSearch: trueonly if you prefer best-effort tab cleanup.
Errors
The provider throws DSH WebError values:
WEB_SEARCH_OPENCLI_CAPTCHA: Google showed a CAPTCHA or unusual-traffic page.WEB_SEARCH_OPENCLI_AI_MODE_UNAVAILABLE: AI Mode is unavailable for the current account, region, or language.WEB_SEARCH_OPENCLI_TIMEOUT: the OpenCLI operation exceededtimeoutMs.WEB_PROVIDER_ERROR: OpenCLI failed or extraction returned an unexpected result.WEB_ABORTED: the DSH call was cancelled.
Troubleshooting
Searches fail with OpenCLI errors
Run opencli doctor, then make sure Chrome or Edge is open and the OpenCLI browser extension is connected.
Google asks for CAPTCHA
Open Google manually in the browser, solve the CAPTCHA, and retry the DSH search.
AI Mode is unavailable
Google AI Mode availability depends on the account, region, and locale. Sign in with an account that can access AI Mode, or switch back to another DSH web search provider.
Concurrent searches fail with detached browser errors
OpenCLI browser sessions are stateful. Avoid running concurrent searches against the same opencliSession. Use separate session names or serialize searches if you need parallelism.
Community plugin discovery
This repository is prepared for the current DeepSeek Harness community plugin discovery flow. Add these GitHub topics to the public repository:
dsh-plugin
deepseek-harness
dsh
web-search
opencli
The npm package carries matching keywords and declares the DSH bundle patch.
Development
npm install
npm run check
安装
装一次目录插件,之后本站所有插件都能让 DeepSeek Harness 自动找、自动装:
dsh plugin add dshbase-catalog 然后对 agent 说「帮我装 dsh-web-search-opencli」,它会在目录里找到并自动安装。文档:dshbase-catalog · 已验证场景包。
该插件是 GitHub 源码(未发 npm)——直接从仓库装:
Web profile:
dsh plugin --profile web add github:sincerity711/dsh-web-search-opencli Headless(CLI)profile:
dsh plugin --profile headless add github:sincerity711/dsh-web-search-opencli 实测报告
验证通过:从 GitHub 源码完成 L1 安装 + L2 加载 + L3 运行(dsh 0.1.0-rc.6)。