deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:aaaadrop/dsh-voice-kit
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
Voice input (Web Speech API) and read-aloud (speechSynthesis) for the DeepSeek Harness web GUI.
Status: v0.3.1, published on npm —
pnpm typecheckpasses, 35 unit tests pass,pnpm buildemits the ecosystem-standard closure-factory bundle (host half + browser half). Voice input and read-aloud are wired against the real conversation API (session kit'sinputActions/useInput/useSession), and read-aloud supports Microsoft Edge neural voices (host-side synthesis viamsedge-tts, cached, with automatic fallback to the system voice). Verified inside a real DSH Desktop profile. Install:dsh plugin add dsh-voice-kit.
webkitSpeechRecognition) and appended to the
draft. Auto-restarts across Chrome's ~60s session limit; Esc cancels.<audio>
element; falls back to speechSynthesis when offline or on failure.
Markdown and emoji are stripped before speaking; long replies are chunked
at sentence boundaries (decimals/URLs never split); only one voice at a
time; the playing message is scrolled into view with an on-screen bubble
showing what is being read.voice settings namespace (registered host-side via
@deepseek-ai/dsh-settings).# from npm (after publish)
dsh plugin add dsh-voice-kit
# or from a local checkout (development)
dsh plugin --profile web add link:/path/to/dsh-voice-kit
Restart the harness, refresh the web GUI.
⚠️ Voice input is experimental.
webkitSpeechRecognitionis a Chromium feature and does not work inside Electron (DSH Desktop): the mic button enters the listening state but no transcript ever lands. It may work in Chrome/Edge when DSH is served in a regular browser. Read-aloud works everywhere (system voice fallback included).
pnpm install
pnpm typecheck # tsc --noEmit
pnpm test # vitest (pure logic: markdown stripping / chunking)
pnpm build # tsdown → lib/index.js (host) + lib/client.js (browser)
Build pipeline is the ecosystem-standard closure-factory bundle
(window.__ModuleLoader__.load) driven by shared/tsdown.client.ts
(adapted from the official DeepSeek Harness packages/client/tsdown.client.ts,
MIT; libExternal option from the dsh-web-ui family bucket, Apache-2.0).
ctx.locale.register(ns, locale, dict) overload.inputActions.setDraft(appendDraft(current, text))
with useInput((s) => s.draft) reads (src/client/draft.ts).conversation.chat.assistant-actions owner's
messageId + useSession snapshot lookup, text blocks only
(src/client/message.ts).dsh plugin --profile desktop add link:...) and confirm the three slots
render in the GUI; adjust composed-prop details if the renderer disagrees.voice namespace does not survive a
restart, register it host-side via @deepseek-ai/dsh-settings
(installSettingsSection) in src/index.ts.MIT. The bundled shared/tsdown.client.ts adapts official DSH build tooling
(MIT) plus the dsh-web-ui libExternal option (Apache-2.0); see the file header.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。