Preface

DeepSeek Harness (command name dsh) is an open-source agent runtime developed by DeepSeek AI, currently in developer preview. Its core philosophy is “Everything is a plugin”: models, tools, skills, sessions, sandboxes, and interfaces can all be replaced or combined via plugins. There is also an independent community plugin directory site deepseek-harness-plugin.com, which is not officially affiliated with DeepSeek / HyperMind. It hosts community repositories with installation commands, licenses, and source code links.

In daily usage, models are mostly used for writing code, modifying configurations, and running tools. To intuitively check if a model can think through its next move, Gomoku (Five in a Row) is a ready-made testbed: its rules are simple, victory conditions are clear, and every move requires specifying coordinates on a 15×15 grid. dsh-gomoku embeds this game into the DSH web interface’s session view: you can play as black or white, or pit two configured models against each other to compare who follows the rules better and who defends more effectively.

This article is collated by cross-referencing the plugin directory page, the GitHub repository’s README, package.json, cordis.patch.yml, client source code, and the official DeepSeek Harness repository. The plugin was added to the directory on 2026-08-11, and the latest push to the repository was on 2026-08-15.

What is this

dsh-gomoku is a tool and capability plugin for the DeepSeek Harness web interface, maintained by omdsh-dev, with its source code hosted at omdsh-dev/dsh-gomoku. Its npm package name is @yejiming/dsh-gomoku, current version 0.0.1, licensed under MIT, and primarily written in TypeScript. As of the verification date, both GitHub and the directory page showed 13 stars.

It solves a very specific problem: launching a 15×15 free-style Gomoku game in DSH, allowing the currently configured models to place stones via JSON coordinates. The repository’s README clearly states: there are no search algorithms or heuristic pruning here; every move comes from the large model’s own reasoning. The game state and win/loss determination are handled on the browser side; the server only arbitrates AI moves, and invalid responses will be rejected without corrupting the board.

In package.json, dshClient.platform is set to web, and it depends on the webServer service from @deepseek-ai/dsh-host-webserver. The README requires dsh ≥ 0.1.0-rc.6; earlier versions do not have this service, and the plugin row will remain in pending state indefinitely.

Core Features

Cross-referencing the README’s “Main Features” and the client’s src/client/index.ts and locales.ts, the verified capabilities are as follows:

  1. Three game modes. Selectable below the board: “Play as Black (First Move)”, “Play as White (Second Move)”, or “Dual AI Match”. The rules are 15×15 free-style with no forbidden moves: double threes, double fours, and long chains are all legal; five or more consecutive stones in any direction results in a win; a draw occurs when the board is full and no player has achieved five in a row.
  2. Separate model and temperature settings for each side. The two side panels can independently select models, with temperature settings of Off / High / Max, which do not affect each other. If a model does not support the selected temperature setting, the server will fall back to the model’s default temperature, and the request will not fail as a result.
  3. Side-by-side thought process display. The reasoning logs for Black and White are listed on the left and right sides of the board, collapsed by default. Clicking on a move will expand the full reasoning text.
  4. Manual override after pausing. The “Pause” button is located to the right of “New Game” below the board. During the pause, you can place stones for both sides without move limits, and resume AI thinking by clicking “Continue”.
  5. Editable system prompts for each side. The default prompt includes the no-forbidden-move rules, terms such as open two, open three, and forcing four, the order of checks before placing a stone, and the required JSON output format. Modified text will be sent as-is as the system prompt for that side; either side can restore the default prompt with one click.
  6. Closing the tab will not interrupt the game. The client stores the game in the browser’s store, so switching or closing the board view will neither reset the game nor interrupt ongoing AI thinking. The source code registers the interface as a session view tab with the Chinese label “Gomoku”, positioned to the right of Trajectory.
  7. Automatic retry for transient failures. Streaming response interruptions (connection drops, rate limiting, etc.) will be retried within the attempt budget. The configuration item maxMoveAttempts defaults to 3, and the final attempt will include corrective feedback.

The end-to-end timeout for a single move is fixed at 3000000 milliseconds (3000 seconds) sent by the browser; the output token limit is fixed at 32000. These two values are not exposed in the interface. The move request is an independent auxiliary call and is not written to the Agent session log.

Installation and Activation

The installation command provided on the directory page can be run in the DeepSeek Harness terminal:

dsh plugin add github:omdsh-dev/dsh-gomoku

For reproducible installations, fix the commit hash as specified on the directory page. As of the verification date, the latest commit on the main branch of the repository is 5b27af9808f5bd8f2d753dfdf6157d86a54a4947:

dsh plugin add github:omdsh-dev/dsh-gomoku#5b27af9808f5bd8f2d753dfdf6157d86a54a4947

The repository README also provides three installation methods with profiles. The build artifact lib/ is committed to the repository, so no local build is required during installation, and you do not need to configure allowBuilds in the profile’s pnpm-workspace.yaml.

Install from npm (marked as recommended in the README):

dsh plugin --profile demo add @yejiming/dsh-gomoku

Install from GitHub source code (same repository as the directory page, just explicitly specifying the profile):

dsh plugin --profile demo add github:omdsh-dev/dsh-gomoku

Install from a local checkout or tarball:

dsh plugin --profile demo add .
pnpm pack
dsh plugin --profile demo add ./yejiming-dsh-gomoku-0.0.1.tgz

Using dsh plugin for the first time will initialize the profile and include @deepseek-ai/dsh-base as the top-level composite package. After installation, check the configuration layer before starting:

dsh --profile demo --dump-config
dsh --profile demo

The output of --dump-config should include the gomoku layer (the id inserted by cordis.patch.yml is gomoku). If pnpm warns about peer dependencies, the README notes that they can be ignored: the required services are provided by the host dsh at runtime.

To remove the plugin, use the npm package name:

dsh plugin --profile demo remove @yejiming/dsh-gomoku

This command will remove both the dependency and the corresponding configuration layer.

Typical Usage

Walk through the workflow from opening the board to finishing a game, based on the README and client copy. Prerequisite: the web interface has been launched, and at least one usable model has been configured.

  1. Open the “Gomoku” tab. After successful installation, “Gomoku” will appear to the right of Trajectory in the session view. Clicking it will open the 15×15 board, with black and white AI settings, thought logs, and prompt panels on the left and right sides.
  2. Select a game mode. To play yourself, select “Play as Black (First Move)” or “Play as White (Second Move)”; to watch two models compete, select “Dual AI Match”. The mode toggle button is located below the board, next to “New Game”.
  3. Assign models and temperature settings for each side. In dual AI matches, you can select different models for each side, for example, one side set to Off and the other to High, to observe the impact of temperature settings on move quality. In human vs AI matches, the model on the opposite side is your opponent.
  4. Start placing stones or observe. In human vs AI mode, place stones on empty intersections; in dual AI mode, you only observe. Each time the model should return exactly one JSON object, for example, a valid move is {"move": [row, col]}, where the coordinates are integers from 0 to 14, and the target intersection must be empty. A draw is declared with {"draw": true}. Responses with explanatory text will be treated as invalid output, and the server will reject them and trigger a corrective retry.
  5. Intervene by clicking “Pause”. The status will change to “Paused · Manual Game in Progress”, and you can place stones for both sides to set up a specific position or correct a move when the AI makes an obvious defensive mistake. Click “Continue” to resume AI thinking from the current position.
  6. Adjust prompts against thought records. If a move misses an open three or forcing four, expand the reasoning text for that move, then modify the rules or add examples in the corresponding side’s prompt panel. The changes will take effect on the next move. To discard changes, use “Restore Default”.

Closing the tab to do other things will not end the game, as it is stored in the browser’s store. Reopening the “Gomoku” tab will resume the game and background thinking instead of starting a new one. Click “New Game” to reset the board.

Use Cases and Notes

This plugin is suitable for the following scenarios:
- You are already using the DSH web interface and want to use a simple, high-stakes game to observe whether a model adheres to “defend after attacking” in its reasoning.
- You have two or more models (or different temperature settings for the same model) and want to have them play under the same prompt set to compare issues like missed defenses, repeated invalid coordinates, and unwarranted draws.
- You are tuning system prompts: the default prompt itself is a move instruction with terminology and few-shot examples, and changes can be immediately seen in the next move on the board.

You should be aware of these limitations before using the plugin.

The plugin runs with the permissions of the current dsh process, and executing code may occur during installation. Before installing, you should check the source code repository and the MIT license; for reproducible installations, fix the commit hash. The community directory is not an official DeepSeek app store.

It only integrates with the web interface and is not suitable for pure headless workflows. Do not expect it to work with dsh versions below 0.1.0-rc.6.

Each AI move is an independent model call, which does not share context with the current Agent conversation and is not logged to the session log. In dual AI matches, the two sides take turns making requests, which will increase time and cost; when the temperature is higher than Off, the thought tokens count towards the same output budget. The browser sets the timeout to 3000 seconds and the output limit to 32000 because reasoning models include thought processes in their output. Even so, if the JSON is incomplete after truncation, it will count as a failure and trigger a retry.

The rules are free-style with no forbidden moves, not the forbidden move rules used in professional competitions. What it evaluates is the model’s moves under this default (or modified) prompt, not the playing strength in the traditional engine sense. The repository README also does not provide any game win rate data or “which model is stronger” claims; the results of dual AI matches only correspond to that specific model and prompt set.

Summary

dsh-gomoku embeds a 15×15 free-style Gomoku game into the DSH web session view: human vs AI, dual AI matches, per-side prompts, and pause/override are all integrated on the same board. Moves rely on the model’s own reasoning, and the server only blocks invalid responses. The directory page’s installation command is dsh plugin add github:omdsh-dev/dsh-gomoku; the README recommends the npm package name @yejiming/dsh-gomoku. It requires dsh ≥ 0.1.0-rc.6 and is licensed under MIT.

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

GitHub: https://github.com/omdsh-dev/dsh-gomoku