DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Ui Translate — DSH Plugin for DeepSeek Harness
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in
← Plugins
U

dsh-ui-translate

Ui Translate

Privacy-first browser-local Chinese UI and content translation for DeepSeek Harness Web

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:RadicalGitter/dsh-ui-translate#7d28b163911a9494225a810673673c76f9e88ccf
READMECompatibilityVersions

Compatibility and provenance

Ui Translate is published as dsh-ui-translate and currently resolves to version 0.4.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
8/20/2026

Versions

0.4.0stable
8/20/2026
0.3.1stable
8/20/2026

Related plugins

Loading related plugins…

Latest
0.4.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 2
Weekly downloads
0
Last push
8/22/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue

Related plugins

More verified plugins in ui-customization.

Client Ui Git Graph@linxin666/dsh-client-ui-git-graphExternal dsh web GUI plugin: a blank-session git branch selector + Git graph, with real host-side git operations and guards, as a dsh profile bundleWeb All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / git-graph / pet / remote-web-ui / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Usage@linxin666/dsh-usageUsage statistics plugin for the dsh web GUI: per-provider balance and coding-plan quota detection plus a live token usage ledger, with the current session provider's today usage on the sidebar entryWhale Widgetdsh-whale-widgetDeepSeek balance whale widget in the bottom-right corner of the DSH Web interface: balance/today’s usage/peak-off-peak pricing, customizable bubble click sequence (text/balance/today/peak-off-peak/image/random phrases and parallel weighted selection), per-line styles and fonts, floating quick editin

README

dsh-ui-translate

A privacy-first DeepSeek Harness Web plugin that can translate all visible Chinese UI and content—including session titles, workspace names, messages, search results, and plugin text—without enabling Chrome auto-translate.

Privacy and mutation model

  • The plugin is disabled on first install and defaults to the in-process offline glossary.
  • Network-capable translation remains restricted to a compile-time allowlist of known DSH UI phrases and bounded numeric templates.
  • The explicitly selected browser-local OPUS-MT backend translates all connected visible Chinese text, including user-authored and session-derived content. Source text and translations stay inside a dedicated browser Worker and are never uploaded.
  • Editable/composer fields, textarea, input, select, contenteditable, code/preformatted content, [data-input-backdrop], translate="no", and .notranslate remain untouched to avoid corrupting authored or executable text.
  • Translation changes only Text.data; element structure, attributes, stable session/workspace IDs, links, listeners, and React ownership remain intact.
  • Translated text receives a configurable marker: purple overlay (default), dashed underline, both, or none. Hovering directly over translated characters for about 0.65 seconds exposes exactly one contextual action: Show original while translated, then Re-translate after the original is shown. The control does not wrap or intercept the underlying link.
  • Translated session titles are presentation aliases: clicking them still opens the canonical thread through its unchanged ID/link. Free-text alias resolution by an agent is not yet provided.
  • Disabling or reconfiguring the plugin restores original text. Translation-result caches are bounded and memory-only; downloaded model assets use the browser cache.
  • Local inference runs progressively in small sequential batches: visible navigation, settings, and live-status text are prioritized ahead of conversation backlogs, and scrolling queues newly visible content.

Backends

BackendDefaultNetwork behavior
Offline glossaryYesNo network. Translates approved Chinese labels and bounded pet count/point templates to English; unknown labels stay unchanged.
Browser-local OPUS-MTNoChinese-to-English only. Translates all visible Chinese UI and content. On first use, downloads about 110 MB of pinned quantized model files from Hugging Face, caches them in the browser, and performs inference inside a dedicated local Worker. Page text is not uploaded.
OpenAI-compatibleNoSends only allowlisted UI phrases after the user explicitly selects this backend and enables translation. Calls run through a token-authenticated, same-origin, rate-limited, loopback-only Host route.

The browser-local backend uses Xenova/opus-mt-zh-en pinned to revision 39d480d52a9ea3065a1f117adfe4dbc55de10e6f. Selecting it is explicit consent to download public model artifacts from Hugging Face. The model files are the only remote payload in this mode: source UI text and translations stay inside the browser Worker. Long messages are segmented into bounded sentences/chunks and reconstructed locally. Cancelling, disabling, reconfiguring, or unloading the plugin terminates active inference. This compact local model can produce literal or awkward translations; pathological blank, excessively long, and repeated-punctuation output is discarded or normalized before it reaches the page.

Translated text is visually marked through the browser Custom Highlight API, with plugin-owned range overlays where that API is unavailable. The floating control box lives outside React-owned content, requires a deliberate text hover, and shows one action at a time: reveal the original, then invalidate the local result cache and re-translate it.

The OpenAI-compatible provider defaults to http://127.0.0.1:11434/v1 and model qwen2.5:7b. Loopback, RFC1918, link-local, .local, and host.docker.internal endpoints are accepted. Public hosts require the explicit Allow a public endpoint setting and HTTPS.

An optional bearer token is read by the Host from DSH_UI_TRANSLATE_API_KEY (or the composition-only apiKeyEnv setting). It is never stored in browser state or sent to the settings UI. Redirects are rejected so credentials are not forwarded to another origin.

Provider code is isolated behind TranslationProvider / TranslationProviderRegistry on the Host and ClientTranslationBackend / ClientBackendRegistry in the browser, so more providers can be added without changing the DOM safety engine.

Install

After npm publication:

dsh plugin --profile web add dsh-ui-translate

From this repository checkout:

dsh plugin --profile web add link:/absolute/path/to/dsh-ui-translate

Or add the Git repository directly if your DSH profile installer supports Git dependencies:

dsh plugin --profile web add https://github.com/RadicalGitter/dsh-ui-translate.git

Restart dsh web, then open Settings → UI translation. The plugin stays off until you enable it.

Configuration

The settings page exposes:

  • enable/disable (default: disabled);
  • target language (default: English);
  • backend (default: offline glossary), including the opt-in browser-local OPUS-MT engine;
  • local-model download/initialization status when OPUS-MT is selected;
  • translation marker style: purple overlay (default), dashed underline, both, or none;
  • delayed-hover per-text original/re-translate controls for translated content;
  • OpenAI-compatible endpoint, model, and public-endpoint opt-in when that backend is selected.

The same values can be supplied in a later Cordis patch:

- id: ui-translate
  config:
    enabled: true
    targetLanguage: en
    backend: openai-compatible
    markerStyle: overlay
    endpoint: http://127.0.0.1:11434/v1
    model: qwen2.5:7b
    allowRemoteEndpoint: false
    apiKeyEnv: DSH_UI_TRANSLATE_API_KEY

Open-source model and runtime attribution

The optional browser-local backend builds on these open-source projects:

  • Helsinki-NLP/opus-mt-zh-en, developed by the Language Technology Research Group at the University of Helsinki and licensed under CC BY 4.0;
  • Xenova/opus-mt-zh-en, the browser-compatible ONNX conversion published by Xenova (Joshua Lochner) and used at the pinned revision listed above;
  • @huggingface/transformers 3.8.1, licensed under Apache-2.0;
  • ONNX Runtime Web, licensed under MIT.

Please see THIRD_PARTY_NOTICES.md for the full attribution, model citation, revision, license links, and limitations.

Development

npm install
npm run typecheck
npm test
npm run build
npm pack --dry-run

cordis.patch.yml makes this repository a standard DSH profile bundle. The package's dsh.client metadata tells the Web client module scanner to serve lib/client.js.

Security and privacy

See SECURITY.md. In brief: installation and the default backend perform no translation requests, browser text is never stored on disk by this plugin, and remote endpoints require an explicit opt-in. Review endpoint ownership and model retention policy before enabling a networked provider.

License

MIT