Introduction¶
DeepSeek Harness (DSH) adopts a plugin-based architecture and allows users to customize the interface through extension points. This plugin is implemented via extension points, reconstructing the default DSH interface into the visual style of WeChat for Windows Desktop. It preserves the core functional entry points and adjusts only the visual presentation.
Plugin Overview¶
- Plugin Name: dsh-wechat-skin
- Author: licheng-ma
- Category: Fun Re-skin
- License: MIT
- Core Value: Provides a WeChat-style light theme, including a left-side narrow rail, conversation list, message bubbles, avatar pool, and a draggable input box.
Installation and Activation¶
After installation, restart DSH Desktop. The skin is enabled automatically by default.
# 安装插件
dsh plugin --profile desktop add -w /path/to/dsh-wechat-skin
# 重启 DSH Desktop
After restarting, go to the General option on the Settings page, where you can find the WeChat Skin toggle to enable or disable it.
Core Features¶
Leftmost Utility Sidebar¶
A 56px gray icon rail is retained on the left.
- The top is the user avatar (upload supported).
- Below it, up to 6 utility icons are displayed (gray line SVGs).
Conversation List¶
- Background:
#E6E6E8. - Selected State: Solid green
#15AC70with white text. - Layout: Two-line design; the first line is the title, and the second line is the subtitle (the latest message of conversations that have been opened).
- Avatar: 40px rounded-square avatar.
Message Bubbles¶
- Your Messages: Right-side light green bubble
#95EC69. - AI Replies: Left-side white bubble.
- Style: 8px rounded corners + WeChat-style small tail. The top edge of the bubble aligns with the top edge of the avatar.
Message Avatars¶
- You (Right): Displays the uploaded avatar or the default avatar.
- AI (Left): Displays the avatar of the current conversation in the sidebar.
Typography and Input Box¶
- Font: Microsoft YaHei (the WeChat Windows default). Supports 5 font size levels.
- Input Box: White full-width box with rounded corners and
#E0E0E0borders on all four sides. Supports vertical dragging to adjust height, and height changes are persisted. The send button is rectangular, located at the bottom right; it is gray when the input is empty and WeChat green when the input has content.
Avatar Generation and Upload¶
- Default Avatars: Automatically generated colored initial avatars.
- Real Portraits: A script can be run to download 100 real portraits (80 female / 20 male).
- Upload: Supports uploading local images (automatically compressed to 128px), and synchronously updates the avatars in the sidebar, messages, and conversation list.
Light/Dark Mode¶
- The skin is active only in light mode.
- When the system switches to dark mode, it automatically falls back to the official DSH appearance.
Customization and Configuration¶
Custom Styles¶
After modifying the CSS, a rebuild and page refresh are required.
# 1. 编辑 src/wechat-skin.css
# 2. 重新构建
node scripts/build.cjs
# 3. 刷新 DSH 页面(Ctrl+F5)
Generate Avatar Pool¶
If you want to use real portraits instead of initial avatars:
node scripts/download-avatars.cjs
Notes¶
- Appearance-Only Modification: The plugin does not delete or move any functional entry point. Styling for rich content (code blocks, attachments, etc.) is weakened into WeChat-style gray bars.
- Settings Deep Links: Clicking utility icons in the left rail can attempt to open the Settings page and locate the corresponding section. DSH does not provide a full section deep-link API, so some positioning may remain only on the Settings page.
- Sidebar Auto-Collapse: When the window width is less than 1024px, DSH itself will automatically collapse the sidebar, and the skin cannot override this behavior.
- Subtitle Limitation: Subtitles only record the latest message of conversations that the user has opened. Conversations that have not been opened have no subtitle.
Conclusion¶
dsh-wechat-skin is an appearance-focused DSH plugin, suitable for users who want a more familiar interface experience while using DSH for development or conversation. The project source code is hosted on GitHub and released under the MIT license.