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