Applies the "Orca Link" skin to the DSH web interface: pearl white mechanical cabin, obsidian orca operator, and electric blue link signals. Pure display layer only—no access to any DSH services.
- Language
- TypeScript
- Branch
- main
Install
$ dsh plugin --profile web add github:Small-tailqwq/dsh-deep-whale#path:orca-linkRun the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial
Install via your agent
Install the DeepSeek Harness plugin Small-tailqwq/dsh-deep-whale/orca-link for me: review the repository at https://github.com/Small-tailqwq/dsh-deep-whale first, then run the install command and verify the plugin loads successfully.
Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.
One-Line Pitch
orca-link is a display skin for DeepSeek Harness Web that applies the "Whale Link" theme to conversation backgrounds, sidebars, status characters, and system icons. It doesn't modify any DSH behavior—no new services, no Cordis events, no model requests—it just dresses the Web interface in a black-and-white mechanical style skin.
Core Features
- Global Right-Angle Contract: Zero border-radius, status signal dots and favicons all square, unified straight-line visual design for buttons/input fields/cards/menus/popups/toasts/tags/avatars/scrollbars
- Runtime Icon Redraw: SVG icons that match the host get additional straight-line graphic layers appended (original nodes intact), fully restored on unload; covers 10+ scenarios including send, stop, inbox, todo three states, context usage, folders
- Light/Dark 16:9 Scenes: Empty state characters and workspace scenes crossfade in 640ms, assets embedded as data URIs in client bundle
- Sidebar Persistent Status Character: Ten states (idle/sync/working/authorized/input/review/complete/failed/offline/ready), multi-frame continuous motion, automatically driven by session state reuse
- Peak/Valley Pricing Traffic Light: Real-time coloring by Beijing time (09:00-12:00 / 14:00-18:00 as peak, 10 minutes before switch as transition window, rest as idle), hover for detail card
- Input Box Animation: Hero→workspace crossfade at 560ms, auto-hide on upward scroll, left/right handles draggable to collapse into small restore bar
- **Mobile auto-hides large scenes and stage decorations;
prefers-reduced-motiondisables character frame-by-frame animation and typewriter effect
Technical Implementation
- Language: TypeScript (also built as CJS bundle for host module loader loading)
- Key Dependencies:
@deepseek-ai/cordis(^4.0.1, corresponds to DSH rc.6+),lightningcss(build-time CSS Modules compilation),tsdown(build packaging) - Architecture Pattern: Cordis
ctx.effectlifecycle:apply()startup has 13 independent controllers separately take over scenes, icons, status characters, pricing light, composer animation/collapse, hero typewriter, sidebar search autocomplete, window resume prompt suppression, terminal performance, settings overlay, etc.; unified deactivator registered viactx.effect(() => () => {...}, 'ui-skin-orca-link: technical chrome')restores all DOM, CSS variables, Observers, setInterval, document.title, favicon in one go - Entry File:
src/index.ts(placeholderapply()with no operations on host side only); real implementation insrc/client/index.ts, build artifactlib/client.js(contains all asset data URIs) - Host Injection: Registered to Web plugin list via
cordis.patch.ymlasui-skin-orca-link, switched mutually exclusively by DSH skin center based on home-layer
Use Cases
Users who want to change DSH Web terminal to "Whale Link" black-and-white mechanical style skin, those who prefer flat/right-angle visuals; users who only care about decoration without touching any DSH behavior; privacy-conscious users who want all assets localized (no external network requests). Prerequisite: already using DSH Web terminal and willing to enable it in the skin center.
Prerequisites & Compatibility
| Dependency | Min Version | Description |
|---|---|---|
| DSH | 0.1.0-rc.6+ | peerDependencies locks @deepseek-ai/cordis ^4.0.1 (package.json:28-30), consistent with maid-atelier in same repo |
| Node | Not declared | Skin only loads in browser, build done by repo owner, no Node requirement at runtime |
| Platform | Cross-platform | dsh.client.platform = "web" (package.json:14-22), runs on all desktop/mobile OS with modern browsers |
| Native Modules | None | All assets embedded as data URI in client.js, no Node native modules or external resources |
Installation
dsh plugin --profile web add github:Small-tailqwq/dsh-deep-whale/orca-link
After installation, you need to enable the skin in DSH skin center (
dsh-skin) to triggerapply().
Configuration
No additional configuration needed. All "parameters" are hardcoded as fixed values in the source code (e.g., LINK status ten-level text, pricing peak windows 09:00-12:00 / 14:00-18:00, composer collapse threshold 56%, sidebar width threshold 96px, etc.), skin center only handles on/off binary choice.
| Config | Type | Description | Default |
|---|---|---|---|
| None | — | This plugin requires no extra configuration | — |
FAQ
Q: Installed but no interface changes and no errors, what to do?
A: Installation alone doesn't auto-activate. Open DSH skin center (dsh-skin), check "Whale Link" in the skin list to activate; to uninstall, uncheck in skin center, the deactivator will restore everything.
Q: Can skin coexist with DSH built-in themes/other third-party skins?
A: No. cordis.patch.yml uses home-layer mutually exclusive switching (wiring.id is ui-skin-orca-link), only one skin can be active at a time.
Q: Can it be installed on desktop (Electron)?
A: No. package.json explicitly declares dsh.client.platform: "web", skin only injects to Web GUI; desktop shell runs its own host.
Q: The "LINK ACTIVE" indicator sometimes turns green sometimes red, what's the rule?
A: Pricing traffic light colors in real-time by Beijing time (UTC+8): 09:00-12:00 and 14:00-18:00 are peak (red), 10 minutes before peak start is transition window (yellow), other times are idle (green, pricing is half of peak). Switch times only happen at four boundaries: 09:00 / 12:00 / 14:00 / 18:00 (src/client/pricing-light.ts:24-77).
Q: When switching dark theme in browser, does skin change accordingly?
A: Yes. MutationObserver in settings-overlay.ts listens for data-ds-dark-theme (src/client/settings-overlay.ts:46-55), switches to corresponding mechanical cabin night scene and electric blue signal color scheme in dark mode.
Q: Page layout messed up after uninstall?
A: Very rare but theoretically possible: if forced uninstall before apply() completes, some body attributes may not be restored. Re-enable then uninstall again to restore.
Q: If browser has "reduce motion" preference enabled, does skin stop animations?
A: Yes. Status character and headline typewriter check prefers-reduced-motion: reduce, when enabled status character stops frame-by-frame switching, headline displays full text directly (src/client/status-character.ts:318-322 / src/client/headline-typewriter.ts:40-41,69-73).
Difficulty Level
Beginner — After installation, just check once in skin center, no config items, no commands, no hotkeys, regular users can use it.
Known Issues & Limitations
- When ResizeObserver is unavailable in very old browsers (IE, early Safari), sidebar width linkage degrades to only relying on
--orca-sidebar-widthinitial value, CSS variables don't update during scaling (src/client/index.ts:171-175) - When switching to background and back, browser automatically replays "activation" prompt, skin suppresses sidebar tooltip until user actively moves pointer/presses key to avoid accidental trigger (src/client/window-resume.ts:8-46), but prompt may still appear in very rare browsers that don't trigger
visibilitychange - All skin assets embedded in
lib/client.js, first installation requires downloading/unpacking this package - Strictly prohibited from any commercial use, must retain complete attribution chain (see
NOTICE); when modifying and redistributing, must share in the same manner - Development build needs to be done in upstream
dsh-web-uirepo'spackages/skins/orca-link/directory (README.md:35-45), this repo only distributes finished products
DeepSeek Harness Web GUI 的鲸鱼娘主题皮肤系列(独立分发仓库)。
效果预览
点击图片可查看完整尺寸。
住户
| 皮肤 | 包名 | 说明 | 许可 |
|---|---|---|---|
| maid-atelier | @dsh-external/dsh-client-ui-skin-maid-atelier | 深海女仆工坊:双女仆背景、深海蓝蕾丝界面与 Q 版侧栏 | CC BY-NC-SA 4.0 |
| orca-link | @dsh-external/dsh-client-ui-skin-orca-link | 虎鲸链路:珍珠白机械舱、黑曜虎鲸操作员与电蓝链路信号 | CC BY-NC-SA 4.0 |
版权所有人
| 版权所有人 | 版权所有内容 | 对应皮肤 | 个人主页 |
|---|---|---|---|
| 上善 | 鲸鱼娘角色形象原作 | maid-atelier / orca-link | Pixiv · Bilibili(上善无形) |
| ZipZipPipe | 加入 DeepSeek 元素的女仆鲸鱼娘二次设计 | maid-atelier | Pixiv · Bilibili(ZipZipPipe) |
*反馈问题尽可能在 issue 中发起,而不是跑去联系上面两位老师。但是,看鲸鱼娘二创可以去关注一下,谢谢喵
安装
懒人版
对你的 dsh 说:
安装一下这个皮肤包:https://github.com/Small-tailqwq/dsh-deep-whale
dsh 会按 dsh-skin-install 技能走完整流程:列出全部皮肤、交代署名链与许可、用绝对路径注册并激活你选的那一套。
手动安装(推荐绝对路径)
git clone https://github.com/Small-tailqwq/dsh-deep-whale # clone 到任意位置
dsh plugin --profile web add <clone 的绝对路径>/maid-atelier # 深海女仆工坊
dsh plugin --profile web add <clone 的绝对路径>/orca-link # 虎鲸链路
Windows 示例(正斜杠与反斜杠均可,pnpm 会自动规范化):
dsh plugin --profile web add C:/Users/<你>/code/dsh-deep-whale/maid-atelier
相对路径的规则(容易踩坑)
- 相对路径(
./、../开头)按 dsh 命令的调用目录解析,不是皮肤仓库目录。 - 不要直接写裸目录名:
dsh plugin --profile web add maid-atelier会被当作 npm 包名去 registry 拉取而 404 失败。请用./maid-atelier(已在皮肤仓库目录内)、../dsh-deep-whale/maid-atelier(与 dsh-deep-whale 同级)或绝对路径。 cd <harness>后用../dsh-deep-whale/maid-atelier的前提是 dsh-deep-whale 与你的 harness 目录同级;clone 到别处时相对路径会 link 到错误位置(命令不报错、但皮肤不生效)。不确定就用绝对路径。
安装后验证
dsh plugin --profile web list # 应看到 @dsh-external/dsh-client-ui-skin-* 的 link: 依赖
dsh --profile web --dump-config # 皮肤行在组合配置中,disabled 状态正确
刷新浏览器页面即可看到皮肤;皮肤开关走配置热重载,无需重启 dsh(新增/删除插件包才需要重启)。
安装失败排查
| 现象 | 原因 | 处理 |
|---|---|---|
ERR_PNPM_FETCH_404 ... <名字> | 传了裸目录名(如 add maid-atelier),被当成 npm 包名 | 改为绝对路径或 .//../ 前缀路径 |
命令成功但 dsh plugin list 没有该包 | 相对路径解析到了错误位置(clone 位置与假设不符) | 用绝对路径重新 add |
pnpm not found on PATH | 环境缺少 pnpm | 安装 pnpm(npm i -g pnpm)后重试 |
| 包在列表里但页面无效果 | 皮肤被 disabled(多皮肤互斥开关)或浏览器未刷新 | --dump-config 核对 disabled;刷新页面 |
懒人版 · 自带技能
本仓库自带 dsh-skin-install 技能(.agents/skills/)。dsh 在仓库目录内运行时自动发现该技能;对你的 dsh 说"安装一下这个皮肤包"或"切换皮肤",它会列出仓库全部皮肤、询问你要激活哪一套,并交代作者署名链与许可边界后再安装。无需自行克隆到 dsh 源码里,皮肤开关走配置热重载,无需重启。
许可
本仓库各皮肤为衍生创作,整体以 CC BY-NC-SA 4.0(署名-非商业性使用-相同方式共享)发布,禁止商业性使用。署名链见各皮肤 NOTICE。
皮肤工程脚手架来自 zhu1090093659/dsh-web-ui ,本仓库仅分发皮肤成品,不包含脚手架。
Read the usage guide →
Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.
Listing badge
[](https://deepseek-plugin.org/plugins/Small-tailqwq/dsh-deep-whale/orca-link)Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.



