dsh-personalize: DSH Web Native Personalization Plugin

Preface

DSH’s plugin architecture breaks extension capabilities into installable, registrable standalone units. For daily users of the DSH Web interface, the common need is not just single-answer capabilities, but how multiple conversations on the same machine can share the same set of settings: custom instructions, local long-term memory, and response tone — whether these need to be restated in every conversation.

dsh-personalize addresses this issue. It centralizes global custom instructions, local long-term memory, and response tone presets into local settings, applying them to all conversations on the machine.

Plugin Positioning

dsh-personalize is a DSH Web plugin maintained by Zephyr-vibe, licensed under MIT. It is used to uniformly maintain local personalization settings within the current DSH environment, reducing the need to repeatedly enter the same preferences in each conversation.

The plugin requires Node >= 20 to run. It only uses the official public services webServer, tools, and systemPrompt, without modifying the DSH core. DSH emphasizes plugin-based extensibility; the community directory is an independent site with no official affiliation to DeepSeek / 幻方.

Core Capabilities

Custom Instructions

Custom instructions are a user-written description injected into the system prompt of every conversation. They are suitable for placing long-term, stable preference descriptions.

Local Long-Term Memory

Local long-term memory supports two ways of adding entries:

  • Manual addition
  • Automatic collection by the agent

When the agent collects automatically, the following tools are available:

memory_create
memory_list
memory_delete

Memory entries are injected into the system prompt of every conversation and are persisted in {DSH_HOME}/personalize/. Deletion requires confirmation and will not be silently removed.

The memory limit is configurable, defaulting to 50, with a range of 1–1000.

Response Tone Presets

Response tone presets offer the following options:

  • Warm and considerate
  • Efficient and direct
  • Rigorous and professional
  • Witty and humorous
  • Custom

These presets are used to adjust the response style and are applied to conversations.

Interface and Entry Point

The plugin provides a bilingual interface (Chinese and English) that switches with the DSH language setting.

The plugin registers to the standard settings.section slot. After installation and restarting the Web interface, it will automatically appear in the settings.

Installation and Activation

Direct Installation

First, execute the following command to install from the tarball into the Web profile:

dsh plugin --profile web add https://codeload.github.com/Zephyr-vibe/dsh-personalize/tar.gz/refs/heads/main

If pnpm blocks build scripts, append --ignore-scripts at the end of the command:

dsh plugin --profile web add https://codeload.github.com/Zephyr-vibe/dsh-personalize/tar.gz/refs/heads/main --ignore-scripts

After installation, restart the Web interface to see the “Personalization” entry in “Settings.”

Let the Agent Install

You can also let the DSH agent handle the installation. Send the following in a conversation:

帮我把这个项目安装为插件:https://github.com/Zephyr-vibe/dsh-personalize

After installation is complete, restart the Web interface, then go to “Settings” to view the entry point.

File Locations

The plugin is zero-configuration and automatically resolves DSH_HOME. On first use, the following files are automatically created:

{DSH_HOME}/personalize/config.json
{DSH_HOME}/personalize/memory.json

config.json stores personalization settings, and memory.json stores local long-term memory.

Usage

Settings Entry

After restarting the Web interface, go to “Settings” and find the “Personalization” entry. Maintain custom instructions, memory entries, and response tone presets at this entry point.

Host API

The plugin provides a Host API:

/personalize/api/*

It is used for config and memory operations. This API is within the browser trust boundary and is restricted to loopback + same-origin access.

Agent Memory Tools

When automatic memory collection by the agent is needed, the following can be called:

memory_create
memory_list
memory_delete

These tools are used to create, view, and delete memory entries, respectively. Deletion requires confirmation.

Runtime and Data Considerations

During operation, the plugin maintains an in-memory mirror of memory.json. External direct edits to memory.json will not be read until the application restarts, and the plugin’s next write will overwrite external edits. After manual editing, restart the Web interface.

Write operations time out on the client after 15 seconds. A timed-out request may still execute on the server side; do not retry immediately — first check the result. memory.clear is idempotent.

If memory.json becomes corrupted, the plugin backs it up as:

memory.json.corrupt-<ts>.bak

Until the file is repaired, all writes are locked.

Applicable Scenarios

Suitable for users who want to uniformly maintain custom instructions, long-term memory, and response tone on their local DSH Web interface. Also suitable for having the agent retain a small amount of stable information in subsequent conversations, rather than manually restating it each time.

Since the plugin writes to local files and runs with the current dsh process permissions, review the source code and license before installation. The current documentation clearly states the license is MIT.

Conclusion

The value of dsh-personalize lies in turning local personalization into an installable DSH Web plugin: custom instructions, local memory, and response tone presets can all be applied to conversations, while data is stored locally under {DSH_HOME}/personalize/.

The verified documentation does not provide a directory page URL. The GitHub repository address is:

https://github.com/Zephyr-vibe/dsh-personalize
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye