SillyTavern-compatible roleplay with character cards, presets, world books, and swipe branches that restore their continuations alongside native DSH conversations.
Install
# from npm (prebuilt)
dsh plugin --profile web add pmp-dsh-tavern
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:Player-MINEPIG/dsh-tavern
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
Tavern 3.1.5 uses independent shared dsh-prompt-assembler 1.1.3. Install and enable Assembler before Tavern. Tavern carries no private Assembler package and starts no additional instance. See integration. Current versions support Standard only; Advanced remains frozen at DSH 0.2.0-rc.2.
dsh-memory-manager v1.0.0 is an optional viewing and management extension. Tavern does not depend on it. Without it, or after removing it, world books and MVU use source defaults; existing sessions and resources remain available.
Current source: prompt assembly · MVU · Prompt templates · Complete API surface.
A SillyTavern compatibility plugin that keeps DeepSeek Harness (DSH) authoritative over sessions and execution, with frontend and backend APIs for composing Tavern capabilities with native DSH features.
This README describes Tavern 3.1.5. Combined installation with the independent assembler, bounded MVU and prompt templates is in the integration guide; older full documentation remains at its Git tag.
Version 3.1.5 requires an independently installed Assembler shared by consumer plugins. Assembler 1.1.3 fixes first-turn greeting references in Standard assembly. Tavern fixes Windows desktop panel close-button overlap and fullscreen clearance. Existing V4 history and references need no migration.
Current Tavern source targets DSH 0.2.1-rc.2 / 0.2.1-rc.3, with independent assembler integration, scoped MVU, read-only prompt templates and RP rendering. Changelog · MIT License.
Before upgrading from 3.x or earlier, retain backups and stop the target Host. Install and enable independent Assembler 1.1.3 in the same profile, then remove the old Tavern package while retaining data and reinstall Tavern 3.1.5 to clear the formerly bundled copy. The default Assembler data directory stays unchanged. Follow the upgrade steps for custom storage and security settings previously forwarded to Assembler. The DSH range remains
>=0.2.1-rc.2 <0.2.2-0. Existing V4 sessions and references need no conversion. Earlier formats use the one-way upgrade guide. Older Hosts are unsupported.Tavern Trace shows each request's configuration, world-book activation, and prompt section content and sources. Third-party tools can read the same information through the read-only v3 API. See API/design.
Math is enabled by default with
$…$,$$…$$,\(...\)and\[...\], using modern browsers' MathML without an extra toggle or remote fonts. Escape literal delimiters or use code; complete HTML templates and interactive-card interiors do not auto-parse math. RP also supports avatars, configurable bubbles and optional restricted interactive cards. Card scripts default off. Supported MVU state and scoped Helper compatibility are documented in MVU; full Tavern Helper compatibility is not provided. See presentation capabilities.The default project README is the Chinese version. This English file has no screenshots.
This project maintains the frontend embedded in DSH Web and Desktop and will not build an additional standalone Web UI. Native navigation, composition input and session lifecycle remain owned by DSH; Tavern supplies RP presentation through public extensions. Third-party clients can still compose the HTTP APIs. This decision changes product scope and requires no data migration.
Compatibility range: >=0.2.1-rc.2 <0.2.2-0. DSH rc.2 and rc.3 are exercised; later 0.2.1 RCs and the final release are admitted by policy, not a claim of prior validation. Reassess 0.2.2, including its prereleases.
Design
pmp-dsh-tavern does not replace DSH with another UI, and it does not copy conversation history. It adds a testable, auditable, uninstallable Tavern compatibility layer on top of public DSH extension points and atomic APIs:
- Lingzhu / DSH native mode: keep native DSH sessions, sidebar, and plugin ecosystem.
- Mowan / RP mode: regroup the RP sidebar by character card and playthrough, and provide greeting, display regex, swipe, branch, rollback, import, and export.
- DSH remains authoritative: durable history, tools, permissions, and the final model request stay owned by DSH.
- Minimal change, maximum compatibility: reuse public DSH seams first; do not replace the native frontend or depend on private DOM.
- Original sessions stay readable after uninstall: the plugin stores resources, selections, playthrough pointers, display metadata, and bounded Trace metadata/official-history references. It does not forge, overwrite, or copy DSH history bodies.
The dual-mode design is the compatibility mechanism. Outside Mowan, the user still sees ordinary DSH. The plugin mounts its RP surface only after entering RP mode.
Security warning
Installing this plugin lets its code run in the DSH Host and the browser page. Install only from a trusted repository and commit. Review changes and back up plugin data before updating. The following controls reduce risk; they are not OS-level isolation or account authentication:
- Agent and tool risk: presets, character cards, world books, imported records, and user messages can contain prompt injection. A high-privilege Agent may still call approved terminal, file, network, browser, or other plugin capabilities when induced. Do not put secrets in the conversation. Keep DSH approval and sandboxing, and enable tools with least privilege.
- RP secure-mode boundary: RP mode adds read-only and high-risk tool limits on top of DSH permissions, and child agents inherit that overlay. It is not a VM, container, or system sandbox. It cannot constrain other local processes, and it cannot turn a malicious prompt into trusted content.
- Backend and API risk: v1/v2/v3 APIs target local loopback. Host, Origin, and Content-Type checks are not login authentication. A local malicious process can still reach them. Do not expose DSH Web or this plugin API to a LAN or the public internet. A reverse proxy must add its own TLS, authentication, and trusted Host configuration.
- Frontend rendering risk: model output is sanitized and automatic remote resources are blocked. Optional card scripts use a quota-limited interpreter and a narrow DOM bridge; expensive CSS/layout still poses denial-of-service risks. Display regex uses JavaScript
RegExp; catastrophic backtracking can freeze the page. Import and enable only templates and regex you trust. - Data and lifecycle risk: swipe, branch, and playthroughs create real DSH sessions and can increase disk use. revision/CAS, path checks, and atomic writes do not replace backups and do not turn several API calls into a cross-file transaction.
If behavior looks suspicious, stop the Agent, switch back to DSH native mode, and inspect the original session and tool records. Full threat model, implemented boundaries, and vulnerability reporting: Security policy. RP interception list: RP secure mode.
Quick Start: first RP turn from a character card
Promo video: Tavern 3.0.0 (see this README for current operating instructions).
0. Install
Use DSH 0.2.1-rc.2 / 0.2.1-rc.3, Node ^22.19.0 || >=24.0.0, and an initialized profile. In GUI Plugins → Add plugin, paste the Assembler 1.1.3 tarball attachment URL, install it, and enable it. Then install and enable Tavern 3.1.5. Restart the Host when the GUI requests it. A Release webpage is not an installation address.
For CLI installation, stop the target Host and install both components in this order:
dsh plugin --profile web add https://github.com/Player-MINEPIG/dsh-prompt-assembler/releases/download/v1.1.3/dsh-prompt-assembler-1.1.3.tgz
dsh plugin --profile web add https://github.com/Player-MINEPIG/dsh-tavern/releases/download/v3.1.5/pmp-dsh-tavern-3.1.5.tgz
Tavern requires Assembler ~1.1.3 and does not download or start it automatically. If Assembler is already installed independently, check its version and enabled state. Standard uses public DSH interfaces. Advanced remains frozen at Assembler 1.1.0 / DSH 0.2.0-rc.2. See integration.
Optional resource viewing and management is available through Memory Manager v1.0.0. Version 1.0.0 was validated on DSH 0.2.0-rc.2 and needs separate validation for this target; see integration for its capabilities and generic resource assembly requirements:
dsh plugin --profile web add github:Player-MINEPIG/dsh-memory-manager#v1.0.0
Restart DSH Web after install. Tavern stores character cards, presets, world books, settings, and bindings under <DSH_HOME>/pmp-dsh-tavern/ by default. Plain dsh plugin remove retains that directory but does not create a pre-removal snapshot; clone the repository and use its uninstaller when a snapshot is required. On the first upgrade from a version that still stores data inside the package, stop the target dsh web and use the project installer so pnpm cannot replace the old package before its data is preserved. The new Host copies that data to the external directory on first start and retains the old copy. Other profiles, a separate DSH_HOME, manual install, backup, and uninstall: Installation.
1. Import a character card
Left-click the DT orb, open Character card, and import a SillyTavern JSON or PNG card. Import creates a resource only. It does not forge a session or send a message.
2. Create a DSH workspace
Return to native DSH and create a workspace that will be used for RP. All playthrough sessions go into that one workspace so character chats do not scatter across ordinary work.
3. Enter the RP frontend and choose the workspace
Right-click the DT orb, or choose Switch to custom frontend mode in the menu. The first time you enter Mowan, the plugin requires an explicit choice from existing DSH workspaces. It does not enter RP content until write and read-back succeed.
4. Create a playthrough
In the RP sidebar, click + on the imported character card. The plugin saves an independent opening draft and a new Playthrough N without creating a DSH Session. The first accepted input later associates the real Session. Generated names follow the UI language; explicit renames remain unchanged.
5. Choose a greeting
An empty playthrough's opening dock shows the card greeting. Alternate greetings can be chosen with the left/right buttons. This is display and first-turn prompt reference only. It is never forged as an assistant reply that already happened.
6. Start chatting
Send the first user message from the opening draft composer; after first-input preparation and acceptance, later inputs use the native DSH composer. It appears immediately in the RP view. After that you can swipe, branch a new playthrough, roll back in the same playthrough, edit display text, and import/export.
Full operations and boundaries: English usage guide.
Feature map
| Area | Main capabilities | Details |
|---|---|---|
| Resources | ST presets, V1/V2/V3 JSON/PNG cards, standalone/embedded world books, user profiles, bindings, export | Usage |
| Request assembly | Assembler v1.1.3 strategies, source modules, standard delivery, legacy advanced configuration reads, previews and recorded requests | Request assembly · Integration |
| MVU variables | [initvar] initialization, restricted schemas, reply updates, branch-specific state, Trace inspection and scoped card reads/writes | MVU |
| Prompt templates | Restricted read-only EJS, source-variable dependencies and assembly modules | Prompt templates |
| RP frontend | Character/playthrough sidebar, greeting, Markdown/HTML/LaTeX rendering, display regex, swipe, branch, rollback, display-layer edit | Usage |
| Playthrough data | Authoritative DSH sessions, tree timeline, workspace catalog, first-turn read-only import injection, static HTML and ST JSONL export | API · Architecture |
| Security | RP permission overlay, same-origin/loopback API, workspace path jail, CAS, DOMPurify, content-free operation log | RP secure mode · Security policy |
| Debugging | Tavern Trace stores per-request section/provenance metadata and official-history references; details verify and read recoverable section bodies on demand, while source bodies are not stored | Trace API/design |
| Workspace diagnostics | DT → Diagnostics shows current RP workspace problems with recheck and copy actions; the sidebar summary is dismissible and affected playthroughs retain warning buttons | Usage |
| Third-party | v1 resource management, v2 RP primitives, v3 prompt assembly tracing and provenance; mode service, DSH slots/store, standalone clients | HTTP API · RP frontend integration |
See the feature gallery for annotated examples of message actions, swipe-linked continuations, native Agent capabilities, session-bound assets, ST-compatible resources, display regex, and native/RP views.
Important boundaries
- “Preset” means SillyTavern-style sampling and prompt ordering, not a DSH agent preset.
- Greeting does not enter the timeline and is not forged as DSH history. Imported records are injected only on the first real request as
untrustedread-only context. - Display regex affects Mowan rendering only. It does not rewrite the model request, DSH original messages, or the authoritative text used for export.
- MVU uses source-owned state instances, schema, CAS and scoped card bindings; optional interactive cards implement the restricted interface. Arbitrary Tavern Helper APIs and browser libraries remain unsupported.
- Mowan hides reasoning, tool context, and child-agent notices. Switch back to native DSH Chat for full runtime detail.
- There is no dynamic frontend loader that replaces all of Mowan from one config file. Full replacement requires a separate DSH plugin, a standalone web client, or a fork.
- The target DSH outer New session control has no public click-intercept seam for Tavern. Mowan does not overlay it with private DOM. Create playthroughs with the
+on a character card. - This plugin targets local loopback DSH Web. Do not expose it to a LAN or the public internet.
Documentation
- Usage: all user features, steps, and compatibility boundaries
- Installation: install options, refresh recovery, backup, uninstall
- HTTP API: v1 resource contract and stable v2 RP surface
- Request assembly: strategies, source modules, standard/advanced backends, previews and actual requests
- Assembler integration: v1.1.3 independent installation, shared services, optional Manager and removal
- MVU: initialization, schemas, update commands, state instances, branches and card permissions
- Prompt templates: restricted EJS and read-only variable dependencies
- Trace v3 API and design: historical assembly indexes, official references, and on-demand body reads
- RP frontend integration: mode lifecycle, delivery, action composition
- Architecture: minimal-change rule, module boundaries, public DSH seams
- Tavern Host and resource contract: session selection, resource resolution, permissions and Assembler integration
- DSH message flow: DSH, Tavern and Assembler request flow and both backend insertion points
- Prompt pipeline: ST format, macros, character fields, world-book coverage
- RP secure mode: what RP blocks and what it does not
- World-book design: World Info format, matching, projection contract
- Developer verification: test commands, target DSH environment and runtime checks
- Changelog
- Security policy
- Chinese documentation
Contributing
The project is MIT License. Issues, pull requests, compatibility reports, and design discussion are welcome.
You do not need to fork the whole repo to build on this framework:
- Resource tools can use the public v1 API.
- RP views or DSH client plugins can use v2, the
pmpDshTavernChromelifecycle, and public DSH slots/store. - Debugging and audit tools can read historical assemblies through v3. To observe or adjust the current assembly, use DSH's official
system-prompt/assemble; use officialllm/streamto observe the complete request. - A standalone web client can consume HTTP v2 only.
- Extend prompt sources, rendering or placement through the independent Assembler, or contribute changes to its repository; see integration.
- Fork Tavern when you need to change its resource model or bundled Mowan itself.
Give third-party UI its own slot ids, clean up only its own surfaces, and dispose fully when leaving play or uninstalling. The mode service owns lifecycle. It does not arbitrate one slot among several plugins.
References
Copyright © 2026 Zhu Bohan.
Links
More in this category
PC2005-cloud/dsh-pet#dsh-pet★ 3496
Desktop pet for the DSH Web UI on Windows, macOS and Linux: 106 transparent animations in the browser overlay or a transparent always-on-top desktop window, throw-and-bounce drag physics with squash and particle scoring, a work-status bubble driven by live session events, self-talk and chat with persistent memory, balance display, meme-image bubbles, multiple pets on screen, and drop-in custom animations and pet packs.
Nagi-ovo/dsh-ads★ 682
Parody ads in 2005-Chinese-web style: sidebar banners, in-chat feeds, corner popups, and a close button whose hit area is smaller than it looks. All fictional.
vlln/whale-girl★ 375
Desktop pet (QQ-pet style): floats in the corner, draggable, feedable, playable.
yyh-001/dsh-meme★ 295
Chat meme stickers: text-only send, mood auto-send, QQ/WeChat-style picker, auto-learn, custom packs.
a86582751/dsh-nexttavern★ 191
NextTavern is a long-form roleplay plugin for DeepSeek Harness 0.1.7-rc.2 Web, with character-card import and creation, worldlines, worldbooks, layered long-term memory, keyword/semantic/hybrid retrieval, character agents, and card or novel export. SillyTavern character-card import is supported; v0.2.9 fixes distribution and installation.
Sutera-Diffusus/dsh-whale-musume★ 156
A whale-girl companion for DeepSeek Harness with 45 achievements, daily quests and weekly check-ins, three mini-games, 92 artworks, 620 dialogue lines, a growth journal, weather and festival reactions, per-tool work poses, cross-device save export/import (JSON file or migration code), accessibility mode and an optional MiMo TTS bridge. Data stays in the host localStorage with no telemetry. Verified on DSH desktop 0.2.0-rc.2; compatible with 0.2.1-rc.1/rc.2 and legacy 0.1.x web.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.