When developing agents in DeepSeek Harness Web GUI (dsh --profile web), the Agent is often visually static while thinking or waiting. The dakeshui123/dsh-pet-frieren plugin adds a chibi-style Frieren: Beyond Journey’s End desktop pet to the screen. It responds to Agent state changes with corresponding animations and speech bubbles, providing intuitive visual feedback during development.

Plugin Introduction

dakeshui123/dsh-pet-frieren is a desktop pet plugin for DeepSeek Harness Web GUI. It integrates through the dsh.bundle.patch and dsh.client mechanisms and can run without complex build steps. The plugin includes a prebuilt client package and an asset server responsible for rendering sprite animations in the browser.

Core Features

This plugin mainly provides the following features:

  1. State Tracking
    The pet switches animations and expressions based on the Agent’s runtime state:

    • Idle: default standby state.
    • Thinking: the Agent is reasoning.
    • Tool invocation: the Agent is executing a tool.
    • Streaming output: the Agent is generating a response.
    • Waiting: waiting for user approval or input.
    • Error: when the Agent reports an error, the pet freezes on the last failed frame until the error is cleared.
  2. Automatic Interaction
    While idle, the pet performs actions automatically:

    • Waves every 12–30 seconds.
    • Occasionally jumps every 45–90 seconds.
    • Randomly shows speech bubbles (approximately every 20–40 seconds).
  3. User Interaction

    • Click: make the pet wave once.
    • Double click: make the pet jump once.
    • Drag: move the pet’s position. The position is saved automatically, and the pet runs left and right while being dragged.
    • Hover: hovering the cursor over the pet shows a close button in the upper-right corner; clicking it hides the pet.
    • After hiding: click or drag the hidden marker to bring the pet back.
  4. Compatibility

    • Accessibility: respects the system prefers-reduced-motion setting. In this mode, only a static frame is shown and no animations are played.
    • Asset serving: all assets are served through the HTTP route /dsh-plugin-assets/dsh-pet-frieren, with no path traversal risk.

Installation and Enabling

Installing this plugin requires the DeepSeek Harness Web GUI (dsh --profile web) environment.

  1. Run the installation command:
    dsh plugin --profile web add github:dakeshui123/dsh-pet-frieren
The plugin is installed as a standard dsh bundle in the `web` configuration.
  1. Start DeepSeek Harness Web GUI:
    dsh --profile web
After startup, Frieren appears on the screen.

Common Commands

After installation, you can manage the plugin with the following commands:

  • Update the plugin:
    dsh plugin --profile web update dsh-pet-frieren
  • Pin a version:
    dsh plugin --profile web add github:dakeshui123/dsh-pet-frieren#v0.1.0
  • Remove the plugin:
    dsh plugin --profile web remove dsh-pet-frieren
  • Install from Git:
    dsh plugin --profile web add git+https://github.com/dakeshui123/dsh-pet-frieren.git
  • Build method: the plugin client package is prebuilt, so no prepare or build steps are required. It is compatible with any version of pnpm.
  • Asset paths: follows the dsh bundle host-serves / client-reads pattern. Assets are read over HTTP and are not embedded in the bundle file.
  • Copyright: the plugin is open source under the MIT license. The “Frieren” character used originates from Frieren: Beyond Journey’s End and is a personal, non-commercial fan-art rendition.

References