中国传统色,做成 DeepSeek Harness 主题包。49 个锚点色 × 明暗两套 = 98…
44.6/100
综合分
25
GitHub 星标
305
npm 周下载
—/5
用户评分
数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-theme-pluginnpm 源 · dsh-theme-plugin 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · market
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 47 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-theme-plugin @ 0.3.3
✓Node 引擎要求 >=20 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 11:48:35
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 15 处,展示前 15 条)
- 写入本地文件scripts/build-syntax-preview.mjs:367
mkdirSync(new URL('../output/', import.meta.url), { recursive: true }); - 写入本地文件scripts/build-syntax-preview.mjs:369
writeFileSync(out, html); - 读取本地文件scripts/check-contrast.mjs:40
const preview = existsSync(previewPath) ? JSON.parse(readFileSync(previewPath, 'utf8')) : undefined; - 读取本地文件scripts/check-contrast.mjs:40
const preview = existsSync(previewPath) ? JSON.parse(readFileSync(previewPath, 'utf8')) : undefined; - 读取本地文件scripts/check-readme.mjs:19
const en = readFileSync('README.md', 'utf8'); - 读取本地文件scripts/check-readme.mjs:20
const zh = readFileSync('README.zh-CN.md', 'utf8'); - 执行外部命令固定命令scripts/check-readme.mjs:49
const chk = execFileSync('node', ['scripts/check-contrast.mjs'], { encoding: 'utf8' }); - 读取本地文件scripts/check-readme.mjs:54
const testFiles = readdirSync('test').filter(name => name.endsWith('.test.ts')); - 读取本地文件scripts/check-readme.mjs:56
n + (readFileSync(`test/${name}`, 'utf8').match(/^test /gm) || []).length, 0); - 读取本地文件scripts/check-readme.mjs:104
const kb = p => Math.round(statSync(p).size / 1024); - 读取本地文件scripts/generate-themes.mjs:60
const repoRoot = CANDIDATES.find(root => existsSync(root + PROBE)); - 读取本地文件scripts/generate-themes.mjs:71
const source = readFileSync(repoRoot + p, 'utf8'); - 写入本地文件scripts/generate-themes.mjs:1368
writeFileSync(outDir + 'src/themes.generated.js', - 写入本地文件scripts/generate-themes.mjs:1370
mkdirSync(outDir + 'preview', { recursive: true }); - 写入本地文件scripts/generate-themes.mjs:1371
writeFileSync(outDir + 'preview/themes.json', JSON.stringify(themes, null, 2) + '\n');
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-theme给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
6 张 · 点击查看大图功能亮点
- 中国传统色主题
- 明暗两套配色
- 49个锚点色
中国传统色 DeepSeek Harness 主题包。
README
由 DeepSeek 最新模型翻译生成dsh-theme-plugin
中国传统色,做成 DeepSeek Harness 主题包。49 个锚点色 × 明暗两套 = 98 个主题,每个主题都写满整套 token 词表(98 个 token:89 个 --dsw-,加上 9 个 --shiki-token- 语法槽位),并在全部 3136 条对比度断言上通过 WCAG AA。其中 12 个锚点色被标为精选短名单。
📖 中文文档
竹青 · light(素绢) | 朱红 · dark(熟宣)群青 · light(雪青) | 藤黄 · dark(赭纸) One anchor per paper family, same conversation in each. The most saturated patch on screen is always the color you picked.
安装
npx -y @deepseek-ai/dsh plugin --profile web add dsh-theme-plugin@latest
npx -y @deepseek-ai/dsh --profile web # boot → open http://127.0.0.1:3080/
这条命令从 npm 拉取预构建包——不用 clone,也不用构建。
展开完整文档(README 剩余 1 节)
dsh-theme-plugin 中国传统色,做成 DeepSeek Harness 主题包。49 个锚点色 × 明暗两套 = 98 个主题,每个主题都写满整套 token 词表(98 个 token:89 个 --dsw-,加上 9 个 --shiki-token- 语法槽位),并在全部 3136 条对比度断言上通过 WCAG AA。其中 12 个锚点色被标为精选短名单。 📖 中文文档 竹青 · light(素绢) | 朱红 · dark(熟宣)群青 · light(雪青) | 藤黄 · dark(赭纸) One anchor per paper family, same conversation in each. The most saturated patch on screen is always the color you picked. 安装 npx -y @deepseek-ai/dsh plugin --profile web add dsh-theme-plugin@latest npx -y @deepseek-ai/dsh --profile web # boot → open http://127.0.0.1:3080/ 这条命令从 npm 拉取预构建包——不用 clone,也不用构建。首次启动时会创建 web 配置档,位置在 ~/.dsh/profiles/web。 - 验证 —— 浏览器控制台会打印 registered 98/98 themes (49 light / 49 dark),dsh --profile web --dump-config 里会出现一行 theme-zhongguo。 - 更新 —— 再跑一遍同样的 add 命令。 - 卸载 —— dsh plugin --profile web remove dsh-theme-plugin 用法 打开 Settings → Traditional Colors,选一个主题,立即生效。主题也支持深链: http://127.0.0.1:3080/#theme=zhuqing-light # 竹青 light http://127.0.0.1:3080/#theme=qunqing-dark # 群青 dark 改 hash 就能实时切换主题。深链的优先级高于你记住的选择。记住的选择存在 localStorage 里,不在 settings.yaml 里,所以不会跟着你跨设备同步。 四种找主题的方式 浏览 —— 打开时显示当前分支的全部 49 个锚点,按纸系分组。每行的标签就是主题真实的纸、帘与焦点,列表本身即预览。 按工作心境 —— 六个标签从左到右读作一天:晨起 morning → 天亮 dawn。选中 凌晨 夜航,你会得到八个暗而静的主题,无论它们是什么颜色。 搜索 —— 匹配中文名、拼音、印章名与心境。输入 lv 就能找到全部十二种绿,不用切换键盘。 仅精选 —— 十二个精选,覆盖全部四种纸与全部六种心境。当 49 太多时用它;面板由主题包着色,所以暗色分支长这样。 面板只引用 --dsw- token,所以它会随你的选择变色,也顺带预览你即将选中的东西。 设计:纸 · 帘 · 印 中国画不从颜色开始。它先备纸,再罩染,最后落款。这些主题就按这个顺序构建,三个字对应三层。 纸 Paper —— 约占屏幕 60%。底色不是「传统色,调亮一点」,而是另一种材质。四种纸系 —— 素绢 raw silk、熟宣 sized xuan、雪青 violet-tinted silk、赭纸 ochre paper —— 各自带着刻意拉开的彩度(OKLab 分别约为 0.010 / 0.019 / 0.015 / 0.024),所以四种纸靠肉眼就能分辨,而不只是看数据。浅色底坐在 L ≈ 0.963–0.971:是偏白而非纯白,这才给上方抬起的表面留出空间。 帘 Veil —— 约占 25%。侧边栏与消息气泡就是锚点色本身,不被纸稀释,与纸的对比度保持在 1.25–1.55 之间,让罩染既不会消失,也不会硬成一块板。你靠气泡认出自己身处哪种传统色,而不是靠背景。 印 Seal —— 重点是锚点本身。 主按钮和发送按钮,都是锚点压深后的颜色。这推翻了配色包原本的法则:原本主按钮填充的是锚点一个精心挑选的相对色,色相中位数偏离 109°——所以选了竹青,递到你手上的却是一个绯红的行动号召。那个相对色依然会被挑选,依然按主题记录为 sealName / sealRel / sealWhy,只是现在仅作为当前导航的高亮色出现:是签名,不是重点。选择器会显示挑选理由(「茜红 · 策展印 · 冷暖对冲」)。 墨 Ink —— 文字、分隔线和次级表面沿着同一条墨色阶梯下行,把纸色压深。基础样式表里每一级 nb-XX 都变成同亮度的染色中性色,而悬停偏移、层级步进、边框和交互透明度全部照抄:只换色相,不动关系。阶梯的两个端点是刻意的例外——它们在这里设定,而不是继承,因为基础样式表里的是极值。浅色与深色现在共用同一套形状:正文 16.7–17.5,次级 7.4–8.0,三级 4.6–5.5。 语法 Syntax —— 代码块才是程序员的视线真正停留的地方,所以高亮器也要配色。harness 通过 shiki 的 css-variables 主题高亮(九个 --shiki-token- 槽位),每个主题都会填满它们:五个彩色槽位(keyword / string / constant / function / parameter)沿用程序员早已熟悉的色相惯例,但每种颜色都是从 742 色名册里挑出的真实具名颜色;当锚点的色相落在某个槽位的窗口内,锚点本身就来扮演那个槽位——竹青主题里字符串是竹青,群青主题里常量是群青。注释和标点是墨色,不是彩色:三级和次级墨色步进会针对代码块底色重新校验。九个槽位在底色上都过 4.5,五个彩色槽位两两之间色相相差 ≥ 15°。 关卡 Gates —— AA 是底线,优雅活在天花板,所以大多数规则都是双向的。pnpm check 会从产出的 token 重新推导上面每一条断言:3136 行对比度,外加面纱彩度、唯一重点(两个重点 token 必须都是锚点自己的色相,且是屏幕上饱和度最高的色块)、语法槽位色相间隔、锚点上舞台规则、层级方向、token 全覆盖等不变量。它不相信生成器关于自己的任何说法。 六个层级 Six tiers —— 49 个颜色名,对不熟悉传统色的人来说并不是一组可用的选项,所以每个主题还带一个「我今天想怎么干活」的层级。它是推导出来的:唯一的输入是锚点的 OKLab 亮度、彩度和色相。 L < 0.50 ─┬─ C < 0.13 → 夜航 Night (dark and quiet) └─ C ≥ 0.13 → 爆肝 Crunch (dark and fierce) C < 0.115 ──────────→ 禅定 Zen (pale and quiet) warm (h<120 or h≥315) ─┬─ L < 0.71 → 攻坚 Push (warm and fierce) └─ L ≥ 0.71 → 收工 Ship (warm and bright) cool ───────────────→ 心流 Flow (cool and saturated) 选色器按程序员的一天来排序:黎明 Flow → 午后 Zen → 傍晚 Push → 午夜 Crunch → 凌晨 Night → 破晓 Ship → 又是 Flow。锚点落在 心流 11 · 禅定 12 · 攻坚 8 · 爆肝 4 · 夜航 8 · 收工 6。 早先的设计给五种情绪各配一个代表主题,结果选色器里大多数行都挂着空标签——看起来像数据缺失,而不是克制。作为划分方式,这套词汇表始终只有六个词,而每个主题都恰好属于一个层级,所以标签没有空洞,还能兼作筛选器。六就是这个数据的自然粒度:在任意位置再切一刀,都会割出只有 1–3 个主题的碎片,这时标签只是在点名几个主题,而不是给它们分类。层级的名称是一种编辑主张,但那是六条主张,不是 49 条;pnpm check 用七个哨兵钉住全部四刀(群青→Flow、碧螺春绿→Zen、朱红→Push、覆盆子红→Crunch、满天星紫→Night、黛紫→Night、雄黄→Ship),所以改动树结构会触发门禁,而重命名层级不会。 精选 —— 49 个锚点里有十二个带 curated 标记,只能通过 Curated only 进入。亮色和暗色变体都必须不含生成器降级。这份名单分三趟推导:编辑种子 → 每层一个(每一层都必须在收窄后存活,否则它的 chip 就没东西可给)→ 在 OKLab 里做最远点采样,最多取十二个。每次补选都挑离已选集合最远的锚点,所以覆盖全部六层并不牺牲分布广度。 各纸系锚点数:素绢 12 · 熟宣 14 · 雪青 17 · 赭纸 6。同一模式内,最接近的两个主题在四个签名维度(ground、brand、bubble、focus)上仍相差 ΔE 0.018,而底线是 0.015。 主题名册 49 个锚点 × 亮/暗 = 98 个主题 —— 点击展开 ⭐ 标出选色器优先展示的十二个精选锚点。显示名为 <name>·亮 / <name>·暗,例如 竹青·暗。纸系:素绢 raw silk、熟宣 sized xuan paper、雪青 violet-tinted silk、赭纸 ochre paper。印章列就是上文说的精选相对色——一个签名标记,不是按钮颜色。 | Color | 中文 | Anchor | Paper | Seal | Theme ids (light / dark) | | Zhu Qing | 竹青 | #00A86B | 素绢 | 茜红 | zhuqing-light / zhuqing-dark | | Zhu Hong | 朱红 ⭐ | #ED5126 | 熟宣 | 赭石 | zhuhong-light / zhuhong-dark | | Qun Qing | 群青 | #1772B4 | 雪青 | 枫叶红 | qunqing-light / qunqing-dark | | Teng Huang | 藤黄 | #FFD111 | 赭纸 | 瑶碧 | tenghuang-light / tenghuang-dark | | Jiang Zi | 绛紫 ⭐ | #8E354A | 熟宣 | 洋葱紫 | jiangzi-light / jiangzi-dark | | Zi Yun | 紫云 | #A020F0 | 雪青 | 蜻蜓红 | ziyun-light / ziyun-dark | | Mei Hong Se | 玫红色 | #FF007F | 熟宣 | 品红 | meihongse-light / meihongse-dark | | Dan Shu Hong | 淡曙红 | #EE2746 | 熟宣 | 殷红 | danshuhong-light / danshuhong-dark | | Gan Qing | 绀青 | #4F84FF | 雪青 | 落霞 | ganqing-light / ganqing-dark | | Mei Gui Zi | 玫瑰紫 | #BA2F7B | 熟宣 | 高粱红 | meiguizi-light / meiguizi-dark | | Ying Wu Lü | 鹦鹉绿 | #5BAE23 | 素绢 | 猩红 | yingwulv-light / yingwulv-dark | | Bo Luo Hong | 菠萝红 | #FC7930 | 熟宣 | 芙蓉红 | boluohong-light / boluohong-dark | | Fu Pen Zi Hong | 覆盆子红 ⭐ | #AC1F18 | 熟宣 | 苋菜红 | fupenzihong-light / fupenzihong-dark | | Cang Bi | 苍碧 | #2A52BE | 雪青 | 猩红 | cangbi-light / cangbi-dark | | Xiong Huang | 雄黄 ⭐ | #FF9900 | 赭纸 | 绀青 | xionghuang-light / xionghuang-dark | | Hu Po Huang | 琥珀黄 | #FEBA07 | 赭纸 | 绀青 | hupohuang-light / hupohuang-dark | | Wei Zi | 魏紫 | #7E1671 | 雪青 | 魏紫·深 | weizi-light / weizi-dark | | Gan Lan Huang Lü | 橄榄黄绿 | #BEC936 | 素绢 | 魏紫 | ganlanhuanglv-light / ganlanhuanglv-dark | | Huo Zhuan Hong | 火砖红 | #CD6227 | 熟宣 | 淡可可棕 | huozhuanhong-light / huozhuanhong-dark | | Xiang Ye Hong | 香叶红 | #F07C82 | 熟宣 | 鹅冠红 | xiangyehong-light / xiangyehong-dark | | Yan Ying Zi | 烟萦紫 | #8A4B9C | 雪青 | 烟萦紫·深 | yanyingzi-light / yanyingzi-dark | | Mei Ge | 韎韐 | #A5441B | 熟宣 | 蟹蝥红 | meige-light / meige-dark | | Li Shou | 綟绶 | #6B8E23 | 素绢 | 暗紫苑红 | lishou-light / lishou-dark | | Zi Teng Luo | 紫藤萝 ⭐ | #9B8AE8 | 雪青 | 淡罂粟红 | zitengluo-light / zitengluo-dark | | Han Xiu Lü | 汉绣绿 ⭐ | #2E7D32 | 素绢 | 绛紫 | hanxiulv-light / hanxiulv-dark | | An Zi Yuan Hong | 暗紫苑红 | #82202B | 熟宣 | 殷红 | anziyuanhong-light / anziyuanhong-dark | | Xin Lü | 新绿 ⭐ | #6CC788 | 素绢 | 茜裙 | xinlv-light / xinlv-dark | | Ling Meng Hong | 菱锰红 ⭐ | #D276A3 | 熟宣 | 苋菜紫 | lingmenghong-light / lingmenghong-dark | | Man Tian Xing Zi | 满天星紫 ⭐ | #2E317C | 雪青 | 栗紫 | mantianxingzi-light / mantianxingzi-dark | | Kong Que Lan | 孔雀蓝 | #0EB0C9 | 雪青 | 胭脂红 | kongquelan-light / kongquelan-dark | | Bao Shi Lan | 宝石蓝 ⭐ | #2486B9 | 雪青 | 朱墙 | baoshilan-light / baoshilan-dark | | Mei Die Lü | 美蝶绿 | #12AA9C | 素绢 | 枫叶红 | meidielv-light / meidielv-dark | | Bian Dou Zi | 扁豆紫 | #A35C8F | 雪青 | 扁豆紫·深 | biandouzi-light / biandouzi-dark | | Qian Zi Teng Luo | 浅紫藤萝 ⭐ | #D1B3FF | 雪青 | 杏子 | qianzitengluo-light / qianzitengluo-dark | | Qing Fan Lü | 青矾绿 | #2C9678 | 素绢 | 汉绣红 | qingfanlv-light / qingfanlv-dark | | Bi Luo Chun Lü | 碧螺春绿 | #867018 | 赭纸 | 苍碧 | biluochunlv-light / biluochunlv-dark | | Gan Lan Shi Lü | 橄榄石绿 | #B2CF87 | 素绢 | 酢酱草红 | ganlanshilv-light / ganlanshilv-dark | | Fen Tuan Hua Hong | 粉团花红 | #EC9BAD | 熟宣 | 锦葵红 | fentuanhuahong-light / fentuanhuahong-dark | | He Ye Lü | 荷叶绿 | #1A6840 | 素绢 | 栗紫 | heyelv-light / heyelv-dark | | Shi Lü | 石绿 | #57C3C2 | 素绢 | 银红 | shilv-light / shilv-dark | | Zha Ye Zong | 柞叶棕 | #692A1B | 熟宣 | 栗棕 | zhayezong-light / zhayezong-dark | | Chang Chun Hua Lan | 长春花蓝 | #7EC0EE | 雪青 | 香叶红 | changchunhualan-light / changchunhualan-dark | | Shan Geng Zi | 山梗紫 | #61649F | 雪青 | 满江红 | shangengzi-light / shangengzi-dark | | Yan Lan | 鷃蓝 | #144A74 | 雪青 | 枣红 | yanlan-light / yanlan-dark | | Fen Lü | 粉绿 | #83CBAC | 素绢 | 梅红 | fenlv-light / fenlv-dark | | Yu Qin Lan | 玉鈫蓝 | #126E82 | 雪青 | 赭石 | yuqinlan-light / yuqinlan-dark | | Pi Bian | 皮弁 | #8B5D33 | 赭纸 | 石青 | pibian-light / pibian-dark | | Gan Lan Lü | 橄榄绿 ⭐ | #5E5314 | 赭纸 | 满天星紫 | ganlanlv-light / ganlanlv-dark | | Dai Zi | 黛紫 | #5D3A6F | 雪青 | 黛紫·深 | daizi-light / daizi-dark | 这份名单由生成器输出,不靠手工维护。 开发 环境要求:Node.js 20+ 和 pnpm 10.15(通过 packageManager 声明)。测试跑在 tsx 上,所以同一条命令在 Node 20 及更新版本上都能用。 git clone https://github.com/nevertoday/dsh-theme-plugin cd dsh-theme-plugin pnpm install && pnpm build # builds lib/client.js, the browser bundle dsh plugin --profile web add -w . # register this directory dsh --profile web - -w 不能省,因为配置档目录是 pnpm 工作区根目录。add 会链接这个目录,并把包追加到 dsh.profile.bundles;随后加载器从你的工作副本读取 lib/client.js,所以要让改动生效,得靠 pnpm build。 - 仓库自带 .npmrc,里面写了 auto-install-peers=false。没有它,pnpm ≥ 9 装不上:它会去拉可选的 @deepseek-ai/* peer,而其中一个依赖的包从未发布过。 - pnpm build 需要 tsdown;node scripts/build-esbuild.mjs 是备用方案。 - lib/ 提不提交都行。主构建目前约 640 KB,外加 934 KB 的 sourcemap(esbuild 备用方案稍大一些);两个构建器都压在 680 KB / 1020 KB 的发布预算以内。 DSH 0.1 的客户端启动清单不带宿主插件配置,所以这个包有意不暴露 cordis.yml 配置块。用户的选择从选择器或 #theme= 进入,并保存在浏览器里。 门禁 —— pnpm check(3136 行对比度数据加不变量)和 pnpm test(68 个测试,其中包括对 lib/client.js 的加载期锁定)。两者都不需要跑起 harness。 重新生成主题 —— pnpm generate 从 中国传统色 仓库读取颜色数据和 OKLab 算法。把路径指向那里: ZH_COLORS_REPO=/path/to/zhongguo-traditional-colors pnpm generate 它还会往上一级目录和同级检出目录找,所以按常规布局摆放就不需要环境变量。两个可执行输入用 SHA-256 锁定到上游修订 3f5fc62;接受上游改动之前,先审查并更新这些指纹。生成器是确定性的 —— 不看时钟,不带随机 —— 所以输入不变,输出必须逐字节一致。 许可证 MIT —— 见 LICENSE。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
nevertoday/dsh-theme-plugin
中国传统色,做成 DeepSeek Harness 主题包。49 个锚点色 × 明暗两套 = 98…
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,025未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,358已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13938 个插件含 PR 收录与…
★ 350已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7