What it actually is
dsh-ads is a joke plugin that injects a complete set of fabricated advertising into the harness interface, in the visual language of a mid-2000s web portal. The README states its own premise without hedging: it turns the harness into a 2005 portal site, “and even inference does not escape the ads.”
The joke is deliberate and the implementation is real. The README’s summary line claims only three things — “the ads are fake, the plugin is real, and the odds of drawing a V4 Pro are genuinely slim.” Everything visual here is deliberately fictional; the engineering around it is not. Two poster assets rotate every 20 seconds, the English mode ships a separate artwork set, and the settings page exists.
Where it injects, and how invasive it gets
The README names four placements: the sidebar, the conversation stream, mid-reasoning, and the bottom-right corner. That third one is the part worth reading twice.
The plugin also fakes an interruption of inference. It “looks like it pauses inference, but the model is in fact still working in the background — only the subsequent answer and tool calls wait until the ad finishes to display.” So the pause is cosmetic and the work continues; what actually changes is when you see the output.
Mode determines the material. Chinese mode is built on browser-game posters, a wealth god and a recurring “this time for sure” pitch, with two Blue Whale posters auto-switching every 20 seconds. English mode runs fake antivirus, “weird tricks” and fake-game material. The startup score screen shows a real measured startup time of 0.29 s next to a fabricated national ranking — the README says exactly that.
One placement is not fictional in its target. Public plugins carrying the GitHub dsh-plugin topic and updated within the last two weeks enter a recommendation slot, and clicking those opens the real repository. A repository stays discoverable after it moves to a personal account or another organisation.
Controls: what you can switch off
Ad slots can each be turned off individually in the settings panel labelled “设置 → 广告(非官方)” — note the parenthetical, the plugin labels itself unofficial there — and the README says the choice persists until the next start. That per-slot switch is the only control the sources document. No global kill switch, no schedule, no intensity setting.
Exposure records are kept only in the local browser.
Network and privacy
This is not an ad network, and the README nowhere mentions an ad server, ad partner, broker or tracking pixel. The brands, people, domains, prices and viruses are all stated to be fictional. So “parody” here means what it should: the ads imitate advertising, they do not participate in it.
The documented outbound calls are all GitHub. Recommendation slots open real repositories when clicked, and the fake virus alert’s “verify and fix” button performs exactly one GitHub Star lookup, and only after you click it yourself — preferring a local gh install or token, otherwise the anonymous public API. The result stays in the local browser.
Telemetry is not described either way in the sources, and should not be assumed in either direction.
Requirements
Installed from GitHub into the harness’s web profile. Build output is committed, so no extra build step is required. The package declares peer dependencies of @deepseek-ai/cordis 4.0.1 or newer, @deepseek-ai/dsh-client-locale 0.1.0-rc.6 or newer, @deepseek-ai/schemastery 3.18.1 or newer, and React 18.2 or newer, and its dsh block declares both a Cordis bundle patch (./cordis.patch.yml, a file the package also ships and exports) and a web-platform client that injects the client runtime and locale packages.
It does not declare a minimum Node version — the package.json has no engines field, and the README states none, so there is no Node floor to quote. Users of the community plugin registry can also install it from Settings → Plugins.
Known limits
The sources are narrow, and the gaps matter more than usual here:
- Per-slot on/off is the only documented configuration. Whether a restart or page refresh is needed after toggling is not stated.
- The reasoning delay is by design, not a bug, and the README gives no number for how long a given slot blocks output.
- No performance, memory or CPU characterisation is given anywhere, and the animated material (rotating posters, fake gameplay, popups) suggests the UI cost is not zero — but that inference is ours, not the README’s.
- Whether the fabricated ads are closeable, draggable or interactive individually is not documented. The free-ad slot is explicitly clickable because it opens a repository; the rest is left open.
- There is no positioning statement about running it alongside serious work. If anything, the inference-gating behaviour argues against it.
- Version 0.1.0, published
privateand distributed via GitHub rather than npm. No changelog, no release cadence, no date information is given by the sources.
When to use it — and when not to
Use it as a demo, a bit, or a stress test of the idea that a plugin can own a large share of the interface. It is genuinely useful as a tour of what a well-made DSH client plugin can place on screen, and it is honest about being a parody.
Do not enable it while you are doing work you care about. The README is explicit that the visible reasoning stream is gated behind the ads while the model keeps running, so you are trading visibility for the joke on every turn. Turn it off before any screenshot you plan to share professionally — a fake virus alert and a national speed ranking in the corner are not what you want a reader to see first — and read the settings panel’s own “(unofficial)” label before assuming the plugin has any relationship with DeepSeek.
FAQ
Are these real ads? Is there an ad network behind this?
No ad network is involved. The sources name no ad server, advertiser, broker or tracking pixel; the README states that the brands, people, domains, prices, viruses and promises inside the ads are all fabricated, and calls the whole thing entertainment. The fiction is the point. The one real thing a click can reach is a genuine GitHub repository surfaced by the recommendation slot.
Does it slow down the model?
Not the model — the display. The README says inference only appears to pause and that the model keeps working in the background, with the follow-up answer and tool calls held back until the ad ends. The fake startup score even reports a real, measured startup time beside a fabricated ranking. No latency figures are published, so we will not invent any.
Can I turn off just one ad slot?
Yes. Each slot can be switched off individually in the settings panel labelled “设置 → 广告(非官方)”, and the README says the choice is remembered until the next start. A global switch is not documented.
Does it touch my files or my machine?
The README states the plugin does not scan, read or modify files on your machine. Its documented network activity is limited to GitHub: opening a recommended repository, and a single Star lookup when you click the fake alert’s “verify and fix” button, using a local gh or token where available and the anonymous public API otherwise. Whether the plugin reports anything else is not stated by the sources.
Does it work in English and Chinese?
Yes — it follows the harness language setting. Switching the UI language in Settings re-skins the current page immediately, with no refresh: Chinese mode brings browser-game and wealth-god material, English mode brings fake antivirus, “weird tricks” and fake gameplay. The English material is a separate artwork set rather than a translation of the Chinese one.