DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Livevoice — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
L

dsh-livevoice

Livevoice

DeepSeek Harness 的 Codex 实时语音:WebRTC + Frameless Bidi + 会话委托。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:aa2246740/dsh-livevoice#2037ab7da8ced852d675a29a8c4c910c8be2f429
README兼容性版本

兼容性与来源证明

Livevoice 以 dsh-livevoice 发布,当前版本为 0.1.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/13

版本

0.1.1stable
2026/9/13

相关插件

正在加载相关插件…

最新版
0.1.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
未声明
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/13
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 vision-media 分类下经过校验的插件。

Tool Describe Image@linxin666/dsh-tool-describe-image面向模型的 describe_image 工具,用于 dsh Web GUI:通过在兼容 OpenAI 的端点调用视觉语言模型,为文本模型提供图像理解能力,以描述一张图像(本地路径、http(s) URL 或附件引用)。可热插拔 —Modlens@liustack/modlens面向仅支持文本的 LLM 的插件视觉能力,由免费的 Antigravity CLI 提供支持Deepseek Ivideodeepseek-ivideoiPolloWork HyperFrames Video Studio,以及 27 个可编辑视频模板,以原生 DeepSeek Harness 对话视图呈现。Imagegen@dickpy/dsh-imagegendsh Web GUI 的 AI 图像生成插件:通过可配置的提供商渠道实现文生图和图生图(gpt-image-2 / grok-imagine-image / nanobanana series / seedream-5.0-pro / dall-e-3,支持原生 xAI Grok Imagine、Google Nano Banana a

README

dsh-livevoice

dsh plugin --profile web add github:aa2246740/dsh-livevoice

You need official dsh on PATH (or npx @deepseek-ai/dsh) and pnpm. dsh plugin add runs pnpm in $DSH_HOME/profiles/web. This repo commits built lib/, so a git install does not need prepare or a profile allowBuilds change.

Then restart that Host and reload the page. dsh plugin add writes the profile. It does not hot-load a running process.

Codex realtime voice (Ctrl+L / /live) for DeepSeek Harness.

This is a protocol-complete port of omp’s GPT-Live path: ChatGPT OAuth, WebRTC media, Frameless Bidi sideband, client-side delegation into the current DSH session. It is not a local STT/TTS plugin.

Compatibility

The current source targets official DeepSeek Harness 0.1.5-rc.2 (dsh-v0.1.5-rc.2).

Other install paths

Local checkout or tarball:

git clone https://github.com/aa2246740/dsh-livevoice.git
dsh plugin --profile web add ./dsh-livevoice
dsh plugin --profile web add ./dsh-livevoice-0.1.1.tgz
dsh plugin --profile web remove dsh-livevoice

Auth: OAuth is required

Live voice cannot use a normal OpenAI platform API key or the default DeepSeek LLM login. Signaling posts to https://chatgpt.com/backend-api/codex/realtime/calls with a ChatGPT / Codex OAuth access token and a Codex Desktop originator.

The plugin does not depend on dsh-oauth-login being loaded. It reads credentials in this order:

  1. $DSH_HOME/.dsh-oauth-auth.json (openai-codex) — written by dsh-oauth-login / 订阅登录
  2. DSH credential store llm-pi-ai/openai-codex — official Settings → models → ChatGPT Codex OAuth
  3. ~/.codex/auth.json — official codex login (read-only fallback)

If none of those hold an OAuth grant, the Live button fails with No Codex OAuth credential is available for a live call.

dsh-oauth-login is the usual way to get that grant inside DSH, but a user who already signed in through DSH’s built-in openai-codex OAuth flow is enough. A DeepSeek API key is not.

What is ported

ompDSH
protocol.ts Frameless Bidisame types and codecs
Codex signaling + sidebandHost proxy (avoids browser CORS / WS headers)
Native WebRTC / OpusBrowser RTCPeerConnection + getUserMedia
AgentSession.sendCustomMessageagent.steer while a turn is open; agent.followup when idle or running with no open turn
TUI visualizercomposer Live chip + live bar
Ctrl+L / /livesame
DeviceCheck attestationnot ported (omp also skips this off Apple silicon)

The voice model is gpt-live-1-codex. It only talks. Repository work is delegated into this DSH session.

Delegation preserves the user's current wording. A bounded recent transcript is attached separately so the worker can resolve references and sentence fragments without inheriting broader authorization: asking how a change could be done remains analysis, while an explicit request to do it authorizes execution. Read-only repository and session-status questions may be delegated.

Use

Composer Live button, or Ctrl+L, or /live. Esc ends the call. Space mutes while the live bar is focused.

“Ready — speak now” is shown only after WebRTC media/data-channel connection, an explicit Codex session-ready event, and a live microphone track. Until then the UI remains connecting and microphone transmission stays gated. A readiness timeout fails with a retry action; it never silently counts as connected. You can cancel while dialing.

The Host maintains one live call across browser pages. Concurrent dials are serialized; a later dial replaces the earlier call. Failed dials do not block the queue, and shutdown waits for earlier dial attempts before clearing their calls.

The live dock shows task receipts for the actual input and handoff sent to DSH. States come from dispatch, matching agent/inbox/claimed, agent/inbox/discarded, and the claimed turn's turn/end reason. “Worker replied” means only that a completed turn produced a response associated with the request; it is not verification of the work.

Changing topics does not erase earlier answers. The bridge retains every non-tool response and associates it with requests consumed by the worker before that response. A later unclaimed request cannot receive an earlier answer; if several requests were consumed together, their answer is explicitly labeled shared, not independently fulfilled. Replies are returned at the end of their claimed turn even when another request is still queued for the next turn. Actual terminal states also go to the voice context, so it can report no reply, cancellation, failure, or stopped tracking instead of promising a nonexistent future result. There is no semantic topic classifier or extra worker process. This is an event-based approximation of answer ownership, not a guarantee of semantic correctness or 100% Codex behavior parity.

Results and unsuccessful terminal outcomes use the explicit speakable context channel; routine progress and successful receipt metadata use commentary. These are the existing Frameless Bidi channels, not a new transport or a promise that speech generation is infallible.

The server replays current-call receipts when the SSE connection reconnects and keeps all active receipts plus the 24 most recent settled receipts. The current page keeps its existing cards after hangup, when another call replaces the current call, and across a redial; replacement stops live tracking for the old call. Refreshing the page loses page-local history, and a newly opened page cannot retrieve receipts from an old replaced call because there is deliberately no new database. When a call ends while DSH work continues, its card freezes at “Call ended · follow in session” instead of pretending the work failed or completed.

Voice names match Codex: arbor, breeze, cove, ember, juniper, maple, sol, spruce, vale.

HTTP/WS outbound honors $DSH_HOME/.dsh-oauth-proxy.json (same file as dsh-oauth-login) and HTTPS_PROXY. Browser audio uses WebRTC from the current device to OpenAI; being on this machine or the same LAN only means the control plane goes through DSH.

Rebuild committed lib/

Stock install uses the committed lib/. After TypeScript edits, rebuild with pnpm:

pnpm install --frozen-lockfile
pnpm test
pnpm build