DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

User Preferences — DSH Plugin for DeepSeek Harness
← Plugins
U

dsh-user-preferences

User Preferences

DeepSeek Harness plugin: inject your standing preferences (global + per-project Markdown files, hot-reloaded) into every request. Avoids startup coupling to optional services and fails open on preference errors.

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:Alan-IFT/dsh-user-preferences#9b8a3e92ccda7ecaf3570f170e8cd5279e87b226
READMECompatibilityVersions

Compatibility and provenance

User Preferences is published as dsh-user-preferences and currently resolves to version 0.1.0. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
github
Registry updated
10/5/2026

Versions

0.1.0stable
10/5/2026

Related plugins

Loading related plugins…

Latest
0.1.0
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
Unavailable
Files
Unavailable
Surface
web
License
MIT
Source
github
GitHub
★ 0
Weekly downloads
0
Last push
10/5/2026
View source ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

Related plugins

More verified plugins in productivity-workflow.

Client Ui Task Board@linxin666/dsh-client-ui-task-boardHost-authoritative task board for the DSH Web GUI with real session execution, Host cron scheduling, and optional cross-platform idle-sleep protection; mounted without DSH source changes.Web All@linxin666/dsh-web-allDSH Web UI 全家桶聚合插件:一键安装全部功能插件(task-board / git-graph / pet / remote-web-ui / web-ui-settings / skin-center / community-plugins / compat shim)。compat 桥接层已并入本包(src/client),无需独立 compat npm 包。Deepseek Ipptdeepseek-ipptiPolloWork PPT Studio and its curated slide templates as a native DeepSeek Harness conversation view.Codex Ui@michengai/dsh-codex-uiDSH Codex UI — 为 DeepSeek Harness Web 提供 Codex 风格侧栏、工作区会话树、全局搜索和轮次导航 · A Codex-style sidebar, workspace session tree, global search, and turn navigation for DSH Web

README

dsh-user-preferences

Replacement for dsh-user-prompt. Injects your standing preferences into every model request. The host half avoids coupling to the settings service and handles optional-service and file errors without failing prompt assembly. A malformed package or missing hard dependency can still prevent activation.

Files (edit in any editor; changes apply on the next request, no restart)

FileScope
<dshHome>/preferences/global.mdall sessions (dshHome = $DSH_HOME or ~/.dsh)
<project>/.dsh/preferences.mdnearest to the session cwd; walks up, stops at the repo root (.git) or ~
<dshHome>/preferences/settings.json{ "enabled": true, "mode": "section" | "context" }, overrides plugin config live

Project text takes priority over global text when the budget (maxChars, default 20000) is exceeded. <!-- html comments --> are stripped, so you can leave notes to yourself.

Modes

  • section (default): merged into the system prompt (highest authority); {{...}} stays literal.
  • context: separate user-role snapshot; every {{ is defused so the renderer cannot throw.

Startup resilience

  • Only systemPrompt is a hard dependency; commands / connection are attached lazily via ctx.inject.
  • It does not use the settings service; invalid settings-file values fall back at runtime.
  • Prompt registrations and optional attachments are guarded, so an individual registration failure is logged instead of escaping apply().
  • Providers never throw: bad JSON, unreadable or oversized files, a directory in place of a file, a hostile agent shape all degrade to "inject nothing" plus one deduplicated log line.
  • Transient read errors fall back to the last good content.

Commands

/preferences shows the status. /preferences path prints the global file path.

Install (desktop profile, local development)

  1. Back up the profile's package.json, pnpm-lock.yaml, pnpm-workspace.yaml and cordis.patch.yml and copy the old prompt to <dshHome>/preferences/global.md.
  2. From the desktop profile directory, use the profile's pnpm runtime to add link:D:/Programs/dsh-user-preferences; include dsh-user-preferences in dsh.profile.bundles and remove dsh-user-prompt from both dependencies and bundles. Remove its user-prompt row from cordis.patch.yml without changing unrelated rows.
  3. Reload the profile (or restart DSH if its HMR watcher is unavailable). Verify that the effective bundle composition contains user-preferences and not user-prompt, then confirm the Plugins → User preferences card loads and saves, and prompt assembly contains the migrated text. The generated cordis.yml can remain unchanged after a live HMR reconciliation; its timestamp alone does not prove whether the running Host reloaded.

The link: spec uses the local source directory. Keep that directory intact while installed. Revert the backed-up profile files and reinstall its dependencies to roll back; do not overwrite the migrated global preferences file.

Development

node --test test/core.test.mjs test/client.test.mjs test/rpc.test.mjs
node test/host-integration.mjs  # requires extracted host packages in .tmp/host