给 DeepSeek Harness 套上一整套 2005 年风格的虚构广告:侧栏横幅、对话内插件推荐、推理中途的财神转盘、假杀毒告警、假游戏海报和跑分弹窗,全部能在设置里逐项关掉。
- 语言
- TypeScript
- License
- BSD-3-Clause
- 分支
- main
安装
$ dsh plugin --profile web add github:Nagi-ovo/dsh-ads在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 Nagi-ovo/dsh-ads:先查看仓库 https://github.com/Nagi-ovo/dsh-ads.git 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
dsh-ads 给 DeepSeek Harness 套上一整套虚构广告,模仿 2005 年中文门户和英文页游弹窗的样子,默认七种广告位全部开启,每个开关都能在 DSH 的"广告(非官方)"设置页里单独关掉,适合想玩玩梗或体验一下"AI 工具也内嵌广告位"是什么感觉的用户。
核心能力
- 在对话两侧栏插入横幅/竖版广告,中文是页游/财神鲸风格,英文是假杀毒/搞笑横幅
- 在对话正文里每隔几轮插入一条"插件推荐",点击会跳到该插件的真实 GitHub 仓库
- 推理中途随机弹出"财神鲸"转盘,假装要抽 V4 Pro,模型实际仍在后台运行
- 右下角定时滑出图片弹窗,左下角放可拖动、可折叠的"贪玩蓝鲸"假游戏海报
- 启动时弹一个"跑分中心"小窗,加载耗时是浏览器实测,全国排名是编的
- 假杀毒告警(ShieldToast)能验证当前 GitHub 账号是否 star 过本插件仓库
技术实现
- 语言: TypeScript(浏览器侧 React 18 + TSX,节点侧纯 TS),ESM 模块
- 关键依赖: @deepseek-ai/cordis ^4.0.1、@deepseek-ai/dsh-client-locale ^0.1.0-rc.6、@deepseek-ai/schemastery ^3.18.1、react ^18.2.0(均为 peerDependencies)
- 架构模式: 节点端通过 cordis bundle patch 注入,声明 inject=['webServer'] 用于注册两条 HTTP 路由(/dsh-ads/registry.json、/dsh-ads/star-check.json);浏览器端通过 dsh client slot 注册三个挂载点——conversation.input.dock(浮层)、conversation.chat.turnTail(对话内插入)、settings.section(独立设置页)
- 入口文件: 节点端 src/index.ts(导出 apply/config/inject);浏览器端 src/client/index.tsx(导出 apply/inject);构建产物分别为 lib/index.js 和 lib/client.js
适用场景
想让 DSH 看起来像 2005 年的中文门户或者英文页游站点的人,或者想在团队内部演示"AI 工具被广告位塞满是什么体验"的人。广告里夹带的真实 GitHub 仓库推荐,适合作为给自己的 DSH 插件做免费曝光的方式(只要在仓库打上 dsh-plugin topic 且两周内有 push 即可);不适合追求清爽工作环境的日常使用者。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH(cordis) | ^4.0.1 | 节点端 bundle 注入宿主所需 |
| DSH 客户端运行时 | ^0.1.0-rc.6 | ds bndle.client.inject 声明依赖该版本 |
| DSH 客户端 locale | ^0.1.0-rc.6 | 语言感知广告位所必需 |
| DSH schemastery | ^3.18.1 | 节点端运行时 |
| React | ^18.2.0 | 浏览器端 UI 依赖 |
| Node | 建议 ≥22 | 源码使用 Node 22+ ESM 语法与 built-in fetch,package.json 未硬性声明 engines |
| 平台 | 跨平台 | 仅依赖浏览器与 Node 内置 API,无需任何原生模块 |
| 原生模块 | 无 | 仅使用 node:http / node:child_process 内置模块,无需 node-gyp 编译 |
安装方式
dsh plugin --profile web add github:Nagi-ovo/dsh-ads
配置项
节点端通过 Config 暴露(写到 DSH profile 配置里),浏览器端通过"广告(非官方)"设置页持久化开关。说明列写人话,不写底层 API 路径。
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| freshDays | number(天) | 一个 GitHub 仓库最近多少天内 push 过才会被轮播;设为 0 或负数则展示 topic 下全部公开仓库 | 14 |
| cacheMinutes | number(分钟) | 插件多久向 GitHub 重新拉一次插件列表;本机缓存命中期间复用上次结果 | 30 |
| 侧栏横幅(gutter) | 开关 | 关掉后,对话左右两列的横幅/竖版广告不再出现 | 开 |
| 对话内插件推荐(feed) | 开关 | 关掉后,每隔几轮插在正文之间的"插件推荐"不再出现;这是唯一带真实仓库链接的广告 | 开 |
| 推理激励广告(reward) | 开关 | 关掉后,推理中途不再弹"V4 Pro 抽奖"转盘 | 开 |
| 右下角弹窗(popup) | 开关 | 关掉后,定时滑出的图片弹窗不再出现 | 开 |
| 跑分中心(speed) | 开关 | 关掉后,启动时不再报告"0.29 秒启动+全国排名"小窗 | 开 |
| 安全中心(scare) | 开关 | 关掉后,假杀毒告警与"验证修复"按钮不再出现 | 开 |
| 贪玩蓝鲸(poster) | 开关 | 关掉后,左下角可拖动的假游戏海报不再出现 | 开 |
| 提示音(muted) | 开关 | 关掉后,弹窗和海报出现时的 Web Audio 合成"叮"声不再播放 | 开 |
| 立刻关闭所有广告(刷新后恢复) | 一次性按钮 | 不写入存储,只在本次会话内隐藏一切广告位 | - |
常见问题
Q: 安装后必须重启 DSH 才能看到广告吗?
A: 是的。README 明确说"如果 dsh web 正在运行,重启后刷新页面";装完不重启,设置面板里看不到"广告(非官方)"入口,广告层也不会挂载。
Q: 安装之后这些广告能不能逐个关掉?
A: 能。装好后会在 DSH 设置面板多出一个"广告(非官方)"标签页,里面每种广告位都有独立开关,包括侧栏横幅、对话推荐、推理转盘、右下弹窗、跑分中心、假杀毒、贪玩蓝鲸海报和提示音,选择会写进本机浏览器存储,下次启动依然生效。
Q: 想立刻全部关掉、不改上面那些开关怎么办?
A: 设置页底部有一个"立刻关闭所有广告(刷新后恢复)"按钮,它只在本次会话生效,不会被持久化,刷新页面后按上面的开关恢复——这是插件有意为之,避免一次误点把长期设置清空。
Q: 对话里那种能点进真实仓库的"插件推荐"是怎么挑出来的?
A: 节点端通过宿主注册的 HTTP 路由发现:优先用本机的 gh CLI,再用 GITHUB_TOKEN/GH_TOKEN,最后落到匿名 GitHub API;在 GitHub 上搜索 topic=dsh-plugin is:public archived:false 的仓库,过滤掉 archived/disabled/fork 和自己,然后按最近两周内有 push 的标准筛一遍。结果按"本机每个 slug 看到次数最少优先"分配,所以每个插件会先被轮过一遍才会重复。
Q: 推理中途那个"V4 Pro 转盘"是真的卡住模型了吗?
A: 没有。模型一直在后台继续生成,只是把当前助手那一行的可视高度冻结、把后面所有未完成的行藏起来,转盘结束后一次性放出来。源码里它只是修改 maxHeight/overflow,并把 data-chat-flow-kind=assistant-step 之外的行 hide 掉,不会真的中断 session。
Q: 我装了以后,这个插件会往我机器上读文件或写文件吗?
A: 不会。README 的免责声明和代码里都没有任何文件扫描或读写:节点端只调 gh CLI/匿名 API 查仓库;浏览器端的所有偏好(哪些广告位开着、海报拖到哪里)都只写到 localStorage 的 dsh-ads:* 键下,关闭浏览器数据就清空。
Q: 这个插件能卸载干净吗?
A: 能。关掉所有开关只是让它什么都不显示,插件本身还在,设置页面会明说这一点。要彻底移除,按普通 DSH 插件卸载流程移除即可,localStorage 里的键如果想立刻清掉,可以在浏览器开发者工具里手动删 dsh-ads: 开头的项。
上手难度
入门 — 默认装好就有一整套广告位在跑;设置面板里 7 个开关都是"开/关"二元按钮,只有想自己插件被曝光时才需要碰 GitHub topic 或 contrib/*.json。
已知问题与限制
- 节点端依赖宿主提供 webServer 能力,无 web server 的宿主(TUI、ACP、headless)节点侧功能会静默降级,浏览器侧也不会有广告层
- 浏览器侧广告层只在中英文两种语言下有完整素材;其他语言(locale !== 'en' 的情况)会回退到中文素材
- 当 GitHub 实时发现失败(无 gh CLI、无 token、被限流、离线)时,使用上次 pnpm catalog 构建的本地快照(CATALOG_SNAPSHOT),新出现的仓库要等下次快照刷新才看得到
- 对话内插件推荐(INLINE_EVERY_N_TURNS = 2)只看 seq 奇偶判断"这轮是否带广告",所以前两轮不出现广告(seq > 0 且 seq % 2 === 0)
- 离线/失败时节点端缓存与浏览器端 ledger 都只存在内存,刷新页面后会从头开始轮播

简体中文 | English
把 DeepSeek Harness 变成 2005 年门户网站。连 inference 都逃不过广告。
广告是假的,插件是真的,抽到 V4 Pro 的希望也是真的渺茫。

dsh-ads 会在侧栏、对话、推理中途和右下角塞入一整套虚构广告。它看起来会暂停 inference,实际上模型一直在后台工作,只是后续回答和工具调用要等广告结束才显示。
插件不会只拿自己开涮。GitHub 上带 dsh-plugin topic、且最近两周更新过的公开插件会进入推荐位,点击广告就能打开真实仓库。仓库换到个人账号或其他组织后仍能被发现。
两套互联网垃圾美学
切换 DSH 的「设置 → 语言」,当前页面会立即更换整套素材、文案和交互,不用刷新。中文模式主打页游、财神和「这次一定」,两张贪玩蓝鲸海报每 20 秒自动切换;English mode 则是 fake antivirus、weird tricks 和 actual gameplay*。


| 中文:贪玩蓝鲸 | English: actual gameplay* |
|---|---|
![]() | ![]() |

启动耗时是真测的,全国排名是编的。
安装
推荐直接从 GitHub 安装到 DSH 的 web profile:
dsh plugin --profile web add github:Nagi-ovo/dsh-ads
# 如果 dsh web 正在运行,重启后刷新页面
可以运行 dsh --profile web --dump-config 确认插件已经进入最终配置。需要修改源码时,克隆仓库并在仓库目录运行 dsh plugin --profile web add .;构建产物已经提交,不需要额外构建。使用社区 plugin-registry 的用户也可以从「设置 → 插件」安装。
每个广告位都能在「设置 → 广告(非官方)」里单独关闭,选择会保留到下次启动。

免费广告位
带 dsh-plugin topic 的公开插件会自动参与轮播。想指定自己的文案或图片,可以查看投稿说明并发 PR。曝光记录只保存在本机浏览器里。
同一个作者的 dsh-visualize 可以让模型直接在对话里画出交互界面。这条是整个 README 唯一正经的广告。
免责声明
本插件纯属娱乐,与 DeepSeek 以及任何真实公司、产品或服务均无关联。广告里的品牌、人物、域名、价格、病毒和承诺均为虚构。插件不会扫描、读取或修改机器上的文件。
「验证修复」只会在用户主动点击后查询一次 GitHub Star 状态,优先使用本机 gh 或 token,否则调用匿名公开 API。结果只保存在本机浏览器中。
收录徽章
[](https://deepseek-plugin.org/plugins/Nagi-ovo/dsh-ads)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。


