Introduction¶
The default web interface of DeepSeek Harness (DSH) offers a generic appearance. For developers running it locally or on an intranet, the interface often just “works”—color schemes, icons, and conversation status feedback remain at the framework’s default level, lacking visual cohesion with the tools you use.
While the community has developed various DSH plugin extensions, “reskin” plugins are relatively rare, and most only modify a few CSS variables. What follows is an introduction to dsh-joi-channel-theme, released by maintainer tpmoonchefryan: an unofficial fan-made theme based on the official design of VirtuaReal VTuber Joi. It brings two complete costumes (Joi·Flowers / Joi·Library) into every corner of the Harness interface and synchronizes character expressions with changes in conversation status.
What Is It¶
dsh-joi-channel-theme is a web client theme plugin for DSH. Its plugin ID is dsh-joi-channel-theme, and the current npm version is 0.1.10. It is categorized under “Fun Costumes” in the SkillHub community directory and has approximately 11 stars on GitHub.
The plugin has a clear purpose: to transform the DeepSeek Harness interface into two “rooms” for Joi—the warm, stage-like Joi·Flowers and the cool, study-like Joi·Library. Each costume features its own background colors, panels, bubbles, code highlighting, background patterns, and character expressions, used independently without mixing. The light/dark mode (light / dark / follow system) is still controlled by Harness’s native settings; switching costumes only changes the color system.
It should be noted upfront: this is an unofficial, non-commercial fan work, with no affiliation or authorization from Joi, VirtuaReal, Bilibili, DeepSeek, or related rights holders. The code is released under the MIT license, and character and visual assets are released under CC BY-NC-SA 4.0.
Core Features¶
Dual Costume Complete Themes¶
Each costume covers 19 neutral color shades, 44 semantic color mappings, and 9 code highlighting sets (separate values for light and dark). The sidebar logo is replaced with a dual portrait of Joi and Whale Girl, switching with the costume; tab icons, list markers, and other details are also replaced. All visual assets are bundled as inline WebP data URIs (10 items, approximately 2.4 MB), with no external dependencies, making them CSP-friendly.
Conversation Status Expressions¶
On either side of the conversation input box, there is a chibi character: on the left is the fan-created形象 “Joi Core,” and on the right is Joi. They share the same set of status terms and switch expressions simultaneously:
| Status | Identifier | Expression |
|---|---|---|
| Standby | info |
Default posture |
| Running | running |
Working |
| Success | success |
Squinting happily |
| Error | error |
Drooping eyes and tears, returning to standby after about five seconds |
During long conversations, if text overlaps with characters, the overlapping lines automatically receive a background outline to ensure readability.
In-Interface Costume Switching and Reversion¶
After installation, three cards are visible in Settings → General Settings → Costume: Joi·Flowers, Joi·Library, and “DeepSeek Native.” Selecting the native appearance does not uninstall the plugin; it simply switches back to the framework’s default skin. Selecting either costume restores it. Light/dark mode is still controlled by the Light / Dark / Follow System settings below.
Other Design Details¶
- The context usage indicator is changed to an orange that changes color with usage, becoming overripe to signal a warning.
- Sub-agent tasks are displayed with a small whale icon in a queue: queued with closed eyes, running while spraying water, and completed with squinting eyes.
- The design baseline is frozen in
baseline-4q.json, generating constants during the build period; the four quadrants (two costumes × light/dark) each have independent color calibration.
Compatibility requirement: DeepSeek Harness Web 0.1.0-rc.5+.
Installation and Activation¶
DSH plugins can currently only be installed via the command line, and the Harness process must be restarted after installation for changes to take effect. Before installation, verify the runtime environment:
| Prerequisite | Check Command |
|---|---|
Node.js ^22.19 or >=24 |
node -v |
pnpm (dsh plugin depends on it for profile dependency management) |
pnpm -v |
If pnpm is not installed, choose one of the following methods to install it:
npm install -g pnpm
or
corepack enable pnpm
When Using npx to Start Harness¶
If you typically use npx @deepseek-ai/dsh web to start, and the dsh command is not in your PATH, you need to add the same npx prefix:
npx @deepseek-ai/dsh plugin --profile web add dsh-joi-channel-theme
After installation, start as usual:
npx @deepseek-ai/dsh web
The profile name must be web. Only web and headless come with default templates; other names will not load the web interface.
When dsh is Installed Globally¶
npm install -g @deepseek-ai/dsh
dsh plugin --profile web add dsh-joi-channel-theme && dsh web
Open the address printed in the terminal (default http://127.0.0.1:3080) in your browser and hard refresh once to see the theme. If Harness is already running, you need to stop it with Ctrl+C and restart it, as plugin set changes do not support hot reloading.
Uninstallation¶
npx @deepseek-ai/dsh plugin --profile web remove dsh-joi-channel-theme
After uninstallation, the interface will revert item by item to the native appearance. The README states that after on-device verification, there are no residual tokens, icons, labels, or code highlighting.
If npx fetch fails under domestic network conditions, you can temporarily specify the official registry:
npx --registry=https://registry.npmjs.org/ @deepseek-ai/dsh plugin --profile web add dsh-joi-channel-theme
Typical Usage¶
After completing the installation steps above, daily operations are performed entirely within the interface, with no need to use the command line.
- Start Harness and open the web interface.
- Navigate to Settings → General Settings.
- In the “Costume” row, select Joi·Flowers or Joi·Library; to restore defaults, select “DeepSeek Native.”
- In the light/dark settings on the same page, choose Light, Dark, or Follow System—light/dark mode is independent of costumes, allowing free combination of four quadrants.
During conversations, observe the expressions of the characters on either side of the input box automatically switch with task status (standby, running, success, error), requiring no additional configuration.
Use Cases and Considerations¶
Who It’s For
- Developers using the DeepSeek Harness web interface locally or on an intranet who want to give their daily tool a complete visual theme.
- Fans of Joi or VirtuaReal who wish to incorporate character elements into their development environment without affecting Harness’s functionality.
- Those needing an offline-friendly theme with zero external asset dependencies—all resources are bundled inline, relying on no CDN.
Before Use
- The plugin runs with the current DSH process’s permissions. Before installation, read the repository’s source code and licenses (code MIT, assets CC BY-NC-SA 4.0) to confirm that non-commercial use aligns with your scenario.
- This is a fan creation and must not be used commercially or imply any association with official parties or rights holders.
- The plugin only changes the web client’s appearance and does not modify model calls, toolchains, or agent logic. If you use the
headlessprofile, this plugin’s web injection will not take effect. - Direct installation from GitHub is not recommended: pnpm ≥10 intercepts the
preparebuild script, which may cause the initial installation to fail. It should be installed via the npm official packagedsh-joi-channel-theme, which already includes built artifacts.
Conclusion¶
dsh-joi-channel-theme transforms Joi’s two official costume designs into switchable complete rooms within Harness: palettes, characters, status expressions, and detail Easter eggs each form their own system, while still allowing a one-click return to the native appearance in settings. For developers looking to personalize the DSH interface while maintaining reversibility and zero residue, this is a reskin path that goes through the official npm channel with comprehensive documentation.
- Community Directory: SkillHub — dsh-joi-channel-theme
- Source Code & Documentation: GitHub — tpmoonchefryan/dsh-joi-channel-theme