Preface¶
In DeepSeek Harness (DSH), a common approach to role-playing is to either open SillyTavern separately or manually write JSON character cards within DSH and connect them to the chat interface. The former is disconnected from the DSH workflow, while the latter can lead to errors if one is unfamiliar with the SillyTavern V2/V3 format. Below, we introduce the dsh-portable-tavern plugin by maintainer XCNXNXNX: an independent plugin that integrates an RPG-style character card generator and tavern chat into the DSH Web GUI.
What is This¶
dsh-portable-tavern is the “Portable Tavern” plugin for the DSH Web GUI: it visually generates SillyTavern V2/V3 character cards and allows you to chat with characters within the same panel. It supports world books, character card JSON/PNG import/export, panel themes, and local music. The plugin solely relies on the official @deepseek-ai/* SDK, is categorized as “Fun Dress-Up” in SkillHub, and has approximately 20 stars on GitHub.
- SkillHub Directory: https://www.skillhub.cn/plugins/XCNXNXNX/dsh-portable-tavern
- GitHub: https://github.com/XCNXNXNX/dsh-portable-tavern
- License: BSD-3-Clause (see
package.jsonin the repository)
Core Features¶
Character Card Generation¶
Generate SillyTavern V2/V3 format character cards through a visual RPG attribute panel (seven modules). You can customize chat character avatars (upload images for automatic compression, which are exported/imported along with the character card JSON).
Tavern Chat¶
Engage in AI conversations with generated or imported characters, with support for dropdown model switching. A global system prompt can be injected before conversations, functioning similarly to SillyTavern’s System Prompt / Jailbreak.
Custom Model Integration¶
By default, it uses the model and key currently configured in DSH; alternatively, you can enter your own OpenAI-compatible endpoint address, API Key, and model name. The API Key is stored only in the local browser, and a one-click test connection verification is provided.
Local Persistence and Character Library¶
Character cards, chat histories, world books, and panel settings are automatically saved and restored via localStorage. The character library can store multiple characters locally (including their respective chat histories), with support for one-click loading or deletion.
World Books¶
Supports world book generation, auto-completion based on character cards, and import.
Import/Export¶
Character cards support export and import in both JSON and PNG (with embedded chara data) formats.
Interface Customization¶
Adjust panel width, theme color, and background image; support sequential playback of a local music folder. The floating tag on the right can be dragged, attached to the left or right side, or floated as a rounded square; it can be disabled in settings, and re-enabled from the DSH settings page once disabled.
Architecture Overview¶
A standard dual-side DSH plugin:
- The Node side (
src/index.ts) registers the/api/dsh-portable-tavernroute viawebServerand calls the officialllmservice. - The browser side (
src/client/index.ts) is discovered via thedsh.clientmanifest, mounts the floating panel and settings page entry through theslotsservice, and calls the aforementioned route usingfetch.
cordis.patch.yml injects the plugin line into the web profile roster via dsh.bundle.patch; the dsh.client declaration in package.json is responsible for loading the browser side in the Web GUI. The repository has submitted the lib/ directory, so no build authorization is required for profile installation.
Installation and Activation¶
Execute any of the following commands under the DSH Web profile:
# npm
dsh plugin --profile web add dsh-portable-tavern
# GitHub (lib/ is submitted, no build authorization needed)
dsh plugin --profile web add github:XCNXNXNX/dsh-portable-tavern
# Release tarball
dsh plugin --profile web add https://github.com/XCNXNXNX/dsh-portable-tavern/releases/download/v0.2.0/dsh-portable-tavern-0.2.0.tgz
After installation, access the plugin panel via the floating tag on the right or from the DSH settings page in the Web GUI.
Typical Usage¶
Create a Character from Scratch and Chat¶
- Open the Portable Tavern panel, fill in the seven modules in the RPG attribute panel, and generate a SillyTavern V2/V3 character card.
- Optional: Upload an avatar, write a world book, or adjust the global system prompt in settings.
- In the chat area, select a model (defaults to DSH configuration, or enter a custom OpenAI-compatible endpoint), and start chatting with the character.
- Data is automatically written to
localStorage; multiple characters can be stored in the character library for loading or deletion at any time.
Import an Existing Character Card¶
- Import a character card via JSON or PNG (with embedded chara data).
- After loading, chat histories and world books are restored along with the character (if previously saved).
- After modification, you can re-export as JSON or PNG, with the avatar included in the JSON.
Custom Model¶
In the model settings, fill in the OpenAI-compatible endpoint address, API Key, and model name, then click “Test Connection” to verify. The API Key is saved only in the current browser and will not be written to the DSH server configuration.
Applicable Scenarios and Notes¶
Who It’s For
- Users who want to edit and chat with SillyTavern character cards within DSH without switching to external tools.
- Creators who need to locally manage multiple characters, world books, and occasionally import/export JSON/PNG character cards.
- Scenarios where you want to quickly test different OpenAI-compatible models without altering the global DSH LLM configuration.
Notes
- The plugin runs with the permissions of the current DSH process. It is recommended to read the repository source code and the BSD-3-Clause license before installation.
- Character cards, chats, and world books are primarily stored in the browser’s
localStorage; clearing site data will result in the loss of local content. Please regularly export important character cards as JSON/PNG for backup. - The Release tarball installation example points to
v0.2.0; the repository’spackage.jsoncurrent version is0.3.0. Choose npm, GitHub, or a specific version tarball as needed. - SkillHub is a community directory and has no official affiliation with DeepSeek / High-Flyer; the plugin is published by community maintainer XCNXNXNX.
Conclusion¶
dsh-portable-tavern embeds a SillyTavern-style character card workflow into the DSH Web GUI: generation, world books, import/export, and chat are completed within the same panel without relying on unofficial SDKs. If you are already running agents in DSH and need a lightweight role-playing environment, you can install and try it from the directory page or GitHub.
- SkillHub Directory: https://www.skillhub.cn/plugins/XCNXNXNX/dsh-portable-tavern
- GitHub Repository: https://github.com/XCNXNXNX/dsh-portable-tavern