DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

System Prompt Editor — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
S

dsh-system-prompt-editor

System Prompt Editor

编辑注入每个新会话系统提示词中的文本块

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:n0pe-sled/system-prompt-editor#9e4ff88d7e064e738d3fdf1490ecebef378d3f87
README兼容性版本

兼容性与来源证明

System Prompt Editor 以 dsh-system-prompt-editor 发布,当前版本为 0.1.0。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/14

版本

0.1.0stable
2026/9/14

相关插件

正在加载相关插件…

最新版
0.1.0
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
未声明
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/13
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

DSCODE@toddzheng024/dscode-bundle完整的 DeepSeek 编码代理,支持持久化 shell、Ultra 协作和自动权限审查。Plugindsh-pluginDeepSeek Harness 社区插件市场,遵循官方插件规范——无需离开应用即可浏览、搜索并安装 9000+ 个由人工精选的社区插件。· DeepSeek Harness 社区插件市场(遵循官方开发规范):9000+ 人工精选社区插件,每日更新。Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话

README

dsh-system-prompt-editor

A dsh plugin that edits the system prompt of every new session on this machine from the Settings page. Every stable section of the assembled prompt is editable — the harness identity, the source-checkout line, the web-surface orientation, the persona, the file-reference note, the tool-guidance prose band, the deliverables note, and the custom tail — plus third-party sections discovered through a preview.

FieldBandEffect when non-empty
Harness identityorder −100Replaces the fixed identity opener.
Source checkoutorder −99Replaces the harness source-checkout line.
Web surfaceorder −98Replaces the web-surface orientation section.
Personaorder 0Replaces the deployment persona section.
File-reference noteorder 99Replaces the note about mentioning created/modified files.
Tool guidanceorders 100–199Replaces the per-tool guidance prose sections with one section.
Deliverables noteorder 190Replaces the response-format note about mentioning primary outputs.
Custom system prompt textorder 200Appended verbatim after the persona and tool guidance.

All overrides are evaluated/applied at every assembly, so a save takes effect on the very next request. No restart needed.

Blue-banded sections in the preview — Plan mode policy, Code-mode rule, and Code SDK guidance — are owned by DSH state or code-mode plugins and are shown read-only ("Managed by DSH"): they are functions of agent state, and overriding them would fight their owning plugins.

The three actions (per field card)

ActionBehavior
SavePersists the draft into the system-prompt-editor settings namespace. Confirms with "Saved", or reports when the write did not land (host-side refusal / revision conflict) and keeps the draft so nothing is lost.
Preview system promptShows the entire assembled prompt as the model would see it — every section, with the current drafts applied — annotated per band, with DSH-managed sections marked. {{model}}/{{provider}} resolve from the real default-model selection; references with no scope-less value (like {{cwd}}) render literally instead of erroring. Third-party sections seen in the preview become editable cards (generic per-section overrides).
Load current system promptFetches that section's current effective text with a fresh host-side assembly (no drafts) and loads it into the editor — the stored override when one exists, otherwise the deployment default — so the textarea holds what the model actually reads today, ready to edit and save. Saving the loaded default stores it as a fixed override; clearing back to empty restores the default.

While the settings scope is loading, the actions are disabled; in a remote (non-loopback) browser the page shows a note that settings are process-local and stays inert. Empty stored values leave the deployment defaults untouched, so clearing a field restores the original prompt without the plugin ever knowing what it was.

Install

From the directory that contains system-prompt-editor/:

dsh plugin --profile web add ./system-prompt-editor

(First use of dsh plugin initializes the profile with @deepseek-ai/dsh-base.) The bundle layer is appended because the manifest declares dsh.bundle; the same patch row also puts the package on the web client roster (dsh.client.platform: "web"), so the Settings page appears without extra wiring. If dsh is not on your PATH, run the same command as pnpm dsh ... from a dsh source checkout, or node <dsh-install>/bin.js ....

The registry serves lib/client.js, not sources — rebuild and restart the host after changing either half (the host half loads at boot):

pnpm build
# restart the web GUI: the host half of a running instance keeps its boot-time code

How it works

  • Storage — the system-prompt-editor namespace of the settings document, machine-global like every dsh setting. Under the shipped file provider this is $DSH_HOME/settings.yaml (section system-prompt-editor: with text:, persona:, toolGuidance:, and a sections: map keyed by section name, e.g. harness:identity: "..."). Saved text survives restarts and is shared by every profile on the machine.
  • Section catalog — src/shared/catalog.ts pins the editable/read-only section names, canonical orders, labels, and warnings of the dsh release this build targets; both halves bundle it. The UI renders one card per curated entry; the host uses it for band chips and for inserting a section that is absent from a given assembly at its canonical position.
  • Custom text contribution — the plugin registers one section (user:system-prompt-editor) at configurable order (default 200: after the deployment persona at 0 and tool guidance at 100–199). Empty text yields an empty section, which assembly drops — no custom text costs zero tokens. {{name}} variable references (e.g. {{cwd}}, {{model}}, {{provider}}) resolve at request time like any other section.
  • Overrides — a system-prompt/assemble waterfall listener (src/shared/overrides.ts, shared with the preview) replaces the deployment:persona text (order 0), collapses the tool prose band (orders 100–199) into one user:tool-guidance section at order 150, and applies every non-empty sections[name] entry — replacing the assembled section of that name in place, or inserting it at its catalog order when absent (per-agent sections like the file-reference note, which register scoped, are replaced in real sessions and only appear as insertions in the scope-less preview). Tool schemas are never touched; empty stored values leave the defaults alone.
  • Preview endpoint — a runtime-registered Typert invocation (systemPromptEditorPreview/preview) assembles the full prompt host-side (stored values flow through the waterfall), applies the drafts, and renders leniently ({{model}}/{{provider}} come from the real default-model selection; any other unresolved reference stays literal — a stock web persona references {{model}}/{{cwd}}, and {{cwd}} is only knowable per session), returning { rendered, sections, effective }. The client mounts the same descriptor and unwraps the . The preview assembles without a specific agent, so per-agent presets may differ (noted in the UI caption); per-agent sections absent from a scope-less assembly are shown as inserts in their canonical band. The per-tool guidance sections register per agent too — the waterfall listener snapshots them from every real assembly, and the preview replays that snapshot in-band, which is also what the tool-guidance card's Load fills when nothing is stored.

Caveats

  • Model-visible ⟺ logged: edits are model-visible input; the session log already records request/header, so the runtime-cached provider-prefix reuse is invalidated from the first changed token — inherent to the feature.
  • Machine-critical sections have warnings: overriding harness:identity, harness:source, or app:web-surface removes orientation the harness depends on; the UI marks those cards accordingly, as it does for the file-reference note (which is what makes changed-file links clickable).
  • Version pinning: section names/orders are internal dsh contracts, pinned to dsh 0.1.1-rc.2 (see src/shared/catalog.ts); bump the pin and review the catalog when upgrading the harness. Newer dsh split the persona into prefix/suffix sections — the catalog recognizes those names for the persona band but does not add overrides for them.

Verify

dsh --profile web --dump-config     # shows a "# == dsh-system-prompt-editor" layer
node tests/smoke.mjs                # host-half smoke check (needs `pnpm build` first)
node tests/integration-real.mjs     # real providers (dsh-system-prompt + dsh-settings-file in a temp dir)

Then open the web GUI → Settings → System Prompt: edit, Save, check $DSH_HOME/settings.yaml (the sections: map gains your keys), start a fresh session and ask the model about its system prompt, or export the session log and inspect the model-visible messages. Load current system prompt must round-trip per field; clearing a field must restore the deployment default.

Development

pnpm install          # devDependencies (cordis, schemastery, client type packages, tsdown, typescript, react)
pnpm typecheck        # tsc --noEmit
pnpm build            # tsdown: lib/index.js (node half) + lib/client.js (browser half)
node tests/smoke.mjs  # host-half smoke check against stubbed services

prepare also runs tsdown, so a git install builds itself (pnpm ≥ 10 asks you to allowlist the build script in the profile's pnpm-workspace.yaml).

RemoteResult
  • Config — order: 200 in the plugin row config (profile cordis.patch.yml or a --patch overlay) moves the custom section; the schema default is 200.