Skip to main content

dsh-funpack

6Stars0Forks0Issues0Watchers

A lightweight entertainment plugin package that integrates casual entertainment features like praise, fortune prediction, Pomodoro timer, desktop pet raising, slack battle reports, Live2D, boss invisibility, and code garden into DSH Web chat.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki
Language
JavaScript
License
MIT
Branch
main
deepseek-harnessdsh-plugin

Install

cmdweb profile
$ dsh plugin --profile web add github:lvyuchuiyi/dsh-funpack

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin lvyuchuiyi/dsh-funpack for me: review the repository at https://github.com/lvyuchuiyi/dsh-funpack first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

One-Line Description

A "Fun Collection" plugin for DSH Web: hangs a row of one-click quick commands above the chat input box, providing over a dozen casual features including praise, fortune, reports, Pomodoro, AFK reminders, AI persona switching,养成桌宠, theme beautification, Live2D, Boss stealth, and code garden—turning chat gaps into playable mini-games.

Core Features

  • Provides casual/statistics commands like /praise /fortune /report /season /break /pet /feed /hug, with interaction counts recorded in reports and season scores
  • Provides /pomodoro [minutes] Pomodoro timer, default 25 minutes, supports 1-120 range, automatically accumulates focus minutes when finished; remaining time can be checked via /pomodoro-status, stopped via /pomodoro-stop
  • Provides /persona [key] to switch AI speaking style (default / big sister / little sister / abstract funny / Liangzi / Fengge), injects persona prompt segment via ctx.systemPrompt.section, automatically releases previous segment when switching
  • Provides /break-go to jump to AFK target (URL or local program path), opened by server-side call to cmd.exe start
  • Client renders a row of quick buttons above Web input box (Praise Me / Fortune / Report / Pomodoro 25 / Persona / AFK), with additional buttons for 🕶 Boss Stealth, 🎨 Beautify, Desk Pet toggle, etc.
  • Floats a raiseable desk pet in the bottom-right corner of the webpage, supports custom image/dialogue/interaction keys/favorability, includes two presets "Taffy" and "Senko", optional Live2D models

Technical Implementation

  • Language: JavaScript (ESM)
  • Key Dependencies: Zero runtime dependencies; server-side uses only Node.js built-ins node:fs/promises / node:url / node:child_process, client-side injects React components via window.__ModuleLoader__.load
  • Architecture: Single-file Cordis bundle plugin; cordis.patch.yml declares injection for id: funpack, package.json#dsh.bundle.patch specifies patch mount; server-side index.js registers 13 slash commands via ctx.commands.register, registers Taffy pet resource routes via ctx.webServer.register, injects persona via ctx.systemPrompt.section; client-side client.js loads via DSH browser plugin runtime
  • Entry Files: index.js (server-side) + client.js (browser-side, includes beautification panel, desk pet, code garden, etc. UI)

Use Cases

For people who want to add a bit of "small happiness" to their chats while using DSH—like drawing a fortune card before starting work, opening a Pomodoro while focusing on code and also planting a tree, or having the desk pet act cute when tormented by requirements. Suitable for casual players who want to make "AFK" visualizable and shareable; not suitable for users pursuing extreme simplicity or pure conversation functionality only.

Prerequisites and Compatibility

DependencyMin VersionNotes
DSHNot declaredNo dsh version constraint in package.json; mounted to web profile via dsh.bundle.patch
Node.jsNot declaredNo engines in package.json, but code uses ESM + top-level import, requires host Node support
PlatformCross-platform (client)Browser-side UI (desk pet, beautify, Live2D, code garden) works in browsers on macOS/Windows/Linux
/break-go commandWindowsindex.js:292 directly calls cmd.exe /c start, only works on Windows, fails on macOS/Linux
Native modulesNoneAll Node built-in modules and browser built-in APIs used, no third-party native dependencies

Installation

dsh plugin --profile web add github:lvyuchuiyi/dsh-funpack

Configuration Options

ConfigTypeDescriptionDefault
Desk Pet ToggleBrowser ToggleControls whether desk pet is displayed in bottom-right, can be hidden or summoned anytimeVisible
Beautify ThemeBrowser SelectionDeep Space / Sakura / Mint / Terminal / Paper White five color schemes, override CSS variablesDeep Space
Background Image & Fit ModeBrowser SelectionUpload GIF/PNG/WebP as background, options: stretch/fill/center/tileNo background
Background Opacity/Dark Mask/BlurBrowser SliderThree sliders control background opacity, mask depth, blur degree85% / 45% / 6px
Dynamic EffectsBrowser SelectionStar Rain / Raindrops / Sakura / Aurora / OffOff
Danmaku Style/Speed/Size/OpacityBrowser SelectionControls praise and fortune danmaku display styleNeon / Normal / Medium / 90%
Quick Button Order & VisibilityBrowser SortEach button can be individually toggled, use ↑↓ to reorderAll on, default README order
AFK Target URL/Program PathBrowser TextURL or local program path opened by /break-goEmpty
Boss-Key Program PathBrowser TextProgram auto-started in Boss Stealth modeEmpty
Desk Pet Image/Dialogue/Voice/FavorabilityBrowser Text & ToggleImage can upload GIF/PNG/WebP or switch Taffy/Senko preset; dialogue, interaction keys, TTS voice all editable in panelWhale Girl GIF + default dialogue
AI PersonaCommand Parameter/persona nee/imouto/abstract/liangzi/fengge/defaultdefault

All above settings are stored in browser localStorage, the plugin has no separate config file, environment variables, or DSH config items.

FAQ

Q: What is this plugin for?

A: Puts a row of one-click buttons above the DSH Web input box (praise, fortune, report, Pomodoro, persona, AFK, etc.), plus over a dozen casual features like raiseable desk pets, beautify themes, Live2D, Boss stealth, code garden—making chat gaps less monotonous.

Q: Do I need extra configuration after installation?

A: No. Just use the installation command. All personalization (desk pet image, beautify theme, favorability, achievements, etc.) is adjusted at runtime via the browser panel, state written to localStorage—no extra environment variables or config files needed.

Q: Can I use it on macOS or Linux?

A: Most client features are cross-platform, including desk pet, beautify, Live2D, code garden, achievements, seasons, etc. But the /break-go command directly calls cmd.exe start on the server side to open links—it only works on Windows; that command will fail on macOS/Linux, with errors printed to console.

Q: Where are report, season, achievement data saved? Will they be lost on refresh?

A: Client-side achievements, desk pet favorability, code garden, desk pet config are saved in browser localStorage, continue accumulating after refresh. But server-side stats from /praise /fortune /pomodoro /season etc. are only stored in memory Maps, reset to zero when DSH server restarts.

Q: How do I switch AI's speaking style?

A: Enter /persona nee (big sister), /persona imouto (little sister), /persona abstract (abstract funny), /persona liangzi (Liangzi), /persona fengge (Fengge), or /persona default (restore default) in the chat. Without parameters, it lists current persona and options.

Q: Does Live2D need internet?

A: Yes. Live2D first use pulls PIXI + Live2D runtime from CDN; model files load from your .model3.json link (Senko from community Live2D model collection). If loading fails, desk pet automatically falls back to original GIF image and shows error message.

Q: Does it conflict with official DeepSeek Harness features?

A: No conflict. Plugin mounts as Cordis bundle under web profile, only adds commands, systemPrompt segments, and static resource routes—doesn't modify DSH core code. /persona injects persona prompts via ctx.systemPrompt.section, releases previous segment before each switch, so it can be repeatedly switched without accumulation.

Q: How to uninstall?

A: Use DSH's own plugin removal command (specific command varies by DSH version). Plugin has no separate external process, no background service, no config files—after uninstall, keys starting with dsh-funpack- in browser localStorage can be manually cleaned up.

Learning Difficulty

Beginner — one installation command enables use, most used features are "click button" or "enter one command", all personalization via GUI panel, no need to read docs or edit configs.

Known Issues and Limitations

  • /break-go command hardcodes Windows cmd.exe /c start to open links (index.js:292), fails on macOS/Linux when calling execFile, console only prints [break-go error], no visible reason in UI
  • Server-side /praise /fortune /pomodoro /report /season etc. command stats all saved in memory Map (index.js:108), reset when DSH server process restarts, won't persist across sessions
  • Pomodoro default cap 120 minutes (Math.min(120, ...) at index.js:191), cannot split across days; stopping mid-way doesn't count toward completions (index.js:163-166 only accumulates when timer expires)
  • Desk pet, achievements, code garden, etc. client data depends on browser localStorage, lost when switching browsers or clearing cache, no cross-device sync
  • Live2D model first load depends on external CDN (PIXI + Live2D runtime) and .model3.json links, offline environment can only use GIF desk pets

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/lvyuchuiyi/dsh-funpack)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory