Preface

DeepSeek Harness (hereinafter referred to as DSH) treats models, tools, sessions, permissions, persistence, and UI as replaceable plugins. The official repository’s slogan is “Everything is a Plugin”: the Cordis kernel is responsible for loading and combining, while specific capabilities are provided by plugins. The web interface can thus be extended layer by layer without modifying the Harness source code.

The default Web UI can handle daily operations of coding Agents, but its interface is rather minimal. After finishing a round of inference and waiting for tool call returns, some users may feel it lacks the “early internet” vibe. The community plugin dsh-ads was made specifically for this: it injects a full set of fictional ads into the sidebar, conversations, mid-inference, and corners, turning the DSH web interface into a 2005-era portal look.

First, it is necessary to clarify the boundaries. The community plugin directory deepseek-harness-plugin.com is an independent site and has no official affiliation with DeepSeek / FunCaptcha. Do not treat it as an official app store. The dsh-ads own settings page also clearly states: “This page is provided by a community plugin, not an official DeepSeek feature.” All brands, promotions, and antivirus alerts in the ads are parodies.

This article is organized based on the directory’s detail page, the GitHub repository’s README, package.json, LICENSE, contrib/README.md, and cross-verified with client and host source code.

What is this

dsh-ads is a fun plugin for the DSH web interface, maintained by Nagi-ovo, with the repository address at Nagi-ovo/dsh-ads. Its npm package name is @dsh-external/dsh-ads, the version in package.json is 0.1.0, and the license is BSD-3-Clause. The community directory lists it under the “Fun” category and marks it as featured; at the time this article was verified, the GitHub repository page had 460 stars (the directory page showed 372 stars at that time).

It does not solve productivity problems, but rather fixes the overly plain web interface. After installation, ad bars will appear on both sides, plugin recommendations will be inserted into conversations, a Fortune Whale wheel may pop up during inference, and pop-ups and fake game posters will appear in the bottom-right and bottom-left corners respectively. The ads are fake, but clicking the recommended slots will open the real community plugin repositories.

package.json marks the client platform as web. The source code comments specify that ads will not appear in runtimes without a browser component (TUI, ACP, headless), which is an expected degradation, not a missing installation.

Core Features

Seven individually toggleable ad slots

The plugin registers a “Ads (Non-official)” page in the host’s settings dialog. Each ad slot has a toggle, and selections are saved to local storage and take effect on next startup. The seven items listed on the settings page are as follows:

  1. Side ad bars: Horizontal banners on the left and right columns of the main content, avoiding the conversation sidebar, top bar, and bottom input area. If the window is too narrow to fit the margins, this column will not be forced, and in-conversation recommendations and corner pop-ups will still work.
  2. In-conversation recommendations: Community plugin ads inserted into the transcript every few rounds. The settings page clearly states: This is the only ad that links to real repositories.
  3. Inference incentive ads: The Fortune Whale wheel that appears mid-streaming response, only one spin per conversation.
  4. Bottom-right pop-up: Image pop-up that slides out from the corner.
  5. Benchmark Center: Reports the loading time of this startup and fabricates a national ranking when launched. The original wording in the README is: “Startup time is measured for real, national ranking is made up.”
  6. Security Center: Fake virus alert. Clicking “Remind Later” will escalate the alert; clicking “Verify Repair” will only check the GitHub star status once after the user actively clicks.
  7. Playful Blue Whale: Fake game poster in the bottom-left corner, draggable and collapsible. In Chinese mode, the two posters automatically switch every 20 seconds.

There is also a “Sound effects” toggle that controls the “ding” sound synthesized on the fly by Web Audio when pop-ups and posters appear. The settings page also has a button labeled “Close all ads immediately (restores after refresh)”: it only takes effect for the current session and will not be saved to persistent configuration, preventing a single accidental click from acting as an uninstall.

Two sets of “early internet junk aesthetics” for Chinese and English

Switching “Settings → Language” in DSH will immediately replace the entire set of assets, copy, and interactions on the current page without a refresh.

  • Chinese mode focuses on browser games, fortune gods, and “must click this time”, with posters featuring the Playful Blue Whale.
  • English mode features fake antivirus, weird tricks, and actual gameplay*.

Built-in banners are bundled with the browser package and do not require the host to pull images. Dynamic recommendation slots use the host-side GitHub search.

It looks like inference is paused, but the model is still running

The incentive ad is the most easily misunderstood part of this joke. The README and source code are consistent: it looks like inference is paused, but the model is actually working in the background; subsequent responses and tool calls will only be displayed after the ad ends.

In terms of implementation, the plugin freezes the visible height of the current Assistant row and hides the subsequent transcript rows, while the streaming output in the DOM continues uninterrupted. The wheel copy clearly states that the demo content is purely fictional, and users can click “Continue Conversation” or press Esc to exit. The “V4 Pro Official Version” won in the spin will not actually switch the model.

The plugin does not only make fun of itself. The host will search GitHub for public repositories tagged with the dsh-plugin topic that have been updated in the last two weeks, and render them as 2005-style banners in the ad slots. Clicking them opens the real repository; the repository can still be found if it is moved from an organization to a personal account (or vice versa), because the search uses the topic, not the owner.

The search order is: locally logged-in gh CLI → GitHub token in environment variables → anonymous public API; if all fail, it falls back to a pre-generated snapshot in the repository. Results are cached for 30 minutes by default. Exposure records are only saved to the local browser and will not be uploaded.

To specify copy or images, you can send a PR according to contrib/README.md: add a JSON file with the same name as the plugin, with optional matching images. The submission guidelines require that no real people or brands appear in the images, and domain names should be blurred; assets will be base64-inline into the frontend bundle, with a recommended size of under 200 KB per image.

Installation and Activation

The installation command given on the community directory page is:

dsh plugin add github:Nagi-ovo/dsh-ads

The repository README recommends installing it into DSH’s web profile (the plugin only affects the web interface):

dsh plugin --profile web add github:Nagi-ovo/dsh-ads
# If dsh web is running, restart and refresh the page

The directory page also reminds users that for reproducible installations, pin the commit hash:

dsh plugin add github:Nagi-ovo/dsh-ads#<commit>

After installation, you can use the following command to confirm that the plugin has been added to the final configuration:

dsh --profile web --dump-config

When you need to modify the source code, clone the repository and run dsh plugin --profile web add . in the repository root directory. The README clearly states that the build artifacts have been committed and no additional building is required. Users of the community plugin-registry can also install it from “Settings → Plugins”.

Both the directory page and the README remind users that the plugin runs with the permissions of the current dsh process, and may execute code during installation. Please check the source code repository and license before installing.

Typical Usage

Follow the reproducible steps from the official README and settings page below.

  1. Confirm that you are using the web interface (dsh web or web profile), install the plugin according to the previous section, restart dsh web and refresh the browser.
  2. Open any conversation. Ad bars will appear when the side margins are sufficient; you will first see the Benchmark Center shortly after startup, followed by security alerts, bottom-right pop-ups, and bottom-left posters. All of these are fictional content, do not click download or payment buttons as if they were real ads.
  3. Go to “Settings → Language” to switch between Chinese and English, confirm that the assets and copy are fully replaced immediately.
  4. Open “Settings → Ads (Non-official)” and turn off individual ad slots as needed. For example, only keep “Playful Blue Whale” and disable the inference incentive ads and security center. These selections will be retained until the next startup.
  5. If you need a quiet session temporarily without changing your saved toggles, click “Close all ads immediately (restores after refresh)”. After refreshing, the combination saved in step 4 will be restored.
  6. If you also maintain DSH plugins, add the dsh-plugin topic to your public repository and push updates within the last two weeks, and your repository will enter the recommendation carousel. If you are dissatisfied with the automatic layout, send a PR according to contrib/README.md to override the copy or images.

The in-conversation recommendation slots are gateways to real plugins; the incentive ads and antivirus pop-ups have no corresponding real products. The README specifies the behavior of “Verify Repair” narrowly: it prioritizes using the local gh CLI or token, otherwise calls the anonymous public API, and results are only saved to the local browser. The plugin states that it will not scan, read, or modify files on the machine.

Applicable Scenarios and Notes

Suitable for:
- Users already using the DSH web interface who want to add some fun to their local environment
- Users making screenshots for colleagues or demo sessions that need to clearly show “this is a community parody, not an official skin”
- Plugin authors who want to give their dsh-plugin repositories more exposure opportunities

Not suitable for:
- Profiles without a browser component such as TUI, ACP, headless; ads will not appear even if installed
- Scenarios where a clean interface is needed for screen recording, screenshot tutorials, or long-term focused coding (you can turn off ad slots, but they are all enabled by default)
- Users who treat ad copy, promotion progress, or antivirus alerts as real product information

Additional notes before use:
- The plugin runs with the permissions of the current dsh process. Read the source code of Nagi-ovo/dsh-ads and the BSD-3-Clause license before installing; pin the commit for reproducible environments.
- Both the settings page and the README declare that this plugin is purely for entertainment and has no affiliation with DeepSeek or any real companies, products, or services.
- Turning off all toggles will restore a clean interface, and the plugin will still remain in the profile. To remove it completely, you need to uninstall the plugin itself, not just turn off the ad slots.
- “Close all ads” only takes effect for the current session. Do not expect it to remain muted after a restart.

Summary

dsh-ads puts DSH’s “Everything is a Plugin” philosophy to use in every corner of the web interface: ad bars, conversation recommendations, inference overlays, pop-ups, and fake games are all attached via plugins, and uninstalling them will restore the original interface. It does not provide new models or tools, only adds a parody 2005-era portal skin to the Web UI; the community plugins in the recommendation slots are the real deal.

Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-ads/

GitHub: https://github.com/Nagi-ovo/dsh-ads