dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
The DeepSeek Harness window into Univer's office runtime.
Preview Univer office files (sheets, docs, slides, bases) directly inside DeepSeek Harness: after a turn that runs univer commands, a preview card automatically appears at the turn's tail — click it to expand fullscreen in-app, no browser or manual server needed.
┌────────────────────────────────────────┐
│ 📊 sales.univer [wt-xxx] [Expand ▾] │ ← card at the turn tail
│ /Users/.../sales.univer │
└────────────────────────────────────────┘
.univer file (worktrees supported via --worktree).npm i -g univer-cli; without it the plugin still installs and prompts when neededThis is a standard DSH bundle: it declares dsh.bundle and ships its own cordis.patch.yml, so it installs through the canonical loader:
dsh plugin --profile web add github:dream-num/dsh-univer-plugin
dsh plugin --profile web add @univer-cli/dsh-univer-plugin
dsh plugin --profile web add /path/to/dsh-univer-plugin
The first use of a profile initializes it;
dshappends the bundle todsh.profile.bundlesand pnpm links the package, so the loader resolves the plugin'scordis.patch.ymllayer automatically. Verify withdsh --profile web --dump-config(you should see a# == @univer-cli/dsh-univer-pluginlayer).
If you cannot run the dsh CLI, a convenience installer is provided:
bash install.sh
Or for macOS users of the zip distribution: double-click install.command (see packaging/INSTALL.txt).
After any install: refresh DeepSeek Harness (Cmd+R / Ctrl+R).
univer commands in a session (univer new/import/execute/inspect/...)univer-dsh uninstall
Or remove the plugin manually: delete ~/.dsh/profiles/node_modules/@univer-cli/dsh-univer-plugin and the matching cordis.patch.yml entry.
This is a dual-half DSH plugin:
lib/index.js) — a dsh.client-declared package; exposes an univer service and a loopback /univer-api/* HTTP route (status, ensure-daemon) on the host web server.lib/client.js) — hooks the conversation.chat.turnTail slot: scans bash tool calls in each turn for .univer targets and renders the preview card + fullscreen overlay.dist/ and the archives (univer-dsh-plugin.zip, *.tgz) are generated — they are gitignored and never committed. Source lives in lib/, package.json, README*.md, cordis.patch.yml, install.sh, and packaging/. After changing any source file, rebuild the artifacts:
bash scripts/build-dist.sh
This regenerates dist/univer/ (the shipped package contents), the npm tarball dist/univer-cli-dsh-univer-plugin-<version>.tgz, and the zip distribution univer-dsh-plugin.zip (package contents + install.command + INSTALL*.txt from packaging/).
Publish the package with npm publish (respects the files allowlist); attach the zip/tgz to a GitHub Release for end users.
The unscoped name dsh-univer-plugin is reserved by this project as a typosquatting guard — redirects/dsh-univer-plugin/ holds a placeholder package (deprecated, pointing to the official name) that contains no code. Always install the official package:
dsh plugin --profile web add github:dream-num/dsh-univer-plugin # from git
dsh plugin --profile web add @univer-cli/dsh-univer-plugin # from npm
dsh-plugindsh.bundle.patch → ./cordis.patch.ymldsh.client (platform: "web" + inject)CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。