DeepSeek Harness Plugin Hub

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

探索

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

社区

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

相关链接

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

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

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

dsh-output-styles

Output Styles

为 DeepSeek Harness 提供等同于 Claude Code outputStyles 的运行时输出样式切换

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-output-styles@0.6.16
README兼容性版本

兼容性与来源证明

Output Styles 以 dsh-output-styles 发布,当前版本为 0.6.16。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

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

版本

0.6.16stable
2026/9/12
0.6.15stable
2026/9/10
0.6.14stable
2026/9/9
查看其余 23 个版本收起版本
0.6.13stable
2026/9/9
0.6.12stable
2026/9/9
0.6.11stable
2026/9/9
0.6.10stable
2026/9/7
0.6.9stable
2026/9/7
0.6.8stable
2026/9/4
0.6.7stable
2026/9/4
0.6.6stable
2026/9/3
0.6.5stable
2026/9/2
0.6.4stable
2026/9/2
0.6.3stable
2026/9/1
0.6.2stable
2026/8/30
0.6.1stable
2026/8/27
0.6.0stable
2026/8/26
0.5.0stable
2026/8/23
0.4.3stable
2026/8/22
0.4.2stable
2026/8/21
0.4.1stable
2026/8/19
0.4.0stable
2026/8/16
0.3.2

相关插件

正在加载相关插件…

最新版
0.6.16
DSH
*
HMR
重启进程
Tree shaking
已声明 sideEffects: false
解包体积
425.9 kB
文件数
59
Surface
web
许可证
Apache-2.0
发布源
npm
GitHub
★ 7
周下载
433
安全扫描
✓ v0.6.16 扫描通过
最近提交
2026/9/19
查看源码 ↗项目主页 ↗
README Badge

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

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

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

认领这个 Plugin →
报告问题
stable
2026/8/15
0.3.1stable
2026/8/15
0.3.0stable
2026/8/15
0.2.0stable
2026/8/14

相关插件

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

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profile用于 Agent Teams Remote 和 UI 插件的实验性 Web 配置层Client Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Client Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包

README

🎨 dsh-output-styles

  • 1024 store channel: npm i -g dsh1024 once, then dsh1024 plugin --profile web add dsh-output-styles (counts toward the deepseek1024.com install ranking).

Claude Code outputStyles for DeepSeek Harness — switch the model's output style at runtime, per session, durably.

/style concise — and every reply from now on is terse. /style off — back to the project default.

Official repository. This is the only official repository of dsh-output-styles, maintained by PerryLink. Same-name repositories under other accounts are not affiliated.

English · 简体中文 · Español · Português · हिन्दी


Compatibility

SurfaceStatus
HarnessDeepSeek Harness dsh-v0.1.5-rc.2 (adapted 2026-09-09): the session envelope keeps its ignorable field for stored-log read compatibility only - Session.append still cannot stamp it, so audit-gate behavior is unchanged. Verified 2026-09-11 against the dsh-v0.1.5-rc.2 master checkout (full gate chain + profile install smoke).
Node`^22.19.0
PlatformsAll (host + web client)
ModelAny (system-prompt injection)

What you get

dsh-output-styles is the Claude Code outputStyles equivalent for DeepSeek Harness: a /style command that switches the model's output style at runtime, persisted per session, injected at every prompt assembly.

  • Style library — one Markdown file per style (styles/*.md); frontmatter for metadata, body = the model directive. Six built-ins ship in the box (concise, explanatory, formal, learning, proactive, step-by-step), including Claude Code-parity proactive and learning.
  • /style command — no argument lists styles (with descriptions) plus the current selection; /style <name> switches; /style off restores the project default.
  • Session-scoped persistence — the choice lives in the output_style storage domain, keyed by sessionId, and survives restarts.
  • System-prompt injection — a systemPrompt.section() contribution (order sectionOrder) injects the current session's style body at every assembly, truncated at a configurable budget.
  • Claude Code parity — keep-coding-instructions, force-for-plugin (force alias), outputStyles JSON compatibility, layered stylesDir directories, hot reload, and project-default fallback over the DSH settings seam.
  • Renderer registry (output.render.*) — ctx.outputRenderers lets any plugin register a pure presenter, applied through the output.render/before waterfall; built-in renderers concise and step-by-step.
  • Per-session/per-tool rules — rules: [{ match: { tool: 'bash' }, style: 'concise' }] name the renderer for matching requests; editable through the output-style-rules settings section.
  • /export — render the current session to Markdown or sanitized HTML through the render pipeline; --save <path> writes the sanitized document to that workspace path after user approval. Every render keeps the original text beside the rendered one.

Quick start

# 1. install the bundle into your profile
dsh plugin --profile web add "github:PerryLink/dsh-output-styles#main"

# or from npm (published releases)
dsh plugin --profile web add dsh-output-styles

# 2. restart and verify the row
dsh --profile web --dump-config | grep -A3 'id: output-styles'

Demo

You > /style
      output style off
      concise — Terse, direct answers — minimal prose, no preamble. (Daily coding work, tool-heavy sessions, or when prompt length matters.)
      explanatory — Educational answers with short "Insights" that teach as you work. (Learning a codebase, onboarding, …)
      formal — Formal, precise prose with complete sentences and defined terms. (Reports, documentation, release notes, …)
      learning — Collaborative learn-by-doing mode with short "Insights" and small hands-on steps for the user. (Pairing, onboarding, …)
      proactive — Execute immediately, assume reasonable defaults, and prefer action over planning. (Routine multi-step work, …)
      step-by-step — Numbered reasoning steps with explicit intermediate results. (Debugging, design decisions, …)

You > /style concise
      switched to concise

You > 请只用一句话介绍你自己。
AI  > 我是运行在 DeepSeek Harness 插件化平台上、基于 deepseek-v4-pro 模型的 AI 编码代理。

How it works

flowchart LR
    U[You type /style concise] --> C[command registry]
    C -->|command/run logged| L[(session log)]
    C -->|put {style, source}| D[(output_style domain)]
    D --> R[OutputStyleRuntime]
    R -->|body at every assembly| S[systemPrompt section order 90]
    S --> M[Model request]
    M -->|full system prompt| H[system/message logged]

Everything the model sees is reconstructable from the session log — no new session event type, no agent-loop changes. The style name comes from command/run, the exact injected text from system/message, and the provenance marker { kind: 'plugin', plugin: 'dsh-output-styles' } rides in the domain record. Styles apply to the main conversation only; subagent sessions keep their own prompts (matching Claude Code).

Install & uninstall

  • git channel (latest main): dsh plugin --profile web add "github:PerryLink/dsh-output-styles#main" — the prepare script builds with production dependencies only.
  • npm channel (published releases): dsh plugin --profile web add dsh-output-styles.
  • tarball channel: pnpm pack in this repo, then dsh plugin --profile web add ./dsh-output-styles-<version>.tgz.
  • uninstall: dsh plugin --profile web remove dsh-output-styles.

Configuration

All tunables are Schemastery Config fields (changeable from cordis.yml). Invalid values fail the load.

KeyDefaultMeaning
stylesDir[]Style-library directories, resolved against cwd; later entries override earlier ones. [] = the bundled styles/ only
maxStyleChars4000Style-body budget (≥ 1); longer bodies are truncated with a marker
defaultStyle''Style for sessions that never selected one (and no settings default exists); '' = no style
compatJsontrueLoad Claude Code outputStyles JSON entries (single objects or arrays)
sectionOrder90Order of the injected section (0 = persona, 100–199 = tool guidance)
truncationMarker"\n\n[style truncated]"Marker appended at the truncation point
includeBuiltinstrueInclude the package's bundled styles/ as the lowest-priority layer
watchStylestrueReload the library when a style file changes on disk
rules[]Per-session/per-tool render rules: [{ match: { tool?, contentType?, session? }, style, priority? }]
enableExporttrueRegister the /export command (Markdown/HTML session export, renderer-aware; --save writes with approval)
respectCoreOutputStylestrueWhen a core outputStyles service is detected, skip this plugin's prompt injection (keep hot-switch / rules / export)

Tools & surfaces

SurfaceKindNotes
/stylecommandList styles, switch, or restore the project default
/exportcommandRender the current session to Markdown or sanitized HTML; --save writes with approval
output_stylestorage domainSession-scoped style choice, keyed by sessionId
systemPrompt.section()contributionInjects the current style body at every assembly
output.render.*renderer registryctx.outputRenderers + the output.render/before waterfall
styleprojection{ options, currentValue } folded from settled commands
Web pickerclient entrydsh-output-styles/client decorates /style with a popup picker

Command reference

InputOutcome
/styleList the current selection + one line per style (name — description)
/style conciseSwitch (durable write), switched to concise
/style Diagrams firstMulti-word names are the whole remainder
/style offRestore the project default (settings default, then defaultStyle)
/style nopeerror: unknown output style "nope" (available: …)
/exportRender the current session to Markdown through the renderer pipeline
/export mdRender to Markdown (md is the shorthand for markdown)
/export htmlRender to sanitized HTML
/export --renderer=conciseRender with one renderer forced (rules bypassed)
/export md --save report.mdRender, then write the sanitized document to report.md after approval

Style library

One Markdown file per style; frontmatter for metadata, body = the model directive. name defaults to the file name and may contain spaces (Diagrams first).

FieldDefaultMeaning
namefile nameSwitch target; letters, digits, spaces, and hyphens (off is reserved)
description— (required)One sentence shown in listings and the picker
whenToUse—Optional guidance appended to listings
keep-coding-instructionsfalseKeep the harness prompt when true; replace it when false (Claude Code semantics)
force-for-pluginfalseApply unconditionally, overriding any session selection; force is an alias, at most one style may set it

With compatJson: true, Claude Code outputStyles JSON entries ({ name, description, prompt }) load beside Markdown styles; unparseable entries are skipped with a warning.

Renderer protocol

The output.render.* protocol turns presentation into an extension point. A renderer is a pure presenter — presenter(text, context) maps args to display data, never touches the DOM — matched by tool name and content type, ordered by priority.

  • Waterfall first: every render request passes through output.render/before ({ text, context }); listeners must call next().
  • Rules: rules: [{ match: { tool: 'bash' }, style: 'concise' }] names the renderer for matching requests; ties break by priority, then rule order.
  • Built-ins: concise (whitespace compaction + budget truncation) and step-by-step (consistent step numbering).
  • Auditability: every render result carries { original, rendered, rendererId, changed }; the rendered text is what surfaces, the original stays reconstructable from the session log.

Web picker

The dsh.client entry decorates the host /style command's bare invocation with a popup picker: an "off" row plus one row per library style (description · whenToUse), the active row marked. Picking submits /style <name> through the command Remote, so every switch keeps the host's durable command lifecycle. The picker follows the Web UI's shipped zh/en locale pair.

Differences from Claude Code

Claude Codedsh-output-styles
Style files.claude/output-styles at user/project/managed levelsstylesDir directories + bundled styles/, later directory wins
Custom stylesMarkdown, frontmatter name/description/keep-coding-instructions/force-for-pluginSame fields (force-for-plugin accepted verbatim, force as alias) + whenToUse
Legacy JSONoutputStyles array in settings.jsonLoaded verbatim (compatJson: true)
Taking effectAfter /clear or a new sessionImmediately — the system prompt re-assembles per request
SubagentsStyles do not applySame — subagent sessions keep their own prompts
Switching/config menu or outputStyle setting (the /output-style command was removed in v2.1.91)/style command + Web picker + settings output-style.style

Conflict check

Screened against the DSH ecosystem before development (2026-08 snapshot): no style/output-style repository under topic:dsh-plugin, no output-style category in the four major awesome lists, and no entry in the dsh-hub catalog. The closest neighbors — dsh-soul-md (persona) and dsh-claude-marketplace (output styles explicitly deferred to v0.2+) — are adjacent, not conflicting.

Permissions & data

  • Permissions: declares fs:read, fs:write, fs:watch, storage:read, storage:write, and settings:read in its workshop manifest.
  • Data: the style choice lives in the output_style storage domain (keyed by sessionId); no other state is persisted, no network requests.
  • Session log: the style name comes from command/run, the exact injected text from system/message; the provenance marker { kind: 'plugin', plugin: 'dsh-output-styles' } rides in the domain record.

Security boundaries

  • Public services only. Contributes systemPrompt, commands, storage, and settings; no engine / agent-loop / apiproxy / official-UI changes.
  • Model-visible ⟺ logged. Everything the model sees is reconstructable from the session log — no new session event type, no agent-loop changes.
  • Original always kept. Every render (and /export) keeps the original text beside the rendered one; sanitized HTML is used for HTML export.
  • Disk writes gated. /export --save writes only after the approval service grants it, and the written content passes through the sanitizeText pure function first; without an approval or fs service it writes nothing (fail-closed).

Known limitations

  • Core coexistence. If a first-party outputStyles capability lands, this plugin detects its outputStyles service and degrades to the incremental surface (hot-switch, rules, /export) while leaving prompt injection to the core — see docs/COEXISTENCE.md and the exported detectCoreOutputStyles / coexistenceReport functions.
  • Main conversation only. Styles apply to the main conversation; subagent sessions keep their own prompts (matching Claude Code).
  • Truncation. Style bodies longer than maxStyleChars are truncated with a marker.
  • Skipped style files. A bad style file is skipped with a warning and never breaks the profile.

Development

pnpm install
pnpm run typecheck   # both tsc projects
pnpm test            # vitest — 148 tests
pnpm run verify      # typecheck + tests + self-contained (the prepublishOnly gate)
pnpm run build       # lib/ artifacts (host + client bundles)
pnpm pack            # tarball for dsh plugin add

Releases: pushing a v* tag whose suffix matches the package.json version triggers the Publish workflow — full verification, then an npm publish with provenance.

Topics

deepseek-harness, dsh, dsh-plugin, output-style, output-styles, claude-code

Contributors

  • @PerryLink — author and maintainer: plugin architecture, style library, bundle install, Web picker, five-language docs, and CI/release tooling.

PerryLink DSH Plugin Family

This project is one of the 37 DeepSeek Harness plugins maintained by PerryLink. If this one helps you, the others likely will too:

PluginOne-liner
dsh-auto-reviewSecond-model auto-review on the approval chain, fail-closed by default
dsh-background-agentsDurable background child agents with a Web UI sidebar, messaging and interrupt
dsh-budgetCost governance for DeepSeek Harness: budgets, carbon, and latency in one panel.
dsh-checkpoint-rewindClaude Code /rewind-equivalent: snapshots, session forks, one-shot restore
dsh-claude-moveMigrate Claude Code sessions, memory, skills and CLAUDE.md into DSH
dsh-clickCross-platform native desktop control for DeepSeek Harness — Windows first.
dsh-composer-historyTerminal-style input history for the web composer: arrows, Ctrl+R search
dsh-data-qualityDataset quality checks and citation cross-checks (the optional numeric bridge consumed here)
dsh-defendPrompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness.
dsh-doublecheckEngineering-discipline guard: requirements grill, test gates, adversary review
dsh-drawUnified static-image generation routing for DeepSeek Harness.

Install from the DSH Desktop Market

All PerryLink plugins are browsable in the built-in DSH Desktop Market: Market → Sources → add source → paste https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → select it. Installation still goes through the Market's npm-identity verification and your confirmation.

License

Apache License 2.0 © 2026 dsh-output-styles contributors

dsh-fastRead-only performance diagnostics for DeepSeek Harness.
dsh-fund-researchDeterministic research reports for Chinese public mutual funds
dsh-githubGitHub PR/issues integration for DSH, every write gated by approval
dsh-industry-researchIndustry research orchestration that seals its deliverables through this plugin's ctx.researchReport.assemble
dsh-libraryLocal document knowledge base for DeepSeek Harness.
dsh-local-aiLocal-model (Ollama) integration for DeepSeek Harness.
dsh-lsp-actionsLSP diagnostics, formatting, completion, code actions and rename over language servers
dsh-maskPII masking middleware: anonymize at the model boundary, restore at the display layer
dsh-mcp-panelRead-only MCP runtime panel: /mcp command + Settings tab with status, tools and errors
dsh-mementoApproval-gated cross-session memory: ctx.memory seam + SQLite + memory tool
dsh-observeOpenTelemetry and Langfuse observability exporter for DeepSeek Harness.
dsh-permission-rulesClaude Code-style declarative allow/deny/ask permission rules with audit
dsh-personal-directivePersonal directive injector with top-bar toggle (framework edition)
dsh-plugin-guidePlugin-development knowledge base as an on-demand agent skill
dsh-reachMulti-channel approval/question bridge: WeChat/Telegram/Feishu, session console
dsh-research-reportVerifiable research-report engine: content-addressed evidence ledger and sealed versions
dsh-scoreMulti-dimensional quality scoring for DeepSeek Harness plugins.
dsh-session-pinPin sessions in the Web sidebar with durable ordering
dsh-session-syncCross-device session sync for DeepSeek Harness — a dedicated git mirror of your session store.
dsh-skill-pack-securitySecurity-audit skill pack: secret scan, dependency and supply-chain review
dsh-talkVoice-first session loop for DeepSeek Harness: talk to it, hear it answer.
dsh-test-driveIsolated install-and-smoke test drives for DeepSeek Harness plugins.
dsh-ticktickTickTick/Dida365 task bridge: session-header panel + 11 tools
dsh-translateVendor parameter translation and deterministic JSON repair for DeepSeek Harness.
dsh-wechatWeChat ↔ DSH bridge (Tencent iLink bot): text/image/file/voice, approvals in chat