dsh-scrcpy-core

DSH PLUGIN视觉与多模态

仓库 ns-zzj/dsh-scrcpy-core · npm @nszzj/dsh-scrcpy-core

视觉与多模态 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH 投屏控制的共用核心插件,提供设备列表、投屏面板与截图、点击、输入等 AI 控制工具,需搭配平台 provider 使用。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 2 复刻 0 · 未关闭 issue 0
最近更新 2026-09-30 创建于 2026-09-29
README 8.6 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:ns-zzj/dsh-scrcpy-core#1.0.2
兼容 DSH 版本0.2.0-rc.2版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/dsh-tools@>=0.1.5-0需要同时安装的同级依赖
npm 包名@nszzj/dsh-scrcpy-core可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-scrcpy-core:DeepSeek Harness 里统一手机投屏与 AI 操控的核心层

  • 按平台分组的设备列表
  • 每设备独立投屏标签页
  • 截图识别与控件定位
  • 点击按键输入等 AI 工具
  • 四项权限三态门禁

适用场景

视觉识别

上游标签

deepseek-harnessdshdsh-pluginscrcpyscreen-mirroringvision

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

视觉与多模态
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方ns-zzj仓库 dsh-scrcpy-core · 默认分支 main
分类视觉与多模态vision
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue2 / 0 / 0收录时的数值,非实时
创建 / 更新2026-09-29 · 2026-09-30最后推送 2026-09-30
本站收录2026-09-30首次进入本站目录的时间

README 全文

8.6 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-scrcpy-core

DSH 的 scrcpy 共用核心 —— 对用户、对 AI 都只有这一个门面。

它自己不认识任何平台:鸿蒙、安卓各由一个 provider 包提供"这类设备怎么说话"。

包 作用
@nszzj/dsh-scrcpy-core(本包) 投屏面板 UI、每设备一个标签页、jmuxer 解码、AI 工具、提示词、权限门禁、设备与聚焦状态、命令路由
dsh-hos-scrcpy 鸿蒙 provider:hdc 传输 + Java sidecar(HOScrcpy SDK)
dsh-android-scrcpy 安卓 provider:adb 传输 + 官方 scrcpy-server

provider 不注册 UI、不注册 AI 工具、不写 AI 提示词、不关心"当前聚焦哪台" —— 那些全在 core。


安装

桌面端(0.1.7,当前主力)

dsh plugin --profile desktop … 会被 CLI 拒绝:

error: profile "desktop" is managed exclusively by the Electron application

必须走应用内的插件面板。面板接受三种形式:

  • npm 包名(core 是 @nszzj/dsh-scrcpy-core;鸿蒙是 @nszzj/dsh-hos-scrcpy;安卓是 @nszzj/dsh-android-scrcpy)
  • 本地 tgz 路径(例如 nszzj-dsh-scrcpy-core-1.0.0.tgz)
  • github: 规格(例如 github:ns-zzj/dsh-scrcpy-core)

要装两个包:core + 你要的平台 provider。

命令行(web 等 profile)

dsh plugin --profile  add dsh-scrcpy-core dsh-hos-scrcpy      # 或 dsh-android-scrcpy

然后重启 dsh web,会话右上角出现「scrcpy 菜单」即成功。

三件必须知道的事

  1. core 必须装成 profile 的直接依赖(就是上面那样把它单独列出来)。
    只装 provider 时 core 只是传递依赖,不会被登记成 bundle 层 —— 层不挂载、那一行没人插,
    而且不会有任何警告(2026-09-25 两组对照实测)。
  2. 装 provider 不会自动带 core("自由装")。没装 core 时 provider 的状态是
    pending (waiting for service: scrcpyProviders) —— 不报错,但也用不了,这是设计如此,不是 bug。
  3. 桌面端:禁用 / 启用后想立刻看到效果要重启。
    实测:启用是热的(立刻生效、不用重启);禁用只写文件 ——
    它会把这个包从 profile 的 dsh.profile.bundles 里摘掉(依赖保留,所以恢复时不用重装),
    但已经装载的插件实例不会在运行中卸载,所以要重启才真正消失。

支持范围

主力是桌面端(Electron)。dsh web(在浏览器里打开 GUI)大体也能用 ——
客户端半区本来就是浏览器代码,RPC 也走宿主 HTTP —— 但未做完整验证,出问题请以桌面端为准。

> WS 握手的 Origin 校验同时放行 dsh-app://(桌面端渲染进程的真实 Origin,2026-09-26 实测;
> 不是 http://127.0.0.1:19387)与本机 http 回环(127.0.0.1 / localhost / [::1],端口不限),
> 所以 web 版不会因为这条被挡;只有外部网页(以及 DNS rebinding)会拿到 403。


怎么用

  1. 会话右上角点「scrcpy 菜单」→ 按平台分组的设备列表(鸿蒙设备 / 安卓设备),每组还带自己的环境检测
    (鸿蒙组显示 Java + hdc,安卓组显示 adb)。
  2. 设备那行点「启动」→ 起服务、打开这台设备的投屏标签页(每台设备一张,互不干扰)。
  3. 投屏面板上可以:鼠标点/拖 = 触摸、返回/主页/音量 按键、「输入」按钮(向当前聚焦的输入框注入文本)、
    「添加截图至聊天框」、以及该平台支持时的「日志」。
  4. 切走别的标签页不断流:画面只是暂停广播(省解码与内存),回来接着放。

设置

  • AI 控制设置(每台设备的投屏面板 →「设置」):四项权限 + 识别模型。
  • 连接设置(菜单里各平台组右上角):由该 provider 自己提供字段与检测,core 不认识
    "Java 路径 / hdc / adb" 这些概念,只负责把它渲染成表单。
  • 识别模型下拉列出所有 provider 的所有模型(不按"是否支持图片"筛 —— 非官方 API 大多不报这个字段,
    会误伤)。选了不支持图片的模型,就由上游 API 自己报错。

给 AI 的工具(一套中性名,只注册一次)

工具 作用 需要权限
scrcpy_devices 入口:列出已连接设备、当前聚焦哪台、它四项权限状态 不需要
scrcpy_screenshot 截屏 + 内置视觉模型识别(描述画面、找控件) 允许截图
scrcpy_locate 读控件清单(type/text/id/key/clickable/fx/fy/w/h,比例坐标 0..1) 允许控制
scrcpy_tap / scrcpy_longpress 按比例坐标点击 / 长按,执行前弹确认并在画面上闪绿点显示落点 允许控制
scrcpy_key 按 provider 声明的可用键(安卓 provider 目前是 back 返回 / home 回桌面;声明变了界面标题也跟着变) 允许按键
scrcpy_input 向当前聚焦的输入框注入文本(支持中文) 允许输入

所有操作类工具只作用于"当前聚焦"的那台设备(= 用户在投屏面板里正看着的那台)。
没有聚焦设备时工具会明确报错,绝不替你猜一台。

权限:四项 × 三态

每台设备独立四组开关,每组三态:禁止使用 / 需要确认 / 无需确认。

  • 「允许控制」「允许按键」「允许输入」都依赖「允许截图」 —— 关掉截图会连带关掉它们。
  • 需要确认:每次调用弹二次确认(用户可能拒绝,拒绝后 AI 不应重试);无需确认:直接执行。

版本与兼容

  • 三个包各自独立发版、各自独立安装。
  • provider 在登记自己时声明 coreCompat(一段"匹配我需要的 core"的文字):
    支持 "1.0.0"(精确)/ "^1.0.0"(同 major)/ ">=1.0.0"(下限)。
  • 判定权在 core:core 拿自己的版本比对,不通过就把该 provider 标成停用 ——
    它的设备不进列表、动作不路由(= 不让用),菜单那一组显示「已停用」+ 一句原因。
    provider 自己不报错,坏的那个不会拖垮别的;core 里也不维护"支持哪些 provider 版本"的表。
  • 装了 provider 没装 core:只是 pending(等 scrcpyProviders 服务),不报错、用不了。

已知限制

  • 安卓 provider 目前没有日志流(鸿蒙那边是 hilog);没有该能力的 provider,投屏面板不显示「日志」按钮。
  • "暂无画面"的含义按平台不同:鸿蒙 SDK 只在画面变化时推帧,所以"没帧"时提示用户滑一下手机;
    安卓不需要这个提示(没帧只是画面没变化)。文案由 provider 能力决定。
  • 投屏本身是变化驱动的:画面静止时不推帧,帧计数/字节数不会增长 —— 这是正常现象。
  • 键盘:安卓侧已实现真外接键盘(UHID)—— 鼠标点一下画面,PC 按键就直输给设备,
    平板自己的输入法会接管(拼音组词 + 候选词,2026-09-26 真机实测通过:
    打 ce'shi 出「1测试 2侧石 3侧视 …」)。另外「输入」按钮是"直接塞字"(走 INJECT_TEXT,
    任意中文都行、但不出候选词)。鸿蒙侧目前是 uinput,能否喂给输入法未实测。
  • 菜单观感仍在调整。

开发者

契约(provider 怎么登记、动作接口、投屏流协议、版本判定):见 CONTRACT.md。

dsh-scrcpy-core/
├── package.json          # dsh.bundle(本包是 bundle 层)+ dsh.client
├── cordis.patch.yml      # 【只插 core 自己那一行】—— 两个 provider 各插自己的行,谁都不许碰 core 行
├── lib/                  # Host 半区:注册表 / 设备与聚焦状态 / 命令路由 / 工具 / 提示词 / RPC
├── client/               # 浏览器半区:全部 UI
├── resources/            # jmuxer.min.js(解码库,随包发)
├── CONTRACT.md           # core ↔ provider 契约
└── README.md

为什么每一行只有一个 owner:applyEntryPatches 不按 id 去重 —— 两个 bundle 层各插一条同 id 条目,
组合结果里就会留下两条,挂载时被 EntryGroup.update 以 duplicate loader entry id 拒绝、启动直接失败。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-scrcpy-core 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:ns-zzj/dsh-scrcpy-core#1.0.2` 即可。对应的 npm 包名是 `@nszzj/dsh-scrcpy-core`。

dsh-scrcpy-core 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-scrcpy-core 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-scrcpy-core 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2。

dsh-scrcpy-core 需要什么运行环境?

需要同时安装 @deepseek-ai/dsh-tools@>=0.1.5-0。环境不满足时安装会失败,建议先确认本机版本。

dsh-scrcpy-core 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-scrcpy-core 有哪些功能?

按平台分组的设备列表、每设备独立投屏标签页、截图识别与控件定位、点击按键输入等 AI 工具、四项权限三态门禁。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

视觉与多模态
按星标排序,可作替代方案

open-design

open-design

L4 · 沙盒安装通过 10.0 万 星

awesome-gpt-image-2

awesome-gpt-image-2

GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+ 套工业级模板与可复用 Skills,新增 2.5 同提示词对比

L3 · 安装规范通过 3.4 万 星

PicGo

PicGo

L3 · 安装规范通过 2.7 万 星

iPolloWork

iPolloWork

L4 · 沙盒安装通过 6,775 星

modlens

modlens

ModLens 是 DeepSeek Harness 的视觉插件,为纯文本模型外挂视觉能力,粘贴图片即得结构化 JSON 证据(OCR、版面

L5 · 运行验证通过 4,207 星

OpenBiliClaw

OpenBiliClaw

本地私有、开源的自进化跨平台 AI 内容发现 Agent:先理解你,再主动从 B站、小红书、抖音、YouTube、X、知乎、Reddit、微

L4 · 沙盒安装通过 3,398 星

ns-zzj 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。