Skip to main content

How to use deepseek-pet

Adds a Live2D-style desktop pet to DeepSeek Harness Web: displays expressions and speech bubbles based on task status, context usage, and active session changes. Supports drag-to-zoom and action group configuration.

This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.

This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.

Quick start

deepseek-pet

— source: plugin_wiki.wiki_content

Install & verify

dsh plugin --profile web add deepseek-pet

Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.

— source: plugins.install

Key points

  • 角色上方用与 Pet 等宽的气泡轮播状态短句,并以单行横向打字机效果跟随最新输出;无任务活动时 10 秒后自动隐藏;
  • 角色下方用横条显示聚焦会话并以亮边标记,正在执行的会话向下排列,超过三个时自动层叠收起;
  • 多个会话并行执行时进入“忙疯了”状态;
  • 根据分析、回答、编码、网络搜索、子 Agent、完成和失败等场景切换表情;回答阶段轮换敲电脑、思考和认真核对等工作形象,思考阶段轮换不同状态标签;
  • 工具等待批准时,可直接在气泡中允许或拒绝;

— source: plugin_wiki.readme_en (fallback readme_raw)

FAQ

What can the desktop pet do?

A Live2D-style desktop pet character hangs in the bottom-right corner of the DSH Web page. It automatically switches expressions based on current task status, tool calls, context usage, and active sessions; above the character, a monospaced bubble carousel displays status text with a single-line horizontal typewriter effect following the latest reply/thinking; below the character, it shows the focused session and concurrently executing sessions; after 10 minutes of idle, it displays "肚子饿了" (I'm hungry), after 30 minutes it displays "抱着枕头犯困" (sleepy with pillow), after 1 hour it displays "已经睡着了" (fell asleep). src/client/DeepSeekPet.jsx:84-486 / src/client/pet-state.js:37-78 / README.md:11-32.

How does it 'see' images? Why does it show 'cannot see' when sending images?

Since the DeepSeek model itself doesn't support visual input, when the plugin detects that the most recent human input contains image attachments, it switches the pet to a "blind" state and displays "图片暂时看不见" (Cannot see images temporarily). This is expected behavior, not a bug. src/client/pet-state.js:81-91 / src/client/pet-presentation.js:11.

Where is data stored? Will deleting the plugin lose it?

All pet preferences are stored in browser localStorage: position (deepseek-pet:position), scale (deepseek-pet:scale), last activity time (deepseek-pet:last-activity), display mode (deepseek-pet:display-mode), enabled reaction image set (deepseek-pet:enabled-reactions). These keys persist after uninstalling the plugin, but can be immediately resumed after reinstalling; the plugin itself doesn't write local files or upload any data. src/client/DeepSeekPet.jsx:22-25、560-575 / src/client/pet-display.js:18-19、44-52 / src/client/pet-reactions.js:3-4、64-71.

How to change the pet's display position? What's the relationship with 'page always on top'?

The default pet displays in the bottom-right corner of the page. The settings panel (Pet Settings) provides "Display Mode": Default = renders within the current application interface layer; Page Always On Top = fixed to the bottom-right of the viewport, floating above all page content (including settings popups). Both are pure in-page presentations, not opening new windows or tabs. src/client/pet-display.js:21-32 / src/client/DeepSeekPet.jsx:482-486 / src/client/styles.js:29.

How to customize which action images are randomly selected?

The settings panel (Pet Settings → Action Images) allows checking which images to enable for 8 action groups (Idle / Thinking / Executing Tools / Replying / Task Success / Waiting for Interaction / Error & Apology / Eating), with at least one image per group. The switching order is determined by cumulative duration of that action, so it won't randomly jump images due to re-rendering; you can click "Restore Defaults" anytime to restore all. src/client/pet-reactions.js:15-44、141-151 / src/client/DeepSeekPetSettings.jsx:48-83 / README.md:25.

How to interact with the desktop pet? What can it do?

Drag the character = adjust position; hover over character and scroll mouse wheel = zoom in range 65%~140%, size is remembered; single-click = trigger short phrase feedback matching current state; double-click or click "−" button = minimize to static icon in bottom-right corner; click the session bar below = switch to that session. src/client/DeepSeekPet.jsx:367-414、434-438、463-465 / README.md:111-117.

Will the pet prompt when context is almost full?

At 62% context usage, it displays "还可以再吃一点" (Can eat a bit more) - switches to eating group; at 82% it displays "上下文吃饱了" (Context is full) - switches to full state. These two thresholds are hardcoded in the source code and cannot be changed in the UI. src/client/DeepSeekPet.jsx:500-501.

Will it get 'overworked'? How is that defined?

When 3 or more sessions are executing simultaneously (including the focused session), the pet switches to an "overworked" state, with expressions stably alternating between "working" and "white rice"两组图片 based on cumulative duration; when there are more than 3 concurrently executing sessions, the session list below automatically stacks and collapses, and when exceeding 7, it shows "+N sessions" summary at the bottom. src/client/DeepSeekPet.jsx:499 / src/client/pet-presentation.js:15-17 / src/client/DeepSeekPet.jsx:471-474.

Will the pet's image resources be cleared after uninstall?

This plugin embeds all 28 expression images and 3 frame images as base64 WebP directly in lib/client.js (~1.5 MB), with no external resource files, so there are no missing image issues; after uninstalling the plugin, these images are removed along with lib/client.js. src/client/assets.generated.js / scripts/embed-assets.mjs:7-43 / README.md:121-129.

— source: plugin_wiki.faq_json

Compatibility

  • DSH: 未声明(package.json 无 dsh.engines;peerDependencies 全部用 '*',仅 dsh.client.inject 声明需 @deepseek-ai/dsh-client-runtime 与 @deepseek-ai/dsh-client-ui-layout,见 package.json:13-24、52-65)
  • Node: >=22.19(package.json:77-79 engines.node)

— source: plugin_wiki.compatibility_json

Pitfalls

Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.

— source: general rule