Introduction

The core advantage of DeepSeek Harness (DSH) lies in its plugin-based architecture. However, prompt management often lacks structured version control and composition capabilities. Existing practices usually rely on text editors, making it difficult to track change history or reuse snippets across different scenarios.

dsh-prompt-presets is a content-agnostic prompt configuration file editor, versioning compiler, and import/export framework. It does not provide story cards or a role-playing engine. Instead, it focuses on transforming prompt management from plain-text operations into structured configuration management, with support for version control and composition using JSON.

Plugin Overview

This is a standalone community project maintained by LiweiDonVee. It provides a mechanism for managing prompt configuration files in DSH: users can edit, group, and sort prompt snippets in a Web interface and save changes through version control. It also provides compiler interfaces, allowing the runtime to generate the final prompt content based on configuration files.

Core Features

  • Versioned prompt editing: supports saving and rolling back prompt configuration versions.
  • Composition: allows multiple prompt snippets to be combined for use.
  • SillyTavern JSON import/export: supports importing and exporting prompt data in SillyTavern format.
  • Configuration file editor: provides a visual Web interface for managing configuration files.
  • Compiler/API: provides compileForAgent and compileForRender interfaces for runtime calls to generate prompts.
  • HTTP API: provides a RESTful API based on loopback access for reading configurations, validation, and session management.

Installation and Enablement

This plugin depends on Node.js 24, npm, and DSH 0.1.7-rc.2.

  1. Clone the repository and install dependencies:
    git clone https://github.com/LiweiDonVee/dsh-prompt-presets.git
    cd dsh-prompt-presets
    npm ci
    npm run check
  1. Install the plugin into the DSH Web configuration file:
    npx --yes @deepseek-ai/dsh@0.1.7-rc.2 plugin --profile web add .
  1. Start the Web service:
    npx --yes @deepseek-ai/dsh@0.1.7-rc.2 web
  1. After installation, restart the DSH host. Open the printed authentication URL, then go to Settings → Prompt Presets. You can choose Create blank profile to create a blank configuration profile, or import an existing JSON file.

Usage

After installation, the data directory is located by default at $DSH_HOME/prompt-presets (i.e. ~/.dsh/prompt-presets).

Configuration File Management

In the Web interface, you can create a blank configuration profile or import a JSON file. The interface supports Chinese and English navigation, and you can add, delete, and modify prompt entries, adjust their order, and set groups or roles.

Runtime Integration

The plugin itself does not automatically replace DSH’s current system prompt. Your runtime code must actively call the provided compilation service.

  1. Define a prompt-manifest.json file specifying the configuration profile ID to use:
    {
      "schemaVersion": 1,
      "baseProfiles": [],
      "cardProfiles": [],
      "optionalProfiles": [],
      "defaultOverlay": { "enabledEntries": [], "disabledEntries": [] }
    }
  1. During runtime, call the compilation method with the absolute path to the configuration profile (manifestPath) and the session ID (sessionId):
    // 伪代码示意
    const result = ctx.promptPresets.compileForAgent(manifestPath, sessionId);
  1. Handle the returned result: the return value includes profileHash, narrativeContract, sections, diagnostics, and blocked. If the result is blocked, you must strictly comply (for example, refuse to generate content).

HTTP API

The plugin provides authenticated local API endpoints (/prompt-presets/api) and supports the following operations:

  • GET /catalog: retrieve the configuration profile catalog.
  • GET /profiles/:id: read a specified configuration profile.
  • PUT /profiles/:id: update a configuration profile.
  • POST /validate: validate a configuration profile.
  • Import/export routes and session effective overlay routes.

Notes and Limitations

  • No automatic system prompt replacement: the editor only manages configuration files and does not automatically modify the system prompt used by DSH. Runtime code must explicitly call the compilation interface.
  • Runtime environment requirements: the local API requires the user to be logged in to DSH and have loopback access. Remote host access is not supported.
  • Data retention: uninstalling the plugin stops the editor and service but retains user configuration profile data. Session logs are not migrated through this plugin.
  • No built-in content: the plugin does not bundle story cards, characters, writing presets, or sample prompt packs. The initial data directory is empty.
  • Compatibility: imported SillyTavern data is preserved when exported, but local scripts and extension data are not executed at runtime.

Conclusion

DSH Prompt Presets provides DeepSeek Harness with a foundational prompt engineering framework. If you are building an agent that requires version control and structured prompt management, this is a lightweight tool. You can refer to the GitHub repository for plugin details and source code.