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.

Fonttune — DSH Plugin for DeepSeek Harness
← Plugins

dsh-fonttune

Fonttune

Font plugin for the DeepSeek Harness Web GUI: the conversation gets its own font, size, line height and weight, the interface font and weight follow it, code keeps its own axis with ligature control, and whole setups save as presets.

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

npx -y @deepseek-ai/dsh plugin --profile web add dsh-fonttune@0.2.2
READMECompatibilityVersions

Compatibility and provenance

Fonttune is published as dsh-fonttune and currently resolves to version 0.2.2. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
web
Release source
npm
Registry updated
9/20/2026

Versions

0.2.2stable
9/20/2026
0.2.1stable
9/16/2026
0.2.0stable
9/16/2026
Show 4 more versionsCollapse versions
0.1.6stable
9/16/2026
0.1.5stable
9/15/2026
0.1.4stable
9/15/2026
0.1.2stable
9/14/2026

Related plugins

Loading related plugins…

Latest
0.2.2
DSH
*
HMR
Process restart
Tree shaking
Safe tree shaking not declared
Unpacked size
373.4 kB
Files
10
Surface
web
License
MIT
Source
npm
GitHub
★ 0
Weekly downloads
0
Last push
9/20/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 ui-customization.

Web App@deepseek-ai/dsh-web-appThe dsh browser-surface bundle: the web patch layer over dsh-base plus the runtime glue plugin (frontend dist serving, web-surface prompt, bash runtime variables, URL line)Experimental Agent Team Web Profile@deepseek-ai/dsh-experimental-agent-team-web-profileExperimental Web profile layer for Agent Teams Remote and UI pluginsRemote Web Ui@linxin666/dsh-remote-web-uiScan-to-pair remote access for the dsh web GUI that shares one official interface: a QR beside the settings button pairs phones and PCs into the same Web GUI (a portrait-touch adaptation layer for phones, full desktop on PCs) through one-time tokens and rClient Ui Git Graph@linxin666/dsh-client-ui-git-graphExternal dsh web GUI plugin: a blank-session git branch selector + Git graph, with real host-side git operations and guards, as a dsh profile bundle

README

dsh-fonttune

English | 中文

DeepSeek Harness(DSH)字体插件:对话(会话 Markdown 正文)拥有完整的排印控制——字体族、字号、行高、字重;界面(设置页、侧栏、工作区、按钮)提供字体与字重并默认跟随对话;代码独立成轴,另有连字与特性开关;整套配置可存为预设方案。配置入口是 设置 → 插件 → 插件配置 里的原生卡片(分区收起 + 摘要),改完即时生效。

功能

  • 三套排印:对话(会话 Markdown 正文、表格与标题)排在第一位、拥有全部轴;界面(设置页、侧栏、工作区与标题按钮)提供字体与字重、默认跟随对话(可关);代码独立成轴
  • 界面 / 对话 / 代码字体 —— 各自独立的字体回退列表,拉丁字体在前、中文字体在后;留空表示完全沿用 DSH 的字体栈
  • 字号偏移 —— 对话字号 -3 ~ +6 px,加在 DSH 自己的「对话字号」之上(官方数值是基准),段落、标题与行高一起跟随;代码字号独立成轴,-3 ~ +6 px。界面没有字号轴:经实测 DSH 的设置页、侧栏与工作区把字号写死在上游 CSS 里,唯一官方字号接口就是「对话字号」
  • 字重 —— 对话、界面与代码各自 300 ~ 600 任意整数(未设置即 400,读数就显示 400)。界面字重是一条把对话 Markdown 整棵子树排除在外的 body, body * 规则:真机实测(活页面计算样式)它把界面的文本元素全部改到目标字重、对话 markdown 里的元素一个都没动,所以改界面字重不会碰到对话(对话的粗体、标题粗细也原样保留)
  • 行高 —— 对话行高用倍率(100% ~ 160%);代码行高用加法偏移(-4 ~ +8 px)。界面没有行高轴(同字号的原因)
  • 代码连字 —— 三档开关(默认 / 开启 / 关闭,浏览器默认即开启,关闭可还原 =>、!= 这类连字),高级模式另有 font-feature-settings 特性值输入
  • 拒绝合成样式 —— 禁用浏览器为中文伪造的斜体与粗体(中文字体没有斜体字形,浏览器会硬掰)
  • 界面跟随对话开关 —— 界面分区顶部的「跟随对话设置」开关(默认开启):开启时界面沿用对话的字体与字重,界面自己的两个控件隐藏;关闭后界面用自己的字体与字重,与对话互不影响。字号与行高只属于对话(界面没有这两个接口)
  • 预设方案 —— 编辑模式正下方的下拉选择框:五个默认配置开箱即用,点开选一个即应用;选中方案后所有改动自动存入该方案,右侧「改名 / 导入 / 导出」管理方案(导出 JSON 分享、导入合并)
  • 西文 / 中文分栏(简单模式) —— 编辑模式开关:简单模式每套字体只给「西文」「中文」两个单选格,高级模式是完整的字体栈编辑器;两种模式共用同一条栈,来回切换不改动已排好的顺序
  • 选字体面板 —— 内置 等宽 / 中文(CJK)/ 拉丁 / 通用 四组预设,Chromium 下再补上「本机已安装」分组;搜索不到的名字可以直接「使用 xxx」新建
  • 拖拽排序 —— 已选字体是 chip 列表,可拖动调整回退顺序,同时保留前移 / 后移按钮(键盘与触屏可用)
  • 分区预览 —— 对话 / 界面 / 代码分区展开后在分区末尾各有一个预览框,只预览该分区的部分

兼容性

插件版本支持的 DSH 版本
0.2.2(最新)0.1.5-rc.2
0.2.10.1.5-rc.2
0.2.00.1.5-rc.2

engines.dsh 下限为 0.1.5-rc.2,兼容声明只列 0.1.5 线的最新版本:它包含这条线的全部修复,是同一大版本里最稳的一版,而同一大版本内的旧版本按语义化版本约定向上兼容。更早或更新的 DSH 未经验证,不作声明。市场条目同时声明这些兼容信息(package.json 的 engines.dsh、dsh.compatibility.dshReleases 与 peerDependencies),安装前可据此判断这一版需要的宿主版本。

安装

通过 DSH CLI 安装:

dsh plugin --profile web add dsh-fonttune

也可以从 GitHub 安装:

dsh plugin --profile web add github:LyaxZ/dsh-fonttune

或以本地目录安装:

dsh plugin --profile web add <插件目录路径>

安装后重启一次 DSH 并打开 Web UI;之后改设置不需要重启。

使用

  • 打开设置 —— 设置 → 插件 → 插件配置 → 展开「字体增强」卡片
  • 分区导航 —— 卡片展开后自上而下是:编辑模式、预设方案、对话 → 界面 → 代码三个收起的分区(对话在最前,因为它拥有全部轴),以及直接平铺在分区下面的「拒绝合成样式」;分区标题行右侧显示当前值摘要、箭头固定在最右,同一时刻最多展开一个分区
  • 换字体 —— 简单模式下点「西文/中文」格子选字体;高级模式下用「添加字体」与 chips 编辑器维护完整回退列表
  • 调整字号/字重/行高 —— 滑块就在各自分区里,拖动松手即生效(拖动时读数连同单位 % 一起显示);改过的字段标「已修改」并可单独重置,卡片底部有「全部重置」
  • 对话优先 —— 对话分区可以设置字体、字号、行高、字重四项;界面分区默认只有「跟随对话设置」开关(默认开启),关掉后才出现界面自己的字体与字重
  • 关掉跟随不会跳变 —— 关掉开关的那一刻,界面会把正在显示的字体与字重写成自己的值(跟随期间它本来就是这两项),所以画面零变化、滑块从当前值继续调;对话没设的那一项则清掉界面自己的字段、保持 DSH 默认。想回到 DSH 自己的粗细点该项的「重置」(读数会回到 400)
  • 界面字重不会碰到对话 —— 界面字重是唯一必须铺满整页的轴(DSH 把小标签的粗细写死在上游 CSS 的类规则里,窄规则够不到它),实现上是一条把对话 Markdown 整棵子树排除在外的规则,所以对话的段落、标题、粗体都不受影响
  • 字重读数 —— 未设置的读数显示 400(DSH 正文的就是 400,滑块也停在 400),不会出现「未设置」这类字眼
  • 预设方案 —— 编辑模式下方的下拉选择框(默认配置 1 ~ 5,框内右侧有与卡片一致的下拉箭头),点开选择即切换并自动保存后续改动;「改名」重命名当前方案,「导出」复制 JSON,「导入」粘贴合并。操作结果(如「已复制到剪贴板」)显示在下面那行的右侧,约 2.6 秒后自动淡出,不会顶动任何布局
  • 预览 —— 对话 / 界面 / 代码分区展开后,各自分区末尾有一个预览框,只渲染该分区的样式
  • 设置保存在 DSH 的设置文档里(settings.yaml),跟随配置走

开发

  • src/shared.cjs —— 纯函数核心:字体名消毒与解析、配置归一化、注入样式的生成
  • src/index.mjs —— 宿主半:注册 dsh-fonttune 设置命名空间(schemastery schema,含长度与取值范围校验),并通过 webserver/index-inject 把一个打过标记的 <style> 随首页下发,首帧即是设置里的字体;那个元素随后由浏览器半认领并接管(页面里只有这一份样式表,规则可增可删)
  • src/client.js —— 浏览器半:设置卡片、选字体面板、字体枚举与样式注入
  • build.mjs —— 零依赖构建:内联共享核心、套上 window.__ModuleLoader__.load({id, factory}) 外壳、拷贝宿主半,并校验客户端 bundle 只 require shell 预注入的模块
  • test/run.mjs —— 离线检查(自建 DOM / cordis / 设置面替身、真实 schemastery schema、CSS 生成与注入、消毒对抗用例、双语文案键一致性);test/render-card.mjs 用 mini React hooks 运行时真实渲染卡片组件(含强制展开态与强制状态,覆盖 0.1.0 那类发布阻断崩溃),并把每个控件的回调都点一遍(未接线的回调只有真点下去才会暴露);test/artifacts.mjs 校验 lib/ 与当前 src/ 逐字节一致(npm run verify 跑全部三套);test/weight-verify.mjs 在真实页面里量三条字重轴(界面 / 对话 / 代码)的独立性与「样式表只有一份、不刷新关掉跟随立即回落」;test/ 下另有几个无头浏览器走查脚本,以及市场条目的维护脚本 test/market-pr.mjs(status / update / refresh / reopen / open / about)与诊断脚本 test/market-inspect.mjs(PR 状态、评论、CI 与分支差异)
  • docs/ —— 0.2.0 的背景调研与功能规格(设计阶段的记录,含当时的取舍理由;与最终实现不同的地方以 README/CHANGELOG 为准,两份文件文首都有说明)。不在 npm files 清单内,不随包发布
  • 客户端模块能 require 的只有 shell 静态表里的模块(react、react/jsx-runtime、react-dom、@deepseek-ai/cordis、@deepseek-ai/dsh-client-* 等);dsh.client.inject 只是加载顺序声明,不是 require 许可
  • 改完源码要先构建再刷新:node build.mjs(或 npm run watch)把 src/ 生成到 lib/,浏览器加载的是 lib/,只改 src/client.js 不构建的话页面看到的还是旧包;npm test 只检查功能,node test/artifacts.mjs(在 npm run verify 里)专门校验 lib/ 与当前 src/ 逐字节一致。改宿主半(src/index.mjs)或 cordis.patch.yml 需重启 DSH

License

MIT © 2026 LyaxZ