DeepSeek Harness plugin

dsh-mobile-voice-call

App-free mobile voice calls with existing DeepSeek Harness sessions

Jump to install

Source facts

Repository
SnowfallC/dsh-mobile-voice-call
Latest update
Aug 17, 2026
Category
Tools & Capabilities
GitHub stars
1
Format
plugin
Catalog evidence
Upstream dsh.bundle evidence
Evidence path
package.json#dsh.bundle
Checked against
0.1.0-rc.8
Upstream check date
2026-08-20

This evidence comes from the upstream catalog. This site has not installed, run, or security-reviewed the plugin.

Install

Start with a prompt that asks an agent to review the GitHub repository and source. Switch to the command if you want to install it yourself.

Copy this prompt into DSH, Codex, or another agent and ask it to review the GitHub repository and source first.

Do not install or run any commands yet. Read this plugin's GitHub repository, README, and relevant source code. Then answer the questions below clearly and directly so I can decide whether it fits my needs:

1. What is this plugin, and what problem does it solve?
2. Who is it for, and what are its typical use cases?
3. How is it used after installation? Include one minimal example.
4. What known limitations or privacy, security, compatibility, or maintenance risks does it have?
5. Give a clear recommendation: recommend, conditionally recommend, or do not recommend, with reasons.

Distinguish statements documented by the repository, inferences from source code, and unknowns. If evidence is insufficient, say so explicitly. Do not guess or simply repeat the README.

GitHub: https://github.com/SnowfallC/dsh-mobile-voice-call
Plugin: dsh-mobile-voice-call
Author: SnowfallC

Check the source files

Read the README and other files from this plugin directory before installing.

File explorer4 files
README.en.mdSource · read only
README language

<p align="center"><img src="docs/assets/deepseek-mascot-voice-hero.png" alt="DSH Mobile Voice Call" width="100%"></p>

DSH Mobile Voice Call

There is no app to download. Scan a QR code with a phone or tablet and call the DeepSeek mascot directly from the browser. You can chat with her or let her continue using DSH tools to operate the computer and organize files.

![Compatibility CI](https://github.com/SnowfallC/dsh-mobile-voice-call/actions/workflows/compatibility.yml)

简体中文 · [Installation](#install-and-run) · DSHFind

How it works

DSH is already a web application, so mobile access does not need a separate APK. The plugin connects through DSH's supported plugin composition without patching the core. Its phone page is deliberately limited to the call flow, while sessions, archive state, language, and appearance continue to come from DSH. That leaves only a thin compatibility layer to maintain as DSH evolves.

DSH, the authenticated bridge, whisper.cpp, and Hojo-TTS-Light run on the computer. A Cloudflare Quick Tunnel supplies the temporary HTTPS address, while the phone browser captures audio and plays the result. Recordings return to the computer for local transcription, and the text is sent through DSH's native session RPC. Hojo-TTS-Light turns DeepSeek's reply into WAV audio for automatic playback on the phone. Windows system speech remains available while Hojo is preparing or unavailable.

  • Lists existing idle top-level sessions instead of exposing the full text-chat interface.
  • Requests microphone access and starts the call as soon as a session is selected.
  • Supports muting, interrupting speech, hanging up, and cancelling an active turn.
  • Hides sessions archived in DSH.
  • Follows DSH's English/Chinese preference and light/dark appearance.
  • Keeps the one-time pairing token in the URL fragment, then uses an HttpOnly, SameSite=Strict cookie.

Screenshots

<p align="center"><img src="docs/assets/mobile-voice-call-in-action.jpg" alt="A DeepSeek voice call running in a phone browser" width="390"></p>

<p align="center"><img src="docs/assets/voice-call-pairing-redacted.png" alt="DSH Mobile Voice Call pairing dialog with the QR code redacted" width="640"></p>

Install and run

Requirements

  • A working DSH Web profile.
  • The default automatic setup targets Windows x64.
  • Hojo-TTS-Light requires uv to be available on PATH; a separately managed system Python installation is not required.

Install from GitHub

Run these commands from the DSH source repository:

pnpm dsh plugin --profile web add "github:SnowfallC/dsh-mobile-voice-call"
pnpm dsh web

Install from a local checkout

git clone https://github.com/SnowfallC/dsh-mobile-voice-call.git "C:/path/to/dsh-mobile-voice-call"
cd "C:/path/to/deepseek-harness"
pnpm dsh plugin --profile web add "C:/path/to/dsh-mobile-voice-call"
pnpm dsh web

First-time speech recognition and TTS setup

Neither component requires a manual model download, but the first setup needs an internet connection:

  • Speech recognition (whisper.cpp): when DSH starts the plugin, it downloads the official Windows x64 build (about 8 MB) and the multilingual small model (about 466 MiB). Fixed sizes and SHA-256 digests are verified before either file is used. A usable call link appears after this step; later launches reuse the cache.
  • Speech synthesis (Hojo-TTS-Light 80M): warm-up starts in the background when the Voice call panel is opened. The plugin uses uv to create an isolated Python 3.12 environment, installs pinned CPU inference packages, and downloads about 348 MB of model files plus the pinned upstream inference script. QR pairing does not wait for this work. If a phone connects early, it displays a voice-engine warm-up message. A failed Hojo setup falls back to Windows system speech.
  • Cache location: assets are stored under $DSH_HOME/cache/dsh-mobile-voice-call/; when DSH_HOME is unset, the usual location is %USERPROFILE%/.dsh/cache/dsh-mobile-voice-call/. Completed downloads are reused.
  • Existing local components: set whisperExecutablePath, whisperModelPath, hojoPythonPath, or hojoModelDirectory to existing files and directories to bypass the corresponding automatic setup.

Model files and CPU packages need time and disk space on the first run; download speed depends on access to GitHub, Hugging Face, and the Python package indexes. When setup is ready, click Voice call in the lower-right corner, scan the QR code, choose a session, and speak. Revoke the link from the desktop when the call is over.

Browser requirements and limits

  • The page must use HTTPS; the Quick Tunnel provides it.
  • The browser must support microphone capture and Web Audio; browser speech synthesis is not required. Recent Android Chrome and iOS Safari are recommended.
  • Do not remain in the embedded browser supplied by a QR scanner, WeChat, QQ, or Lark. Use its top-right menu to open the page in a system browser.
  • Speech recognition runs locally through whisper.cpp on the computer and does not depend on Android SpeechRecognition. Raw recordings are not submitted to DeepSeek, but they still travel from the phone to the computer through the Cloudflare tunnel, so this is not an end-to-end encrypted path.
  • Calls are turn-based rather than true full-duplex audio. Handle tool approvals and other sensitive actions on the desktop.
  • Running sessions are disabled in the selector to avoid concurrent writes to the same turn.

Local speech configuration

The default setup targets Windows x64. With whisperExecutablePath and whisperModelPath set to auto, the plugin installs both assets automatically. You can instead provide paths to an existing whisper-cli executable and a GGML model. whisperThreads controls transcription threads and defaults to 8.

Speech synthesis now defaults to Hojo-TTS-Light 80M. A bundled synthetic reference clip gives the cloned Chinese voice a cute, lightly tsundere character. On first launch, the plugin creates an isolated Python 3.12 environment in the DSH cache and downloads roughly 348 MB of model files plus the CPU inference runtime; no system Python setup is required. Use hojoReferenceAudioPath together with an exact hojoReferenceText transcript to provide your own voice reference, tune CPU usage with hojoThreads, or point hojoModelDirectory and hojoPythonPath at an existing setup. While Hojo is still preparing, or if synthesis fails, the plugin falls back to Windows system speech. Automatically downloaded model files and official inference source are pinned by version, size, and SHA-256 digest.

The 80M engine loads on demand. DSH startup prepares only the lightweight fallback voice; opening the Voice call panel starts Hojo warm-up in the background. The model is loaded once per DSH process, so closing and reopening the panel does not repeat initialization. Before synthesis, the client removes English and Chinese parenthesized passages so action, tone, and role-play directions are not spoken; the original on-screen reply remains unchanged.

Playback splits replies at periods, question marks, and exclamation marks. The plugin reads native DSH assistant/chunk events every 250 milliseconds, submitting and playing each complete sentence without waiting for the whole turn to finish. The single Hojo model still processes later sentences through a safe queue. Hojo does not expose frame-level audio streaming, so this is sentence-level streaming. Text appears as its corresponding audio begins, and the default runtime uses eight CPU threads.

Once a call starts, the plugin prepends a voice-conversation instruction to the first spoken message only. It asks DSH to keep later replies natural, concise, and suitable for reading aloud, without adding parenthesized actions, role-play narration, or stage directions. The instruction is not injected again on every turn. Markdown cleanup happens locally before playback and does not alter the original reply stored in the session.

> [!WARNING] > This feature is experimental. Traffic is relayed through Cloudflare, and Quick Tunnels provide neither a stable hostname nor a service-level guarantee. Avoid sensitive work and revoke the link after use.

Development

pnpm install
pnpm check
pnpm test

See [cordis.patch.yml](cordis.patch.yml) for configuration. Report security issues according to [SECURITY.md](SECURITY.md). The code is licensed under the [MIT License](LICENSE).

Uninstall

pnpm dsh plugin --profile web remove dsh-mobile-voice-call

Restart DSH afterward. The plugin leaves no patch in the DSH core repository.

Friendly link