DeepSeek Harness Hub
← 返回列表

PerryLink/dsh-output-styles

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
✓ 可直接安装

🎨 dsh-output-styles

自动检查通过:npm 包已发布且 engines 声明满足基线(声明 Node ^22.19.0 || >=24.0.0);该结论来自程序自动检查,未经人工实机验证。 · 最近上游提交 2026/9/12 · 已提供中文文档

DeepSeek Harness 的 Claude Code outputStyles——会话级、持久化、运行时可切换的模型输出风格(/style 命令、output_style 存储域、systemPrompt 注入)

综合分
34.3
GitHub 分
34.3
用户评分
★ Stars
7
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add dsh-output-styles
npm 包 dsh-output-styles 已校验归属本仓库,走 npm 安装最省事
数据截至 2026/9/17(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查✓ 自动检查通过

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包dsh-output-styles @ 0.6.16
Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
dsh CLI 依赖未声明 dsh 版本约束
入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 05:21:07

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-storage@deepseek-ai/dsh-storage-domain@deepseek-ai/dsh-storage-json@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-agent@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-attachment@deepseek-ai/dsh-brand@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-commands
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

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).
Gitee

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.

License
DSH plugin
dsh-doctor
Node
CI
Version
npm version
npm downloads

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

兼容性

| 层面 | 状态 |
|---|---|
| Harness | DeepSeek Harness dsh-v0.1.5-rc.2(适配于 2026-09-09):会话信封保留其可忽略字段,仅用于存储日志的读取兼容性——Session.append 仍无法写入该字段,因此审计门禁行为保持不变。已于 2026-09-11 针对 dsh-v0.1.5-rc.2 master 检出进行验证(完整门禁链 + profile 安装冒烟测试)。 |
| Node | ^22.19.0 || >=24.0.0 |
| 平台 | 全部(宿主端 + Web 客户端) |
| 模型 | 任意(系统提示注入) |

你将获得

dsh-output-styles 是 DeepSeek Harness 中 Claude Code outputStyles 的等价实现:一个 /style 命令,可在运行时切换模型的输出风格,按会话持久化,并在每次提示组装时注入。

- 风格库 —— 每种风格一个 Markdown 文件(styles/.md);frontmatter 用于元数据,正文 = 模型指令。内置六种风格(concise、explanatory、formal、learning、proactive、step-by-step),其中包括与 Claude Code 对等的 proactive 和 learning。
- /style 命令 — 无参数时列出所有样式(含描述)以及当前选择;/style  切换样式;/style off 恢复项目默认值。
- 会话级持久化 — 该选择保存在 output_style 存储域中,以 sessionId 为键,并在重启后依然保留。
- 系统提示注入 — 一个 systemPrompt.section() 贡献项(顺序为 sectionOrder)在每次组装时注入当前会话的样式正文,并按可配置的预算进行截断。
- Claude Code 对等性 — keep-coding-instructions、force-for-plugin(force 别名)、outputStyles JSON 兼容性、分层的 stylesDir 目录、热重载,以及基于 DSH 设置接缝的项目默认回退。
- 渲染器注册表(output.render.) — ctx.outputRenderers 允许任何插件注册一个纯展示器,并通过 output.render/before 瀑布流应用;内置渲染器有 concise 和 step-by-step。
- 按会话/按工具规则 — rules: [{ match: { tool: 'bash' }, style: 'concise' }] 为匹配的请求指定渲染器;可通过 output-style-rules 设置区进行编辑。
- /export — 通过渲染管线将当前会话渲染为 Markdown 或经过清理的 HTML;--save  在用户批准后将清理后的文档写入该工作区路径。每次渲染都会在渲染文本旁保留原始文本。

快速开始

1. 将 bundle 安装到你的 profile 中
dsh plugin --profile web add "github:PerryLink/dsh-output-styles#main"

或从 npm 安装(已发布的版本)
dsh plugin --profile web add dsh-output-styles

2. 重启并验证该行
dsh --profile web --dump-config | grep -A3 'id: output-styles'

演示

You > /style
output style off
concise — 简洁、直接的答案 — 极简行文,无开场白。(日常编码工作、工具密集型会话,或提示长度很重要时。)
explanatory — 带有简短“Insights”的教育性答案,在你工作时进行讲解。(学习代码库、入职引导,……)
formal — 正式、精确的行文,使用完整句子和明确定义的术语。(报告、文档、发布说明,……)
learning — 协作式边做边学模式,带有简短“Insights”和面向用户的小型动手步骤。(结对、入职引导,……)
proactive — 立即执行,假定合理的默认值,优先行动而非规划。(常规多步骤工作,……)
step-by-step — 带明确中间结果的编号推理步骤。(调试、设计决策,……)

You > /style concise
switched to concise

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

工作原理

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 -->|完整系统提示词| H[system/message 已记录]

模型看到的一切都可以从会话日志中重建——无需新的会话事件类型,也无需改动 agent 循环。样式名称来自 command/run,注入的确切文本来自 system/message,而来源标记 { kind: 'plugin', plugin: 'dsh-output-styles' } 则随领域记录一同传递。样式仅应用于主对话;子代理会话保留各自的提示词(与 Claude Code 一致)。

安装与卸载

- git 渠道(最新的 main):dsh plugin --profile web add "github:PerryLink/dsh-output-styles#main" —— prepare 脚本仅使用生产依赖进行构建。
- npm 渠道(已发布的版本):dsh plugin --profile web add dsh-output-styles。
- tarball 渠道:在本仓库中运行 pnpm pack,然后执行 dsh plugin --profile web add ./dsh-output-styles-.tgz。
- 卸载:dsh plugin --profile web remove dsh-output-styles。

配置

所有可调项均为 Schemastery Config 字段(可从 cordis.yml 修改)。无效值会导致加载失败。

| 键 | 默认值 | 含义 |
|---|---|---|
| stylesDir | [] | 样式库目录,相对于 cwd 解析;后面的条目会覆盖前面的条目。[] = 仅使用内置的 styles/ |
| maxStyleChars | 4000 | 样式正文预算(≥ 1);更长的正文会被截断并附加标记 |
| defaultStyle | '' | 用于从未选择过样式的会话(且不存在设置默认值)的样式;'' = 无样式 |
| compatJson | true | 加载 Claude Code 的 outputStyles JSON 条目(单个对象或数组) |
| sectionOrder | 90 | 注入部分的顺序(0 = 人设,100–199 = 工具指导) |
| truncationMarker | "\n\n[style truncated]" | 在截断点追加的标记 |
| includeBuiltins | true | 将包内置的 styles/ 作为最低优先级层包含进来 |
| watchStyles | true | 当磁盘上的样式文件发生变化时重新加载样式库 |
| rules | [] | 按会话/按工具的渲染规则:[{ match: { tool?, contentType?, session? }, style, priority? }] |
| enableExport | true | 注册 /export 命令(Markdown/HTML 会话导出,感知渲染器;--save 经批准后写入) |
| respectCoreOutputStyles | true | 当检测到核心 outputStyles 服务时,跳过此插件的提示词注入(保留热切换 / 规则 / 导出) |

工具与界面

| 界面 | 类型 | 说明 |
|---|---|---|
| /style | 命令 | 列出样式、切换样式,或恢复项目默认值 |
| /export | 命令 | 将当前会话渲染为 Markdown 或经过清理的 HTML;--save 经批准后写入 |
| output_style | 存储域 | 会话级样式选择,以 sessionId 为键 |
| systemPrompt.section() | 贡献项 | 在每次组装时注入当前样式正文 |
| output.render. | 渲染器注册表 | ctx.outputRenderers + output.render/before 瀑布流 |
| style | 投影 | { options, currentValue } 由已确定的命令折叠而成 |
| Web 选择器 | 客户端入口 | dsh-output-styles/client 用弹出式选择器装饰 /style |

命令参考

| 输入 | 结果 |
|---|---|
| /style | 列出当前选择 + 每种样式一行(名称 — 描述) |
| /style concise | 切换(持久写入),switched to concise |
| /style Diagrams first | 多词名称即为整个剩余部分 |
| /style off | 恢复项目默认值(先取设置默认值,再取 defaultStyle) |
| /style nope | error: unknown output style "nope" (available: …) |
| /export | 通过渲染器管线将当前会话渲染为 Markdown |
| /export md | 渲染为 Markdown(md 是 markdown 的简写) |
| /export html | 渲染为经过清理的 HTML |
| /export --renderer=concise | 强制使用一个渲染器进行渲染(绕过规则) |
| /export md --save report.md | 渲染,然后在批准后将清理后的文档写入 report.md |

样式库

每种样式一个 Markdown 文件;frontmatter 用于元数据,正文 = 模型指令。name 默认为文件名,且可包含空格(Diagrams first)。

| 字段 | 默认值 | 含义 |
|---|---|---|
| name | 文件名 | 切换目标;字母、数字、空格和连字符(off 为保留字) |
| description | —(必填) | 在列表和选择器中显示的一句话 |
| whenToUse | — | 可选指导,附加到列表中 |
| keep-coding-instructions | false | 为 true 时保留 harness 提示;为 false 时替换它(Claude Code 语义) |
| force-for-plugin | false | 无条件应用,覆盖任何会话选择;force 是别名,最多只能有一个样式设置它 |

当 compatJson: true 时,Claude Code 的 outputStyles JSON 条目({ name, description, prompt })会与 Markdown 样式一起加载;无法解析的条目会被跳过并发出警告。

渲染器协议

output.render. 协议将呈现转变为扩展点。渲染器是纯呈现器——presenter(text, context) 将参数映射为显示数据,绝不接触 DOM——按工具名称和内容类型匹配,并按优先级排序。

- 瀑布流优先:每个渲染请求都会经过 output.render/before({ text, context });监听器必须调用 next()。
- 规则:rules: [{ match: { tool: 'bash' }, style: 'concise' }] 为匹配的请求指定渲染器;平局按 priority 打破,然后按规则顺序。
- 内置:concise(空白压缩 + 预算截断)和 step-by-step(一致的步骤编号)。
- 可审计性:每个渲染结果都带有 { original, rendered, rendererId, changed };呈现出来的是渲染后的文本,原始文本仍可从会话日志中重建。

Web 选择器
dsh.client 条目通过弹出选择器装饰宿主 /style 命令的裸调用:一个“off”行,加上每个库样式一行(description · whenToUse),当前激活行会被标记。选择后会通过命令 Remote 提交 /style ,因此每次切换都保留宿主的持久命令生命周期。该选择器遵循 Web UI 已发布的 zh/en 语言对。

与 Claude Code 的差异

| | Claude Code | dsh-output-styles |
|---|---|---|
| 样式文件 | 用户/项目/托管级别的 .claude/output-styles | stylesDir 目录 + 内置 styles/,靠后的目录优先 |
| 自定义样式 | Markdown,frontmatter name/description/keep-coding-instructions/force-for-plugin | 相同字段(force-for-plugin 原样接受,force 作为别名)+ whenToUse |
| 旧版 JSON | settings.json 中的 outputStyles 数组 | 原样加载(compatJson: true) |
| 生效时机 | 在 /clear 或新会话之后 | 立即生效——系统提示按请求重新组装 |
| 子代理 | 样式不适用 | 相同——子代理会话保留自己的提示 |
| 切换方式 | /config 菜单或 outputStyle 设置(/output-style 命令已在 v2.1.91 中移除) | /style 命令 + Web 选择器 + 设置 output-style.style |

冲突检查

开发前已对照 DSH 生态进行筛查(2026-08 快照):topic:dsh-plugin 下没有 style/output-style 仓库,四大 awesome 列表中没有 output-style 类别,dsh-hub 目录中也没有条目。最接近的邻居——dsh-soul-md(人格)和 dsh-claude-marketplace(输出样式明确推迟到 v0.2+)——是相邻而非冲突。

权限与数据

- 权限:在其 workshop 清单中声明 fs:read、fs:write、fs:watch、storage:read、storage:write 和 settings:read。
- 数据:样式选择存放在 output_style 存储域中(以 sessionId 为键);不持久化其他状态,不发起网络请求。
- 会话日志:样式名称来自 command/run,确切注入的文本来自 system/message;来源标记 { kind: 'plugin', plugin: 'dsh-output-styles' } 随域记录一同保存。

安全边界

- 仅使用公共服务。 贡献 systemPrompt、命令、存储和设置;不修改 engine / agent-loop / apiproxy / 官方 UI。
- 模型可见 ⟺ 已记录。 模型看到的一切都可从会话日志重建——没有新的会话事件类型,没有 agent-loop 变更。
- 始终保留原文。 每次渲染(以及 /export)都会在渲染文本旁保留原文;HTML 导出使用经过清理的 HTML。
- 磁盘写入受控。 /export --save 仅在审批服务授权后才写入,且写入内容会先经过 sanitizeText 纯函数处理;没有审批或 fs 服务时它不会写入任何内容(故障关闭)。

已知限制

- 核心共存。 如果第一方 outputStyles 能力落地,本插件会检测其 outputStyles 服务,并降级为增量表面(热切换、规则、/export),同时将提示注入留给核心——参见 docs/COEXISTENCE.md 以及导出的 detectCoreOutputStyles / coexistenceReport 函数。
- 仅限主对话。 样式应用于主对话;子代理会话保留自己的提示(与 Claude Code 一致)。
- 截断。 样式正文超过 maxStyleChars 时会被截断并带有标记。
- 跳过的样式文件。 损坏的样式文件会被跳过并给出警告,绝不会破坏配置文件。

开发

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

发布:推送一个后缀与 package.json 版本匹配的 v* 标签会触发 Publish 工作流——完整验证,然后进行带来源信息的 npm 发布。

主题

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

贡献者

- @PerryLink — 作者兼维护者:插件架构、样式库、捆绑安装、Web 选择器、五语言文档以及 CI/发布工具。

PerryLink DSH 插件家族

本项目是由 PerryLink 维护的 40 个 DeepSeek Harness 插件之一。如果这个对你有帮助,其他的很可能也会:

| 插件 | 一句话简介 |
|---|---|
| dsh-auto-review | 审批链上的第二模型自动审查,默认故障关闭 | |
| dsh-background-agents | 持久后台子代理,带 Web UI 侧边栏、消息传递和中断 | |
| dsh-budget | DeepSeek Harness 的成本治理:预算、碳排和延迟集于一个面板。 | |
| dsh-checkpoint-rewind | 相当于 Claude Code /rewind:快照、会话分叉、一次性恢复 | |
| dsh-claude-move | 将 Claude Code 会话、记忆、技能和 CLAUDE.md 迁移到 DSH | |
| dsh-click | DeepSeek Harness 的跨平台原生桌面控制——Windows 优先。 | |
| dsh-composer-history | 面向 Web 编辑器的终端风格输入历史:方向键、Ctrl+R 搜索 | |
| dsh-data-quality | 数据集质量检查与引用交叉核对(此处消费的可选数值桥接) | |
| dsh-defend | 面向 DeepSeek Harness 的提示注入、越狱与密钥泄露防御。 | |
| dsh-doublecheck | 工程纪律守卫:需求拷问、测试门禁、对抗式审查 | |
| dsh-draw | 面向 DeepSeek Harness 的统一静态图像生成路由。 | |
| dsh-fast | 面向 DeepSeek Harness 的只读性能诊断。 | |
| dsh-fund-research | 面向中国公募基金的确定性研究报告 | |
| dsh-github | 面向 DSH 的 GitHub PR/issue 集成,每次写入均需审批 | |
| dsh-industry-research | 行业研究编排,通过本插件的 ctx.researchReport.assemble 封存其交付物 | |
| dsh-library | 面向 DeepSeek Harness 的本地文档知识库。 | |
| dsh-local-ai | 面向 DeepSeek Harness 的本地模型(Ollama)集成。 | |
| dsh-lsp-actions | 基于语言服务器的 LSP 诊断、格式化、补全、代码操作与重命名 | |
| dsh-mask | PII 脱敏中间件:在模型边界匿名化,在展示层还原 | |
| dsh-mcp-panel | 只读 MCP 运行时面板:/mcp 命令 + 设置标签页,含状态、工具与错误 | |
| dsh-memento | 需审批的跨会话记忆:ctx.memory 接缝 + SQLite + memory 工具 | |
| dsh-observe | 面向 DeepSeek Harness 的 OpenTelemetry 与 Langfuse 可观测性导出器。 | |
| dsh-permission-rules | Claude Code 风格的声明式 allow/deny/ask 权限规则,带审计 | |
| dsh-personal-directive | 带顶栏开关的个人指令注入器(框架版) | |
| dsh-plugin-guide | 作为按需智能体技能的插件开发知识库 | |
| dsh-plugin-doctor | 面向 DSH 插件的零依赖静态 + 沙箱冒烟检测器 | |
| dsh-reach | 多通道审批/提问桥接:微信/Telegram/飞书,会话控制台 |
| dsh-research-report | 可验证的研究报告引擎:内容寻址的证据账本与密封版本 | |
| dsh-score | 面向 DeepSeek Harness 插件的多维度质量评分。 | |
| dsh-session-pin | 在 Web 侧边栏中固定会话,并保持持久排序 | |
| dsh-session-sync | DeepSeek Harness 的跨设备会话同步——你的会话存储的专用 git 镜像。 | |
| dsh-skill-pack-security | 安全审计技能包:密钥扫描、依赖与供应链审查 | |
| dsh-talk | DeepSeek Harness 的语音优先会话循环:对它说话,听它回答。 | |
| dsh-test-drive | 面向 DeepSeek Harness 插件的隔离式安装与冒烟测试试驾。 | |
| dsh-ticktick | TickTick/滴答清单任务桥接:会话头部面板 + 11 个工具 | |
| dsh-translate | 面向 DeepSeek Harness 的供应商参数转换与确定性 JSON 修复。 | |
| dsh-wechat | 微信 ↔ DSH 桥接(腾讯 iLink 机器人):文本/图片/文件/语音,在聊天中审批 | |
| dsh-autotier | 自动的强/廉价模型层级路由,带确定性风险防护和 /tier 命令 | |
| dsh-catalog | PerryLink 系列的 DSH Desktop Market 标准目录源 | |
| dsh-cert-mcp | 只读 MCP 服务器,暴露认证注册表:评级、快照和五维证据 | |
| dsh-kit | 一条命令即可安装核心系列的新手入门包 | |
| dsh-plugin-certification | 社区认证注册表,带可复现检查的评级和徽章 | |
| dsh-plugin-kit | PerryLink DSH 插件共享的零运行时依赖工具包 | |
| dsh-plugin-portal | 零依赖静态门户,将整个插件系列渲染为一个页面 | |
| dsh-plugin-upgrade-015 | 合并的 0.1.3-alpha.1 → 0.1.5-rc.1 升级通道卡片,外加一个零依赖接缝扫描器 | |
| dsh-team-rooms | 跨会话团队房间:共享消息总线、任务看板和时间线 | |

从 DSH Desktop Market 安装

所有 PerryLink 插件均可在内置的 DSH Desktop Market 中浏览:Market → Sources → add source → paste https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → select it。安装仍需通过 Market 的 npm 身份验证和你的确认。

许可证

Apache License 2.0 © 2026 dsh-output-styles contributors

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群