Introduction

DSH’s plugin mechanism allows attaching auxiliary behaviors within the harness. dsh-digipet is a DSH plugin that converts real work turns, messages, tool calls, and errors into pet XP, evolving them along evolutionary branches. Its boundaries are clear: it does not register tools, does not write session events, has zero token usage, and is invisible to the model. Below, we introduce its purpose, installation, commands, and limitations.

What is this

swaylq/dsh-digipet is a “Digimon” plugin incubated in the DeepSeek Harness. It listens for events and increases XP according to rules; the pet evolves from an egg to Ultimate form, following evolutionary branches such as Dragon, Sage, Holy Wing, Virus, etc.

The repository is swaylq/dsh-digipet, and the license is MIT. Requirements in package.json:

node >=20

Core Capabilities

XP Source

The following four events are the event points monitored by the plugin:

agent/turn-stopping
agent/inbox/claimed
tools/result
agent/error

The plugin increases XP according to rules. The events only indicate “what type of event occurred” and do not read user code or session content.

Evolutionary Lines

The pet lifecycle ranges from an egg to Ultimate form. Evolution can follow branches like Dragon, Sage, Holy Wing, Virus, etc. The command to trigger the evolution ceremony is:

/pet evolve

Invisible to the Model

The plugin does not register tools, does not call agent.inject(), and does not write session events:

agent.inject()

Its contribution to every model request is zero bytes.

State Persistence

Save file path:

$DSH_HOME/digipet/state.json

Writing uses temporary files, fsync, atomic rename, and is throttled to once every 1.5 seconds:

fsync
rename

Anti-Cheat and Migration

When hunger is above 90%, XP gain is reduced to 15% as an anti-cheat mechanism. It supports automatic lossless migration of 0.1.x old saves on the next startup.

Trust Boundaries

The plugin has no network access, only reads its own save file, and only writes to its own state.json. It does not veto, modify, or delay the real process.

Installation and Enablement

The installation command provided in the README uses --profile web:

dsh plugin --profile web add github:swaylq/dsh-digipet

After execution, restart dsh, then execute in any session:

/pet hatch

Typical Usage

Common commands are as follows:

/pet
/pet hatch
/pet evolve
/pet name <name>
/pet dex
/pet story
/pet about
  • /pet: View sprites, XP, hunger, mood, stats, and total feedings.
  • /pet hatch: Hatch the egg.
  • /pet evolve: Trigger the evolution ceremony.
  • /pet name <name>: Name the pet.
  • /pet dex: View the dex; unseen forms are displayed as ???.
  • /pet story: View the life summary.
  • /pet about: View mechanism explanation and trust stance.

Use Cases and Notes

Suitable for developers who want to use the plugin to assist in logging work events within a DSH session and view status/dex via commands like /pet or /pet dex. The plugin runs with the current dsh process permissions. Before installing, check the source code, package.json, and the MIT license, and confirm if the --profile web example fits the target environment.

Notes to be aware of:

  • One pet per DSH home; all profiles, sessions, and child agents on the same machine share it.
  • When multiple dsh processes run simultaneously, the last writer wins.
  • Tool classification relies on name regex heuristics; third-party tools with strange names may be treated as neutral fodder.
  • Evolution thresholds and recipes are not configurable.
  • Folded lines in the session stream will flatten the sprite into a single line; you need to expand the card to see the full version.
  • “Digimon” is a trademark of Bandai Namco; this project has no affiliation with them.

Conclusion

dsh-digipet turns real work turns, messages, tool calls, and errors into observable pet XP, while maintaining zero token usage and invisibility to the model. Repository address:

https://github.com/swaylq/dsh-digipet