deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
A Hatsune Miku (初音未来) theme skin for the DeepSeek Harness (DSH) Web GUI.
#14263f) on pale frosted surfaces — WCAG AA contrast (11.6–14.3:1 on bubbles / code blocks / menus); inputs use a high-opacity pale fill so text stays readable over any backdrop area!important priority; disable with dsh.miku.cursor=off
· 
apply() only writes what it withdraws; the disposer fully recovers (body attribute, injected elements, favicon, title, cursor)body[data-dsh-miku] (dark variant [data-ds-dark-theme])prefers-reduced-transparency support: users who enable "Reduce Transparency" (macOS / iOS Safari) get near-opaque fills instead of the translucent blur, keeping readabilitydsh.miku.cells accepts up to 20 trimmed strings of ≤ 64 chars, dsh.miku.title ≤ 200 chars; oversized or malformed values fall back to the defaultsdsh web (default http://127.0.0.1:3080)pnpm install # install dependencies (runs the prepare build automatically)
pnpm build # builds lib/index.js + lib/client.js
pnpm test # apply/dispose contract test
The built lib/ is committed with the repo, so you can install even after cloning without building; a full build is still recommended.
dsh plugin --profile web add "link:<absolute path to this repo>"
Spaces in the path (Windows): dsh plugin add breaks arguments containing spaces; use this instead:
cd ~/.dsh/profiles/web
pnpm add "link:<absolute path to this repo>"
Then append @deepseek-ai/dsh-client-ui-skin-miku to the dsh.profile.bundles array in ~/.dsh/profiles/web/package.json.
After installing, restart dsh web and hard-refresh the page (Ctrl+Shift+R).
A step-by-step Chinese install guide lives in INSTALL.md.
This repo ships a single skin, so switching is install/uninstall:
dsh plugin --profile web add "<path or git url of this repo>" # enable Miku
dsh plugin --profile web remove @deepseek-ai/dsh-client-ui-skin-miku # restore the official look
After installing, restart dsh web and hard-refresh the page (Ctrl+Shift+R); the config watcher hot-reloads within seconds.
The background lives in the MIKU_ART constant of src/client/art.ts (a WebP data URI).
To replace it, convert an image you like to base64 (WebP preferred for size/quality) and replace the MIKU_ART value:
export const MIKU_ART = 'data:image/webp;base64,<...>'
Then rebuild and refresh the page:
pnpm build
Optional overrides, read from localStorage (all are optional; absent or invalid values fall back to the defaults). They are pure presentation — no services, no events:
| Key | Value | Effect |
|---|---|---|
dsh.miku.title |
any string | Replaces the pinned title ("初音未来 · DeepSeek 在线") in the title bar and document title (≤ 200 chars) |
dsh.miku.cells |
JSON array of strings | Replaces the status-bar cells, e.g. ["LIVE 01", "TURBO"] (≤ 20 cells, each trimmed non-blank ≤ 64 chars) |
dsh.miku.cursor |
off |
Disables the Miku cursor (any other value or absence keeps it on) |
Example:
localStorage.setItem('dsh.miku.title', 'Miku Works')
localStorage.setItem('dsh.miku.cells', JSON.stringify(['LIVE 01', 'TURBO']))
localStorage.setItem('dsh.miku.cursor', 'off')
location.reload()
The bundled artwork is used with the original authors' written authorization, for use in this UI only:
BSD-3-Clause
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。