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
Bring skill management into the DeepSeek Harness Web UI.
Import, discover, and invoke skills without a session, model tokens, or approval round-trips.
English · 简体中文 · Install · How it works · Development
dsh-skill-importer is a lightweight plugin for DeepSeek Harness (dsh). It turns skills into a first-class part of the Web UI: bring in Markdown from disk or a URL, see every installed copy, and insert a skill into the composer without breaking your flow.
| Import | Organize | Invoke |
|---|---|---|
Upload SKILL.md or paste a URL. Frontmatter is validated and normalized before writing. |
Browse skills grouped across project, legacy project, and global roots. Remove any copy individually. | Use the composer picker, run /skills, or type /skill-name directly. |
/skills command — use a familiar command palette, modeled after /model./skill-name and keep moving.All three fill the composer with the same highlighted /name gesture; sending injects the skill instructions through dsh's native flow.
dsh plugin --profile web add dsh-skill-importer
Add the following entry to $DSH_HOME/profiles/web/cordis.patch.yml:
- id: skill-importer
name: dsh-skill-importer
Open Settings → Skills. Import a Markdown file or URL, choose a target, and the skill will appear as soon as the filesystem watcher discovers it.
Requires DeepSeek Harness
>= 0.1.0-rc.6vianpx @deepseek-ai/dsh web.
The dsh client-to-host RPC is a fixed allowlist with no file-write channel. This plugin uses the official ctx.webServer.register extension point exposed by dsh-host-webserver and registers same-origin /skill-importer/* routes on the harness server.
Markdown file or URL
│ same-origin fetch
▼
/skill-importer/import
│ host filesystem write
▼
<skill-root>/<name>/SKILL.md
│ watcher event
▼
skills/change → hot refresh
POST routes verify the Origin header and only accept loopback sources (127.0.0.1 or localhost). Writes are restricted to these standard roots:
| Scope | Directory |
|---|---|
| Project | .agents/skills |
| Legacy project | .dsh/skills |
| Global | ~/.dsh/skills |
npm install
npm run build
| Area | Source |
|---|---|
| Host plugin and route registration | src/index.ts |
| Filesystem, URL import, and HTTP logic | src/server.ts |
| Shared wire types | src/types.ts |
Browser plugin and /skills command |
src/client/index.ts |
| Composer picker | src/client/SkillsPicker.tsx |
| Settings experience | src/client/SkillImporterSection.tsx |
Available routes: GET /skill-importer/health · GET /skill-importer/list · POST /skill-importer/import · POST /skill-importer/import-url · POST /skill-importer/delete
npm install
npm run build
dsh plugin --profile web add /path/to/dsh-skill-importer
Add the profile entry shown above, then restart dsh Web.
.md sources; HTML pages use lightweight text extraction, so direct Markdown URLs work best.Released under the MIT License.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。