DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-screen-beyond

d

dsh-screen-beyond

Identified★ 1

Beyond the Screen · Your AI Companion on the Other Side of the Screen (DSH Plugin; Pure Chat Mode Can Run Independently Without DSH)

屏幕彼端 · dsh-screen-beyond

住在屏幕彼端的ta。她有自己的虚拟屏幕和安卓手机、有自己的生活作息、记忆和日记,会聊天、会想找你、会花钱,也会心疼你的 token。

三种运行形态,先分清:

  • 纯聊天版:不装 DSH、不装虚拟机;Node 18+ + API Key,浏览器直接用。
  • 完整版 · DSH 分支:作为 DSH 插件安装,不装虚拟机也能用;聊天、识图、图片回复、记忆、日记、生活、地图/舞台、桌宠、设置/备份都有。
  • 完整版 · 虚拟机分支:在 DSH 分支上再装 VirtualBox 虚拟屏幕 + Android 模拟器;只新增她自己的 Linux 屏幕和安卓手机。

识别/生成图片不需要虚拟机:识图、图片回复、聊天、记忆、地图、舞台、桌宠都不依赖虚拟屏幕或模拟器;只有屏幕/手机功能需要环境。识图是否可用取决于模型/图片 API。

⚠️ 早期版本:可能还有一些奇怪的小 bug,欢迎反馈,见谅。


0.7.13 更新

  • npm 0.7.12 发布时 npm 侧进入 staged 状态,版本不可见且无法重发;本次用新版本号完成 npm 发布。
  • 功能与 0.7.12 相同:虚拟机冷启动、先查消息再行动、消息回写、角色级去重。

0.7.12 更新

  • 虚拟机聊天冷启动:
    • 唤醒后自动打开社交软件(setsid 后台启动,SSH 断开不会被杀)
    • 应用启动参数按兼容配置处理,不绑定单一软件
    • 检测到扫码验证/登录页时返回 requiresLogin,不乱发消息
  • 主动消息前先检查消息:
    • 检查最近消息 → 有需要就先回 → 再处理主动消息
  • 应用检测改为只认可见窗口,避免隐藏小窗口被误认为聊天窗口。
  • 消息回写按角色去重,切换角色不会串。
  • 应用默认启动、窗口检测、分辨率读取改为动态获取。
  • 文档补充冷启动和登录验证说明。

0.7.11 更新

  • 修复虚拟机聊天消息不同步到插件聊天页:
    • 主动消息不再以 hidden 写入,聊天页可见
    • 看消息检查到的用户消息和自动回复会回写聊天页
    • 用 lastUserText 去重,避免同一句反复写入
  • 检查回复直接复用当前聊天窗口的输入框坐标,不再二次分析导致发送失败。
  • 多模态识别增加短提示重试,降低“AI 没看懂屏幕”的概率。

0.7.10 更新

  • 新增虚拟机社交软件通道基础版:
    • 主动消息可优先走虚拟机
    • 自动唤醒 DSH-Space
    • 动态检测虚拟机里的社交软件,不写死 QQ
    • AI 看截图选择软件、检查消息、找输入框
    • 看消息开关:唤醒后先检查是否有找自己的消息
    • 检查间隔、发完自动存档关闭
    • 失败回退插件聊天页
  • 新增 /api/vm-chat/settings|status|wake|check|send。
  • 文档:docs/VM-CHAT.md。

0.7.9 更新

  • 修复同地点头像分开按钮未把“当前角色”计入分组、按钮不显示的问题。
  • 当前角色和其他同处角色会一起分组计算,非当前角色按分组位置横向偏移。
  • 场景编辑器补齐 3D 视图/模型路径字段。
  • 看屏幕/图片消息策略:
    • 只描述看到什么,不直接替用户回答或操作。
    • 用户只发图不说话,先描述,再问怎么了。

0.7.8 更新

  • 看屏幕/图片消息行为调整:
    • 瞥屏幕时只描述看到什么,不直接替用户回答、不操作,等用户后续接话。
    • 用户只发图片不说话时,先具体描述看到了什么,再问“怎么了/发生什么了”。
  • 地图同地点头像分开:
    • 多个角色同地点时头像默认横向展开
    • 地图页新增「👥 分开头像 / 收起头像」按钮
  • 内部场景 3D 接口:
    • 场景支持 mode: "3d"、model3d
    • 客户端暴露 window.DSH_SCENE_3D.register(fn)
    • 没有注册渲染器时显示接口提示,不影响 2D
  • 场景编辑器新增 2D/3D 切换和 3D 模型路径。

0.7.7 更新

  • 修复车站“显示等待/晚点”和实际购票时间不一致:购票会沿用按钮上显示的等待/晚点。
  • 修复场景画笔层盖住顶部按钮,导致画障碍/可走区域后无法点“关闭”“完成布局”的问题。
  • 修复在地图页调整主动发图概率时,只改场景设置、没有同步后台生活发图概率的问题。
  • 完成 0.7.6 之后的回归检查:服务端语法、页面脚本、API、场景资源、浏览器页面无报错。

0.7.6 更新

  • 车站班次与晚点:
    • 长途汽车约 30 分钟一班、高铁约 60 分钟、飞机约 120 分钟
    • 购票显示下一班等待时间和随机晚点
    • 等待/晚点时间会算入到达时间并写进报备
  • 可走区域画笔:
    • 场景顶部「🚶 可走」
    • 拖框画出可走区域,寻路只在区域内走
  • 聊天图片真实参考图:
    • 角色照片类事件把 avatar.bin 作为 Base64 image 参考图传给 Seedream
    • 已验证生成图角色外观一致

0.7.5 更新

  • 聊天图片真实参考图约束:
    • 角色照片类事件会把 avatar.bin 以 image Base64 参考图传给 Seedream
    • 不再是纯提示词约束
    • 食物/风景等不需要角色的图不会强行塞角色参考
  • 可走区域画笔:
    • 场景顶部「🚶 可走」
    • 拖框画出可走区域
    • 寻路只在可走区域内进行
    • 同时支持 scene.walkable JSON
  • 车站购票 UI 已接原有票价、耗时和钱包。

0.7.4 更新

  • 车站购票 UI:
    • 地图页「🚉 车站」
    • 显示目的地、距离、长途汽车/高铁/飞机、票价、耗时、余额
    • 购票后走长途,到站后角色才过去
  • 障碍可视化画笔:
    • 场景顶部「🧱 障碍」
    • 在场景里拖框添加障碍
    • 点已有障碍删除
    • 仍兼容 scene.obstacles JSON
  • 聊天图片角色约束:
    • 生成前读取角色 meta.appearance / identity / persona 外观
    • 提示词要求画面中的角色保持同一外观、发型、发色、脸型
    • 仍不是真正的图像参考图输入,属于提示词级约束

0.7.3 更新

  • 跨地图生活:AI 可以选择其他地图的地点,走一段长途时间;到点后更新角色所在世界。
  • 路径与碰撞基础版:
    • 场景内用网格 A* 寻路
    • 热点周围默认视为家具障碍,可绕开
    • 支持 scene.obstacles 自定义障碍矩形
    • 其他角色也作为临时障碍
    • 客户端按服务端返回的路径逐点移动
  • 聊天图片链路已实际验收:
    • 事件生成配图
    • 图片写入聊天消息
    • 聊天页正常显示
  • 地图设置支持障碍 JSON 编辑。

0.7.2 更新

  • 生活状态扩展到所有角色,不再只处理当前角色。
  • 地图内部场景改为读服务端生活状态:位置、行为、到点时间由后台统一驱动。
  • AI 可以在同一张地图里选择下一个地点和热点,行为结束自动推进。
  • 多角色在同一地点会产生相遇事件:
    • AI 判断要不要告诉用户
    • 写入生活记忆
    • 可发到当前角色聊天页
  • 角色之间做基础位置避让,避免叠在同一坐标。
  • 场景中拖动角色会把位置同步到服务端生活状态。
  • 后台生活设置补齐:开关、消息间隔、每日上限、免打扰。

0.7.1 更新

  • 新增服务端后台生活模拟基础版:
    • 每个角色的行为、地点、结束时间、精力会持久化到 life-state.json
    • 即使不打开地图,也会按时间推进
    • 行为结束节点由 AI 决定下一步行为、时长和是否主动找用户
    • AI 返回事件判断:值不值得说、说什么、要不要图、记什么
    • 主动消息写入聊天页,可带图
    • 生活事件写入 life-memory.json
  • 地图设置新增后台生活开关、消息间隔、每日上限、免打扰、当前生活状态。
  • 当前阶段先做“当前地点内的生活模拟”;跨地点移动、路径碰撞、多角色社交在后续阶段接。

0.7.0 更新

  • 场景内角色不再按固定 7 秒移动,而是按当前行为和真实时间决定停留时长:
    • 睡觉:夜间 6–9 小时;白天补觉 1–2 小时
    • 看书 30–90 分钟
    • 写作业 45–120 分钟
    • 吃饭 20–45 分钟
    • 喝咖啡 30–60 分钟
    • 看手机 15–45 分钟
    • 看看 3–10 分钟
    • 发呆 10–30 分钟
  • 热点增加行为字段(sleep/read/study/eat/coffee/phone/look),不填则按热点名字推断;用户可在内部场景编辑里改。
  • 角色在场景内会自己走向热点,点热点会走过去;顶部「布局」可拖动角色和热点。
  • 多角色同图:同一地点的多个角色会各自按行为停留/移动。
  • 主动发图概率改成可调节滑杆(0–100%),主动消息按该概率附图;未配置照片时可尝试 AI 生成。
  • 地图页「看其他地图」只读预览,可一键直接过去,不用长途。
  • 版本升为 0.7.0。

0.6.8 更新

  • 新增「多角色同图」基础版:地图上显示同图其他角色的头像图钉和角色列表;可查看状态、切换角色、切换并打开聊天。
  • 同一地点时,聊天提示词会加入「这里还有:xxx」,让当前角色知道其他角色在场。
  • 地点交互:点击地点钉打开详情卡,显示描述、感受、当前在场角色,可直接「让她来这里」。
  • 地点内部基础版:地点可配置 scene.background / hotspots,地图页可进入内部场景查看背景、在场角色和热点。
  • 内置小鱼镇 13 个地点的 AI 绘制「星露谷式俯视」内部场景图,打开地点即可进入。
  • 地点列表新增「内部场景」编辑入口:可上传/填写背景图、编辑热点、填活动照片;保存时会保留 scene 数据。
  • 场景内角色可悬浮查看当前活动(AI + 本地缓存,低频调用),并提供「和她说话」入口,聊天提示词会带上当前场景/热点。
  • 场景内角色可以自由拖动摆放,位置保存到该地点的 scene.characters;内部头像改为图覆盖、不再叠名字首字。
  • 角色在场景里会自己走动(约 7 秒换一个热点),点热点会走到热点旁;顶部「✏️ 布局」可拖动热点。
  • 场景活动 AI 可在右侧地图设置里开关;开启时全局至少间隔 5 分钟、同角色/地点/热点缓存 10 分钟。
  • 地图页新增「👁 看其他地图」预览:不移动角色即可查看其他地图和 13 个地点;预览里可「让她直接过去」,不用走长途。
  • 主动消息会结合当前场景;配置活动照片时 25% 概率附图(90 分钟冷却),未配置时可尝试 AI 生成一张(15% 概率,需开启图片反馈)。
  • 主动消息可结合当前场景自然提起正在做的事;配置了活动照片时,有低概率随消息附图,带 90 分钟冷却。
  • GET /api/world/characters 返回所有角色的地图/地点/坐标/同图/同处状态。

0.6.7 更新

  • 左侧栏图标替换:从笑脸改为「手机 + 星星/微光」,更贴合「她住在屏幕另一边」。

0.6.6 更新

  • 侧栏标签页改为懒加载:只有打开过的标签才创建 iframe,之后保留不重载。
  • 新增全局单例 /api/status 轮询:所有挂载点共享,页面隐藏暂停,payload 不变不通知。
  • 运行时发现改为共享缓存,运行时异常时自动重置并重新发现。
  • 桌宠切换角色延迟:余额刷新改为后台执行,角色轮询从 700ms 缩短到 300ms。
  • 不引入常驻 iframe 宿主,保持 0.6.4 的页面结构和视觉。

0.6.5 更新

  • 恢复 0.6.4 的侧栏 + 主区域 UI,不再使用 0.7.0 的原生会话视图。
  • 保留并接入新的宿主半:版本从磁盘读取、运行时健康状态、自动发现、异常退避重启、卸载清理。
  • 修复旧客户端使用不存在的 DSH 主题变量导致亮色模式样式异常的问题。
  • 数据层、Revision、手机端地基与 0.6.4 保持一致。

0.6.4 更新

  • 新增数据层:JSON 写入改为临时文件替换,降低写坏文件风险。
  • 关键实体加入 revision:消息、记忆、日记、人设正文、角色元数据、地图、地点、道路、位置、经济、生活、头像。
  • 新消息/记忆增加稳定 uid;历史数据在加载时补齐并落盘。
  • 新增本机只读接口 /api/data/revisions。
  • 人设、地图、记忆导入/置顶/删除支持可选的 expectedRev:版本不一致返回 409,防止旧页面覆盖新改动。
  • 手机端地基继续保留:设备身份、事件日志、受令牌保护的 /api/sync/*。

0.6.3 更新

  • 桌宠换角色兜底:角色切换后桌宠形象会跟着更新。
  • 桌宠充值余额刷新:不再长期显示旧余额。
  • 桌宠看屏幕时能认出屏幕上的桌宠/聊天头像/舞台角色都是自己。
  • 交通工具状态按实际方式显示(飞机/高铁/步行),不再一律说“坐车”。
  • 新增手机端地基:设备身份、追加式事件日志、受令牌保护的 /api/sync/*;详见 docs/MOBILE-SYNC.md。
  • 备份/恢复包含 sync/。
  • 清理了可能重复运行的旧服务实例问题。

0.6.2 更新

  • 修复「推理等级」点了没反应:现在点选会立即保存。
  • 修复设置页头像不显示(主题样式覆盖了背景尺寸)。
  • 舞台顶部改为实时数据:用户实时余额 + 今日已用 token + 预算剩余。
  • 「看屏幕」不再把 (桌宠按钮)... 当成可见用户消息塞进聊天。
  • 新增 设置 → 环境 → 👀 自己看你的屏幕 开关;默认关闭,约 20–40 分钟一次;不需要虚拟机,只要求 DSH 桌面内核和电脑权限。
  • 说明文档区分三种形态:纯聊天版 / 完整版 · DSH 分支 / 完整版 · 虚拟机分支;识图、图片回复不需要虚拟机。
  • 补上默认主题文件,消除页面 /theme.css 404。

0.6 第一批更新

  • 记忆导入:设置 → 记忆 → 导入记忆,支持 txt/md/json/jsonl,自动拆句、去重、合并。
  • 图片反馈:她会在聊天里发图(send_image),支持火山 Seedream / OpenAI 兼容 / 自定义 HTTP。
  • 示例角色小鲸:鲸鱼娘外观重做,默认头像内置,人设更完整。
  • 界面:聊天/设置/地图/舞台等页面统一了一轮柔和的深色海面视觉。
  • 开放接口:语音、服装、地点内部场景的契约见 docs/INTERFACES.md。
  • 明确不做:每角色独立屏幕。所有角色共享同一套屏幕/手机;技术原因见 docs/SCREEN-ISOLATION.md。

三种运行形态

虚拟机和安卓模拟器只是可选环境,不是完整版的全部,也不是识图/图片回复的前置条件。

能力纯聊天版完整版 · DSH 分支完整版 · 虚拟机分支
聊天、人设、记忆、日记、生活✅✅✅
发图、识图、图片回复✅(取决于模型/图片 API)✅(取决于模型/图片 API)✅(取决于模型/图片 API)
地图、2D/3D 舞台、桌宠、设置、备份✅✅✅
DSH 侧栏 / DSH 宿主联动❌✅✅
她自己的 Linux 虚拟屏幕❌❌✅(VirtualBox)
她自己的安卓手机❌❌✅(Android 模拟器)
  • 纯聊天版:不装 DSH、不装环境;任何设备都能跑,不占虚拟机资源。
  • 完整版 · DSH 分支:作为 DSH 插件安装;不装虚拟机也能聊天、识图、发图、记事、看地图/舞台、用桌宠。插件只是检测不到环境时关闭屏幕/手机工具。
  • 完整版 · 虚拟机分支:在 DSH 分支上增加 VirtualBox 虚拟屏幕和 Android 模拟器,只新增她自己的屏幕和手机;识图/图片回复仍然不经过虚拟机。

功能

  • 人设卡:名字、称呼、关系、性格滑块、头像、Live2D/3D 模型、年龄、驾照、出行偏好;可多角色,各自独立记忆/日记/聊天记录。
  • 记忆:自己记重要的事,带遗忘(半衰期)、强化、置顶、归档;可手动增删改、调遗忘速度。
  • 日记:每天一篇,她能自己读给你听。
  • 生活:自己的作息表、活动池、心跳、安静时段、智能安排(按天气/体力/记忆调整)。
  • 聊天:文字 + 图片(她能看懂)、逐字流式、她可以主动找你;顶部显示剩余 token / 今日已用(悬浮看明细)。
  • 无括号模式:开启后她说话不再用括号表示动作/表情(设置 → 模型 → 聊天风格)。
  • 地图 + 舞台:地点可拖拽/增删/导入、自绘道路、2D 底图、3D 模型(.glb/.gltf)、2D/3D 舞台切换。
  • 出行:按年龄/驾照/体力/天气/钱自己选交通方式;未成年夜间出门要确认并报备;跨城长途。
  • 天气日夜:手动或真实定位天气,雨/雪/风/热/冷特效,可自己上传素材替换;日夜自动切换。
  • 经济:虚拟货币(初始余额/每日零花/时薪/饭钱/娱乐)或 Token 实时代币(钱 = 剩余 token,汇率可设);余额和剩余 token 在聊天、地图、舞台、设置里都能看到。
  • 自己的环境:屏幕 / 手机 / 你的电脑三种工具;权限分「关闭 / 仅鼠标键盘 / 代码控制」;一键启动/关闭环境、内存占用提示、她自己能否开机的开关、危险操作确认。
  • 给开发者:GET /api/stage 状态 JSON、GET /api/stage/stream SSE,可自己写渲染器(Live2D / 3D / 自绘地图)。
  • 手机端地基:已有设备身份、追加式事件日志和受令牌保护的 /api/sync/* API;这是以后多端同步的基础,当前还没有手机客户端和合并功能。详见 docs/MOBILE-SYNC.md。

安装

当前版本:0.7.13。

纯聊天:独立运行(不需要 DSH)

需要 Node.js 18+ 和一个 DeepSeek API Key(也可在启动后的 设置 → 模型 里填)。

  1. 解压本包到任意目录
  2. Windows 双击 start-pure-chat.cmd;Linux/macOS 运行 sh start-pure-chat.sh(或命令行运行 node runtime/server.mjs)
  3. 浏览器打开 http://127.0.0.1:8900/

此时聊天、人设、记忆、日记、生活、地图/舞台、发图/识图都可以用;她的虚拟屏幕和手机需要 DSH + 环境,跟识图/图片回复无关。 纯聊天模式在聊天页顶部会显示「🧩 聊天模式」;它不依赖 DSH/虚拟机,可以独立运行。

完整版 · DSH 分支:作为 DSH 插件安装(不需要虚拟机)

插件依赖 DSH 0.2.x(桌面/网页均可)。这一分支不要求 VirtualBox/模拟器;装好后聊天、识图、图片回复、记忆、地图/舞台、桌宠都能用,只有虚拟屏幕/手机工具会显示未启用。

# 从 npm 安装(已发布)
dsh plugin --profile <profile> add dsh-screen-beyond

# 或从本地目录安装
dsh plugin --profile <profile> add link:<插件目录>

装好后重启一次 DSH,左侧栏出现「屏幕彼端」。

安装完成后第一次打开是「完整版 · DSH 分支」,可直接用;不装虚拟机也能聊天、识图、发图。想要她自己的屏幕/手机,再看下面的「环境」。

模型兼容性(请先看)

本插件只验证过 DeepSeek 模型(默认 deepseek-flash)。换用其它 OpenAI 兼容模型时,工具循环、reasoning_content 回传等细节可能不兼容,可能表现为工具调用失败、报 400 或回复异常——这部分我们不做适配,也不承诺可用。

桌宠(桌面上的她)

设置 → 生活 → 「🐾 桌宠」开启后,桌面上会出现一个置顶的小桌宠:

  • 默认形象 = 她的头像;设置 → 生活 →「换形象」可以传自己的 PNG/JPG/WebP,也可以直接编辑 pet.json 的 image(支持本地路径或 URL)
  • 显示大致状态:她在哪、在干嘛、精力怎么样,5 秒刷新一次;下方显示剩余 token / 今日已用(悬浮看完整数字)
  • 和她说话:点 💬 打开小聊天窗(或右键 → 和她说话)
  • 看你的屏幕:点 👀(或右键 → 看看我的屏幕),她会用 pc 工具看一眼你的屏幕再回你
  • 摸头/戳一戳:默认有「摸摸头」「戳一下」两个区域;点她会发一句提示给她,她会有反应(回复会显示在桌宠气泡里)

个性化(不会锁死)

桌宠的行为写在数据目录的 pet.json(完整示例:runtime/pet/pet.example.json):

{
  "image": "avatar",
  "size": 180,
  "gestures": [
    { "id": "pat", "label": "摸摸头",
      "hit": { "x": 0.15, "y": 0.08, "w": 0.7, "h": 0.42 },
      "prompt": "(你摸了摸她的头)", "bubble": "唔…" }
  ],
  "buttons": [
    { "id": "chat", "label": "💬", "action": "chat" },
    { "id": "look", "label": "👀", "action": "look" }
  ]
}
  • hit 是相对图片的命中区域(0~1),换自己的桌宠形象后可以按自己的图重新画区域
  • prompt 会作为一条用户消息发给她;bubble 是立刻显示的短文字
  • buttons 里支持 chat / look / prompt(自定义一句 prompt);想加“喂糖”“搓一搓”都只改 JSON,不用改代码

环境(可选,只用于虚拟屏幕/手机)

只支持 Windows(桌面自动化用到 Win32)。需要:

  1. VirtualBox + 一个 Linux 虚拟机(Debian 桌面版,建议 8G 内存 / 40G 磁盘),SSH 转发到本机 2222,用户 dsh,密码 DshSpace2026(可在插件配置里改)
  2. 虚拟机内:x11vnc + websockify(noVNC),宿主机端口 6081
  3. 安卓模拟器:Android AVD,推荐 Android 16 / API 36、1080×1920(示例叫 DSH_Phone),adb 可用。目前只验证过这个 AVD,真机未适配;Waydroid 也能跑但截图慢,不推荐

虚拟机/模拟器都开着会占内存(屏幕约 26 GB、手机约 24 GB)。设置 → 环境 里有一键启动/关闭和内存提示;「她自己能开机」关掉(默认)时,她不会自己启动环境。

✅ 设置 → 环境 → **「开始自检」**会逐项检查:辅助脚本、Python(paramiko)、VirtualBox、虚拟机、SSH/VNC、模拟器、ADBKeyboard、ffmpeg,并给出缺什么。

📦 插件包自带 runtime/env/ 模板脚本和 ADBKeyboard.apk;如果本机没有 D:\dsh-env,会自动用随包目录。路径因机器而异,必要时用 DSH_COMPANION_ENV / DSH_COMPANION_PY / DSH_COMPANION_ADB / DSH_COMPANION_ANDROID_SDK / DSH_COMPANION_EMULATOR 覆盖。

⌨️ 手机中文输入:手机开机后,设置 → 环境 → 「安装 ADBKeyboard」 一键装好并切换到该输入法;没装时只能输入英文/数字。

详细图文步骤见插件内 设置 → 教程,或直接打开运行时页面 http://127.0.0.1:8900/(默认端口)。

配置

cordis.patch.yml:

- insert:
    - id: dsh-screen-beyond
      name: dsh-screen-beyond
      config:
        port: 8900                 # 运行时端口(被占会自动 +1 找空闲)
        autoStart: true            # 是否自动拉起运行时
        # dataRoot: 'D:\你的数据目录'   # 可选;默认 %USERPROFILE%\.dsh-companion
        # envDir: 'D:\dsh-env'      # 可选;虚拟屏幕/手机辅助脚本所在目录

也可以不改安装包,直接在本机放一个覆盖文件 %USERPROFILE%\.dsh-companion.json:

{ "dataRoot": "D:\\你的数据目录", "envDir": "D:\\dsh-env" }

运行时/宿主会自动读取它(优先级低于插件配置里的显式值)。dataRoot 下结构:

<dataRoot>/
  config.json
  data/characters/<角色id>/{meta.json, persona.md, messages.json, memory/, diary/, routine.json, state.json, wallet.json, visits.json, avatar.bin}
  models/        # 导入的 2D 底图/地点图/3D 模型
  data/screens/  # 截图缓存

备份:设置 → 数据 → 立即备份(或 scripts/backup.ps1),备份落在数据目录的 backups/ 下;恢复用 scripts/restore.ps1 -BackupDir <备份目录>。

运行时页面

运行时是一个独立 Node 服务(默认 http://127.0.0.1:8900):

  • / 聊天 · /map 地图 · /stage 2D 舞台 · /model 3D 舞台 · /settings 设置 · /screen 看屏幕
  • 快捷键:聊天页 Alt+S 打开看屏幕

给开发者

  • 聊天:POST /api/chat {text, images?};事件轮询 GET /api/events?since=;逐字流 GET /api/stream
  • 状态:GET /api/stage、GET /api/stage/stream
  • 记忆/日记/地图/经济/环境等 REST 接口见插件内教程「给开发者」一节或运行时源码 server.mjs

测试

tests/ 是开发时用的自动化脚本(需要运行时在 8900 跑着,且会消耗少量 token):

python tests/full_test.py     # 页面/API/出行/经济/地图/记忆/日记/角色
python tests/full_test2.py    # space/phone/pc 工具与屏幕接口
python tests/her_test.py      # 让她自己测:space/phone/pc/记忆/日记/花钱/code

已知限制

  • Windows only(屏幕/手机/电脑工具);纯聊天版跨平台。
  • 手机适配:只验证过 Android 16 / API 36 的 AVD DSH_Phone(1080×1920);真机/其它安卓版本未测试。
  • 手机中文输入通过 ADBKeyboard 广播实现(插件里可一键安装);没装时只能输出英文/数字。
  • 旧版 Waydroid 的截图可能很慢,推荐用安卓模拟器。
  • 3D 舞台内置 three.js,性能取决于显卡;卡就先用 2D。
  • reasoning_effort 等模型参数依 DeepSeek API 可用性而定。
  • 模型兼容性:只保证 DeepSeek;其它 OpenAI 兼容模型未测试、不做适配。
  • 环境辅助脚本模板在 runtime/env/,但里面的虚拟机名/SDK 路径需要按本机情况修改;可以先跑「环境自检」看缺什么。
  • 默认数据目录是 %USERPROFILE%\.dsh-companion;升级/重装插件不会覆盖这里。

许可

MIT(插件代码)。示例角色/素材如需二次分发请保留原作者署名:默认人设卡「小鲸」为本项目原创示例;历史示例「大肥鱼」来自 dsh-persona-dafeiyu(MIT,作者 huaizhuanghub)。

开发者入口

  • GET /api/stage:角色状态 JSON
  • GET /api/stage/stream:SSE 状态流
  • 市场简介见 STORE.md

早期版本说明

这是刚发布的第一版,功能很多、环境组合也很多,难免还有一些奇怪的小 bug。 遇到问题欢迎带日志反馈;给我一点时间,会慢慢修。谢谢包容。

Comments

Loading…