DeepSeek Harness (DSH) is a plugin-based system. By default, the AI acts more as a conversationalist than as a gamemaster. dsh-diceframe fills this gap by adding dice, check resolution, world books, and character cards to DSH, so that an AI GM can run structured TRPG sessions instead of unstructured chit-chat.

Requirements

  1. DSH CLI (dsh) is installed.
  2. Node.js >= 22.

Installation

Add the plugin using the official installation command:

dsh plugin --profile <名字> add dsh-diceframe

Core Features

Dice and Checks

The plugin provides two core tools: roll_dice and resolve_check.

  1. roll_dice tool
    - Supports common dice formats: 3d6, d20, d100, 3d6+2.
    - Supports advanced rules: 2d20kh1 (advantage), 2d20kl1 (disadvantage), 4d6dl1.
    - Supports special mechanics: 1d6! (exploding dice).
    - Provides cryptographically secure random number generation and a per-dice breakdown.

  2. resolve_check tool
    - Supports modes: d100, d20, and sum.
    - Includes check outcomes: critical success, success, failure, critical failure, and check margin.

World Books and Character Cards

  • Supports world books in Markdown format and character cards in key-value format.
  • Supports injecting content into the system prompt to provide grounding for AI gamemastering.

DiceFrame Interoperability

The plugin supports direct import of DiceFrame ecosystem content without conversion.

  • Single file import: Supports a single world book JSON or character card JSON, with automatic path detection.
  • Content package import: Supports importing an entire content package directory containing plugin.json, with one-click full import (including worlds, characters, npc, items, spells, classes, rules).

Slash Commands and Session State

  • Slash commands:
  • /trpg: Start a session; the GM opens directly with the loaded world book’s “starting scene”.
  • /roll: Roll dice, executed directly without going through the model.
  • /check: Resolve a check, executed directly without going through the model.
  • /state: View the current table state.
  • Session state tracking: Records the world, player character cards, NPCs, scene, and initiative order via the table_state and table_update tools.

Save Interoperability

The plugin implements the transfer of key state between DiceFrame and DSH.

  • Import: The save_import tool can read DiceFrame state.json or a portable zip, loading the world, characters, and scene into the current session.
  • Export: The save_export tool exports the current session progress into a DiceFrame-compatible save format (state.json + chatlog.jsonl + zip).

Configuration

Configure six independent plugin entries in the profile’s cordis.patch.yml (dsh-diceframe/dice, gm, lore, commands, table, save).

General configuration example:

- id: dsh-diceframe-lore
  config:
    enabled: true
    world_book: |
      ## 迷雾王国
      大陆被永雾笼罩,只有灯塔之城仍有人烟。
    character_card: |
      姓名: 艾琳
      职业: 游侠

Notes

  • Pure ESM, no build steps, and zero runtime dependencies (Node core and its own modules only).
  • Does not bundle any third-party or IP/fan-made content packs.
  • Only transfers key state (world/characters/scene/history) for interoperability; it is not a full mechanic replica.

References

  • Plugin directory: https://www.skillhub.cn/plugins/diceframe/dsh-diceframe
  • GitHub repository: https://github.com/diceframe/dsh-diceframe