DSH Hub

Tisitan/dsh-live2d-companion

dsh-live2d-companion

BundlePlay8 GitHub stars· updated 2026-08-24

dsh-live2d-companion is a community DeepSeek Harness plugin. Read the repository README before installing.

Install

npx @deepseek-ai/dsh plugin --profile web add github:Tisitan/dsh-live2d-companion

Restart `dsh web` after install. Bundle APIs can change during the developer preview.

README badge

dsh-live2d-companion DSH Hub badge
[![DSH Hub](https://dshhub.dev/badge/dsh-live2d-companion.svg)](https://dshhub.dev/plugins/dsh-live2d-companion)

Paste this into your README. The star count updates with every catalog sync.

From the README

Excerpt from Tisitan/dsh-live2d-companion, cleaned of badges and images.

Live2D 监控面板・看板娘桌宠(dsh-live2d-companion)

DeepSeek Harness(下称 DSH)的 Live2D 状态监控面板:把你喜欢的 Live2D 角色接进 DSH Web GUI,实时反映 AI 的工作状态——思考时歪头、工作时兴奋、等你确认时招手、闲着没事会打瞌睡,还能陪你下五子棋和国际象棋。不绑定任何特定角色:任何 Cubism 4/5 模型丢进 model/ 目录即可上岗(详见模型接入与绑定层)。

双形态:网页右下角挂件 / Windows 桌面桌宠(Electron 透明置顶窗口),同一份前端内核驱动。

另提供 standalone/ 独立运行入口:不启动 DSH 也能使用同一套桌宠渲染、模型面板、游戏中心和 Codex/OpenCode 状态联动(含 OpenCode 对局解说)。独立版仍不包含模型、Cubism Core、Electron 二进制或第三方角色 Prompt,详细许可边界与安装步骤见 standalone/README.md

特性

  • 🎭 AI 状态同步:订阅 DSH 会话事件流,8 态状态机(空闲/思考/工作/等待确认/报错/完成/睡眠/离线)+ 左上角状态灯(小灯+文字常显);多任务并行时每会话一枚独立任务灯(任务1·工作 / 任务2·待确认…),聚合主灯 + 分工小灯一目了然;任务完成后 6 秒转闲置、闲置 5 分钟自动收灯回收编号,会话复活自动重新上牌
  • 🖱️ 丰富交互:点击反应、双击卖萌、点击摸头害羞(划过不误触)、拖拽搬家、睡着点一下叫醒、缩放(挂件滚轮 / 桌宠 Ctrl+滚轮,拖拽期间自动锁定)、全局视线跟随(OS 层轮询光标,整屏追踪不限窗口)
  • 💬 气泡台词:15 个台词池 70+ 条,状态轮播、时段问候、加班焦虑、深夜关怀
  • ⚙️ 全配置化:台词/节奏/行为阈值都在 quips.json(官方默认);台词支持多预设可视化编辑(「词」按钮:另存为多份人设台词集、一键切换、池级恢复默认,保存即生效)
  • 🐾 桌面桌宠:透明无边框置顶、鼠标穿透(不挡操作)、位置记忆、随 DSH 启停(心跳看门狗)、面板内一键重启 / 双击确认退出
  • 🧩 多模型:任何 Cubism 4/5 模型丢进 model/ 目录即可接入;语义槽位 + 自动嗅探 + profile.json 绑定层,情绪表现零配置自适应
  • 🖼️ 模型面板:挂件旁静置自动隐藏的齿轮入口,扫描/切换/导入/预览模型,选择持久化,恢复默认无需改配置
  • 🔌 零侵入:对 DSH 本体零修改,纯用户级 cordis patch 层挂载,DSH 升级免疫
  • ♟️ 游戏中心:五子棋 / 国际象棋开箱即玩,本地引擎裁决 + 本地 AI 执子 + LLM 人格化解说,还有让模型亲自执子的「阿尔法狗」难度——详见游戏中心一节
  • 🫧 气泡优先级仲裁:0=状态轮播 1=对局解说/思考 2=物理互动/任务完成/报错——低级不抢高级,完成事件必达,对局闲聊压不住正事

架构

dsh 宿主进程
 └─ cordis patch 层(cordis.patch.yml insert 行)
     └─ index.js(宿主插件)
         ├─ prefix 路由 /live2d/*        → 静态资源(前端/模型/vendor)
         ├─ SSE  /live2d/state-stream    → session/event 白名单转发 + 聚合状态兜底
         ├─ exact /live2d/state|config   → 状态快照 / 模型配置
         ├─ exact /live2d/models         → 扫描 model/ 下全部模型(GET)
         ├─ exact /live2d/model          → 切换/恢复/删除模型并持久化(POST)
         ├─ exact /live2d/mode           → 显示模式切换:改写 cordis.patch.yml 本插件 config,热重载生效(POST)
         ├─ exact /live2d/import         → 上传模型文件(POST)
         ├─ exact /live2d/profile        → 绑定档案写/删(POST,白名单清洗)
         ├─ exact /live2d/quips          → 台词预设存/切/删(POST,写 quips-presets/)
         ├─ exact /live2d/quips-config   → 预设清单与生效指针(GET)
         ├─ exact /live2d/game/list      → 游戏目录(GET,游戏中心 chips 数据源)
         ├─ exact /live2d/game/models    → 模型目录(GET,llm.listModels 网关发现 + settings 兜底)
         ├─ exact /live2d/game/presets   → agent 预设清单(GET,喂对局面板下拉)
         ├─ exact /live2d/game/state     → 对局快照:注册表描述符 snapshot + busy/模式/难度/解说(GET)
         ├─ exact /live2d/game/new       → 开新局:本地引擎+本地 AI 执子;在线加建人格化解说 agent(零工具)(POST)
         ├─ exact /live2d/game/move      → 玩家走子→本地 AI 应手(阿尔法狗档=LLM 标签协议执子,非法重试/超时兜底本地 hard)→在线 LLM 解说(25s 超时 cancel+本地台词兜底)→响应同帧带 aiMove+解说(POST)
         ├─ tapIndex 注入 <script>       → 网页挂件(widget: false 可关)
         └─ spawn Electron 桌宠          → 随宿主启停(pet: false 可关);重挂载收养旧进程不闪断,退出延迟处死+宿主 exit 兜底防孤儿

…

Related plugins