Foreword

The core design philosophy of DeepSeek Harness (DSH) is “everything is a plugin.” During development or debugging, staring at the screen for a long time can easily cause fatigue. As a lightweight tool plugin, dsh-mini-games mounts three pure front-end mini games in the details panel (right sidebar) of the DSH Web interface, without relying on a backend. It uses browser local storage to record high scores.

What It Is

This is a plugin maintained by aga-j, used to provide a persistent game entry point in the details panel of the DSH Web interface. It contains three classic games: Number Guessing, 2048, and Minesweeper. The plugin runs completely in the browser and does not consume host logic resources.

Core Features

  1. Persistent panel: The game interface is integrated into the details panel. Game state is retained when switching game tabs, but reset when switching sessions.
  2. Floating toggle: A floating button in the top-right corner (shell.overlay slot) is provided to reopen the panel when it is collapsed.
  3. Data persistence: High scores are stored using localStorage, with the key prefix dsh-mini-games:.
  4. Game mechanics:
    • 2048: Supports keyboard arrow keys and on-screen touch buttons.
    • Minesweeper: Supports right-click flagging, a first-click safety rule, and timing.
  5. Theme following: Uses DSH theme alias token colors and automatically adapts to light and dark themes.

Installation and Enablement

Install it using the official plugin management command:

dsh plugin --profile web add dsh-mini-games

After installation, restart dsh web for the configuration to take effect. After restarting, a circular 🎮 button appears in the top-right corner of the chat area. Click it to open or collapse the mini game panel.

Verify that the installation is successful:

# 1. 检查配置树中是否存在 mini-games 行
dsh --profile web --dump-config

# 2. 验证浏览器端文件可访问
Invoke-WebRequest http://127.0.0.1:3080/plugins/dsh-mini-games/client.js

Typical Usage

  1. Make sure the DeepSeek Harness Web process is started and running.
  2. Click the 🎮 button in the top-right corner of the chat area.
  3. If this is the first time opening it, the panel displays three game tabs (Number Guessing / 2048 / Minesweeper).
  4. Choose a game to play. Switching tabs does not interrupt the current game progress.

Technical Notes and Limitations

  1. Session requirement: The panel can open normally only in a non-empty session (clicking the button prompts “Enter a session first”).
  2. Dependency warning: The missing peer @deepseek-ai/* warning that appears during installation is normal. Do not manually install @deepseek-ai/cordis; these dependencies are provided by the official bundle.
  3. Panel width: The displayed width of the panel is controlled by the ui-layout component and is usually between 300px and 520px. If it is too narrow, the panel closes automatically.
  4. Implementation details:
    • To avoid conflicts with the default DetailsPanel, the details slot registration uses a priority of -100 for shadowing.
    • The exports field must explicitly export ./package.json; otherwise, the activation scan will report an error.
    • Game state is reset when switching sessions, but retained while switching tabs.

Conclusion

dsh-mini-games is a lightweight plugin that conforms to DSH ecosystem specifications. It is suitable for developers who want to relax during development breaks or test interface interactions. All logic is implemented on the front end, and the source code is transparent.