Preface

When running multi-session agents in the DeepSeek Harness (DSH) Web interface, a common issue is that it’s often difficult to get unified, readable feedback on whether the model is thinking, streaming output, or calling tools. After refreshing the page or switching to another tab, it becomes even harder to determine which sessions are currently running and at what stage of progress.

dsh-answer-pet addresses this scenario by placing a draggable “answer status pet” in the corner of the Web GUI. It visualizes session progress, output rate, and model execution traces through animations and status cards. The appearance is decoupled from the progress core via a declarative PetTheme v1 contract, defaulting to a blue whale theme, with built-in orange cat and silver-shaded cat themes.

What is This

dsh-answer-pet is a DSH Web bundle plugin maintained by Nanki-nn, currently at version 0.6.0 under the MIT license. The plugin consists of a Node half and a browser client: the former listens to session/event to maintain progress and traces, while the latter renders the pet, status cards, and interactions.

Directory Page: SkillHub - dsh-answer-pet
Source Code: github.com/Nanki-nn/dsh-answer-pet

Core Features

Extensible Pet Themes

Themes are defined via the PetTheme v1 contract, specifying SVG, animations, aspect ratios, and phase text, separate from the answer progress logic. Currently, three trusted themes are built-in and loaded with the plugin build. No third-party arbitrary JavaScript is executed, and no unsanitized external SVG is injected.

Theme ID Name Description
blue-whale Blue Whale Default theme
orange-cat Orange Cat Example of PetTheme v1
silver-shaded-cat Silver-Shaded Cat Embeds PNG at build time, no external images loaded

Unknown theme IDs safely fall back to blue-whale. For custom theme development, see docs/PET_THEME.md in the repository.

Answer Progress and Status Cards

The plugin is driven by a state machine that responds to DSH session events, mapping them in real-time to pet animations and progress percentages:

Phase Theme Interface Status Card Progress
Idle idle No running session card displayed
turn/start turn 2%
Thinking (step/start) think 5% → 10%
Output (assistant/chunk) stream 10% → 90%
Tool (tool/call) tool Freezes current progress
Completion (turn/end) done 100%

Progress primarily uses the usage from assistant/chunk; if maxTokens is available, it fills based on outputTokens / maxTokens, otherwise estimated with a saturation curve, monotonically non-decreasing within the same turn. The status card also displays output tokens, tokens/s, time elapsed, and text snippets.

Multi-Session and Model Traces

When multiple sessions run concurrently, each active session has its own independent progress card arranged vertically. If no sessions are running, no cards are displayed, nor is a count of 0.

Each card shows recent model traces, such as task analysis, reasoning and planning, organizing responses, tool calls, and results. Failed tool calls are highlighted in red in the trace. Traces retain up to 6 entries (displaying the most recent 4 on the card). Tool names are displayed (e.g., read, grep), while parameters are only summarized briefly from whitelisted fields, without showing full shell commands or raw JSON.

Interaction and Data Updates

  • Drag the pet: Position is persisted to localStorage.
  • Click the pet: Triggers the blink defined by the theme without moving the position.
  • Status cards are collapsible; when collapsed, only a count button is shown when there are active sessions.
  • Polling combined with SSE: Streaming data updates smoothly, with instant refresh on phase changes.

Installation and Enabling

The plugin must be installed to the Web profile. Execute in the terminal:

dsh plugin --profile web add github:Nanki-nn/dsh-answer-pet

After installation, stop and restart the current dsh web process, then refresh the Web GUI page. To upgrade the plugin, repeat the same command.

When upgrading from an older version to 0.6.0, you must restart dsh web; merely refreshing the browser will not load the new configuration schema and Node half logic.

Typical Usage

Switching Pet Themes

Configure the theme in the answer-pet section of <dshHome>/settings.yaml. Theme updates will be mounted on the next configuration refresh.

answer-pet:
  theme: silver-shaded-cat # blue-whale / orange-cat / silver-shaded-cat

Adjusting Size, Position, and Display Items

In the same section, you can configure pet size, docking corner, opacity, polling interval, and whether to show the progress card and status bubble.

answer-pet:
  theme: blue-whale
  size: 96          # Pet height in px (48–200)
  corner: br        # Docking corner: br / bl / tr / tl
  opacity: 1        # Opacity (0.2–1)
  pollMs: 800       # /state polling interval
  showBar: true     # Show session progress card
  showBubble: true  # Show status bubble

Restoring Default Position

If you want to restore the pet’s default docking position after dragging, open the developer tools on the DSH Web page and execute:

localStorage.removeItem('answer-pet:pos')
location.reload()

To also restore the status card’s expanded state:

localStorage.removeItem('answer-pet:bar')
location.reload()

Use Cases and Notes

Who is it for

  • Those who frequently run multi-session agents in the DSH Web interface and need a quick overview of which sessions are running, their current phase, and tool call status.
  • Those who prefer a lightweight status indicator in the corner instead of repeatedly switching session pages to check logs.
  • Those who want to create custom pet themes based on PetTheme v1 (requires reading the repository’s development guide and following the build process).

Pre-use Notes

  • The plugin runs with the current dsh web process privileges. Before installation, it’s recommended to review the source code and the MIT license to ensure it meets your environment requirements.
  • Model traces rely on the Node half listening to session/event. After installation or upgrade, you must restart dsh web; merely refreshing the page only updates browser-side styles.
  • Progress percentages are estimated by the plugin based on phases, tokens, and maxTokens. Most model interfaces do not provide precise completion percentages.
  • SkillHub is a DSH community plugin directory and has no official affiliation with DeepSeek or High-Flyer.

Conclusion

dsh-answer-pet decomposes the answer process in DSH Web into readable pet animations, multi-session progress cards, and model trace timelines, separating appearance from core logic via PetTheme v1. If you’re already using DSH Web to run agents, you can install it to the Web profile using the commands above, restart the service, and refresh the page to try it out.

  • Directory Page: https://www.skillhub.cn/plugins/Nanki-nn/dsh-answer-pet
  • GitHub: https://github.com/Nanki-nn/dsh-answer-pet