Introduction

The design philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” The default Web GUI meets basic needs, but it often lacks flexibility in visual style and persona injection. If developers want to customize a specific UI skin for an agent or directly write persona prompts into the host logic, they usually need to create additional adapter code.

This section introduces the dsh-cyrene-theme plugin. It is an unofficial fan project that transforms the DSH Web GUI into a pink-and-white gradient glassmorphism theme based on the character Cyrene from Honkai: Star Rail, while also providing editable persona settings and sticker management features.

Plugin Overview

  • Name: dsh-cyrene-theme
  • Description: Cyrene theme: pink-and-white gradient glassmorphism UI + editable persona settings in the sidebar
  • Maintainer: berhbro
  • Category: Fun reskin
  • License: MIT

Core Features

This plugin mainly implements features at two levels: the client side and the host side.

  1. Theme UI
    The client side injects a scoped stylesheet (body[data-dsh-cyrene][data-cyrene-skin="on"]) to create a pink-and-white gradient background, translucent surface tokens, backdrop-filter glassmorphism effects, pink borders and soft shadows, as well as pink scrollbars and selection highlights. The styles are automatically restored after the plugin is uninstalled.

  2. Persona Settings
    The host side registers a systemPrompt.section, with the key cyrene:persona, ordered after the generic persona and before the tool policy. The persona draft can be edited and saved in real time from the sidebar or settings page. After changes, no plugin reload is required, and the updates take effect immediately for every subsequent conversation (including new sessions).

  3. Sticker Management
    The plugin includes a built-in sticker manager that supports adding and deleting custom images and adjusting their size (48–240px). Asset files must be placed in the meme/ folder under the plugin directory; the manifest file is stickers.json. The model generates Markdown-formatted instructions based on the manifest, so you can simply copy the path and use it.

  4. Full-Page Backgrounds
    You can place multiple background images in the Background/ folder. Features include background switching, automatic rotation (with interval and fade support), and drag opacity control. Background images are displayed through a client-side CSS overlay layer, ensuring the conversation area does not turn white.

  5. Persisted State
    The state file is stored at ~/.dsh/cyrene-theme.json. Write operations use optimistic concurrency control and must include the rev version number to prevent outdated pages from overwriting newer changes.

  6. UI Tweaks
    Changes include the avatar shown on the new session welcome page (default is a fish; changed to a Cyrene sticker) and the default placeholder prompt in the input box.

Installation and Activation

Install the plugin from the command line:

dsh plugin --profile web add github:berhbro/dsh-cyrene-theme

After installation, the page must be refreshed. This is because the stylesheets and asset manifests on the client side are read when the page loads, so refreshing is required to load the new bundle.

Typical Usage

  1. Edit Persona
    After installation and refresh, click the “✦ Cyrene” button at the bottom of the sidebar, or go to “Cyrene · Theme” in Settings to open the editor. Modify the persona draft in the editor box and click Save. Subsequent conversations will use the new settings.

  2. Manage Stickers
    Find “✦ Sticker Management N” at the bottom of the persona settings panel and click “Open Manager”. In the manager, use the slider to adjust sticker size, click “Add” to upload custom images, or click the “✕” in the top-right corner of a card to delete it. No reload is needed after changes; the model can use them in subsequent conversations.

  3. Configure Background
    In the Background section of the settings panel, choose “Background” or “Minimal (no image)”. If you choose a background, you can enable “Auto Rotate” and set the interval (15–3600 seconds) and fade level (0.2–0.85). Image files must be placed in the Background/ folder; refresh the page after changes to make them recognized.

  4. Reload
    If the sticker manifest or background manifest does not update as expected, click “Reload” to discard unsaved changes and re-fetch the asset manifests.

Use Cases and Notes

  • Copyright Notice: Cyrene character assets are for non-commercial fan works only and are not affiliated with miHoYo, HoYoverse, or DeepSeek.
  • When Changes Take Effect:
    • Changes to client-side logic (styles, UI panels) require a page refresh (F5) to take effect.
    • Changes to host-side logic (persona registration, routing, state file reads/writes) require reloading the plugin or restarting DSH to take effect.
  • Asset Limitations: Stickers are limited to files inside the package, with paths relative to the plugin directory; background images require a page refresh to recognize newly added files.
  • Optimistic Concurrency: When modifying the state file, you must include the correct rev version number; otherwise, an error will occur.

Conclusion

By separating skin injection from persona logic, dsh-cyrene-theme provides a lightweight personalization solution. It preserves DSH’s flexibility while using a plugin-based approach to meet specific visual and interaction requirements.

Plugin directory and source repository:
* SkillHub Plugin Directory
* GitHub Repository