🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

yxqfg/phone-lens

DeepSeek Harnessspec-screened扫描:中风险在 GitHub 查看 ↗
需源码安装

PhoneLens —— 手机拍照直连DeepSeek Harness

暂不能直接安装(需源码编译或环境不满足):仓库缺少 package.json,无法用 dsh 插件安装命令安装。 · 最近上游提交 2026/9/20 · 已提供中文文档
综合分
31.3
GitHub 分
31.3
用户评分
—
★ Stars
2
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add yxqfg/phone-lens
仓库缺少 package.json,无法用 dsh 插件安装命令安装,改用 GitHub 源安装
信任档位:已验证本站已于 3 天前真实安装成功(L4 · 真实安装)
是什么
dsh 原生插件 · other
装得上吗
本站已真实安装成功(L4 · 真实安装,非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 6 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/23
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包phone-lens(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

仓库缺少 package.json,无法用 dsh 插件安装命令安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/21 23:36:00

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
PhoneLens —— 手机拍照直连DeepSeek Harness

手机拍照 / 实时取景,一键送达本机 dsh 会话,成为模型可直接消费的图片输入。

PhoneLens 由两部分组成,放在同一个仓库:

| 组件            | 路径                   | 说明                                                                                |
| ------------- | -------------------- | --------------------------------------------------------------------------------- |
| 主机插件(电脑端) | packages/phone-lens | dsh 双面插件:host 半边(接收服务,Node HTTP + WebSocket)+ client 半边(dsh Web UI 右下角悬浮取景小窗) |
| 手机 App    | packages/app       | Flutter / Android:扫码配对、实时取景、拍照/裁剪/批量上传、设置                                         |

链路为局域网 HTTP/WebSocket,扫码一次性配对;USB 网络共享复用同一协议。

✨ 特性

- 扫码配对:一次性 8 位配对码,15 分钟有效,签发即焚;设备 token 只存 SHA-256

- 实时取景:手机以 MJPEG-over-WebSocket 推流,电脑端悬浮小窗 / 独立取景页实时显示

- 双端快门:电脑端小窗或手机端任一快门,走同一条上传→注入管线

- 注入进会话:图片自动写入 dsh 会话输入框,模型下一轮直接看到;可锁定目标会话(默认「最近活跃」)

- 多设备并存:多台手机同时配对;电脑端切换预览、手机端「设为主机」一键抢占;未选中的手机暂停推流但仍可上传

- 自定义裁剪:90° 旋转、裁剪框不出界、手柄可调、取消即丢弃;相册批量连续裁剪(逐张「下一张」→上传→下一张)

- 颜色校正:预览红/蓝通道颠倒、肤色失真时一键校正
- 取景对焦:点击对焦、长按锁定
- 发送历史:三档(仅上传 / 图片留档 / 不留任何痕迹)
- 降级取景页:http://127.0.0.1:8791/view.html 不依赖 dsh,支持系统画中画置顶小窗

🧭 新人快速安装(非开发者)

如果你是第一次使用、不想折腾开发环境,照下面两步即可,剩下交给手机扫码。

1. 手机端:下载并安装 App

1. 打开仓库右侧的 Releases 页(或直接访问 https://github.com/yxqfg/phone-lens/releases)
2. 下载最新版本里的 app-release.apk
3. 用手机打开该 APK 安装;首次会提示「允许安装未知来源应用」,允许即可
4. 安装后打开 PhoneLens

每次发布都会把打包好的 APK 附带在 Release 页,无需自己编译。

2. 电脑端:接入 dsh 插件

最简单(推荐): 已发布到 npm,一条命令装好:

dsh plugin --profile web add phone-lens

然后重启 dsh web 即可。

也可以直接从 Releases 用预构建 tarball:
dsh plugin --profile web add https://github.com/yxqfg/phone-lens/releases/latest/download/phone-lens.tgz

进阶(从源码安装): 下载仓库 Source code (zip) 解压(或 git clone),管理员 PowerShell 运行:

powershell -ExecutionPolicy Bypass -File scripts\dev-install.ps1

同样重启 dsh web,终端会打印配对二维码。

3. 配对与使用

- 手机 App 扫电脑端二维码 → 配对成功
- 取景页按快门拍照(可选裁剪)→ 图片进入 dsh 会话;或点「启动预览」→ 电脑端悬浮小窗实时取景

需要构建/开发的进阶步骤见下面的「快速开始」。

🚀 快速开始
1. 电脑端:把插件装进 dsh web profile

构建并安装(需要 pnpm;首次会初始化 profile)
powershell -ExecutionPolicy Bypass -File scripts\dev-install.ps1

三种安装方式任选其一:

- npm(推荐,免构建):已发布到 npm,直接 dsh plugin --profile web add phone-lens
- tarball(预构建):dsh plugin --profile web add https://github.com/yxqfg/phone-lens/releases/latest/download/phone-lens.tgz
- 源码(开发):上面的 dev-install.ps1 脚本(需要 pnpm,会构建后接入)

完整使用说明见 docs/usage.md。

重启 dsh web,终端会打印配对二维码;也可以浏览器打开
http://127.0.0.1:8791/view.html(降级取景页:实时画面 + 二维码 + 快门 + 画中画置顶小窗)。

开发调试(不进 dsh,上传落盘到 ~/.dsh/phone-lens/uploads):
cd packages\phone-lens; pnpm build; pnpm dev:standalone

2. 手机端:安装 App

powershell -ExecutionPolicy Bypass -File scripts\adb-install.ps1 -Run

3. 配对

1. 电脑端展示二维码(dsh 终端 ASCII 码,或 /view.html 页面)
2. 手机 App 扫码;无法扫码时用「手动输入配对码」(主机:端口:配对码)
3. 配对码一次性,15 分钟有效;设备 token 只存哈希

4. 使用

- 拍照模式:取景页按快门 →(可选裁剪)→ 发送 → 图片进入当前会话,模型下一轮直接看到
- 实时取景:取景页点「启动预览」→ 电脑端预览显示实时画面;双端任一快门都走同一条入库管线
- 多设备:手机端「设为主机」一键把电脑端预览切换到本机;电脑端小窗也可切换、双击设备名重命名
- 目标会话默认「最近活跃」;可在设置页固定

电脑端预览的两种入口

| 入口               | 位置                                | 说明                                                              |
| ---------------- | --------------------------------- | --------------------------------------------------------------- |
| Web UI 内嵌(主) | dsh Web UI 页面右下角 📷 按钮        | 悬浮取景窗:实时画面、快门、配对二维码(相机未连时)、注入回执;需先跑一次 dev-install.ps1 并重启 dsh |
| 独立取景页(降级)    | http://127.0.0.1:8791/view.html | 不依赖 dsh;支持画中画置顶小窗;也可作协议冒烟                                       |

「已保存到电脑 ✓(暂未注入会话)」不是错误:图片已落盘,只是当前没有进行中的 dsh 会话(或尚未接入 dsh)。

防火墙(首次)

管理员运行,放行 8791(私有网段)
powershell -ExecutionPolicy Bypass -File scripts\firewall.ps1

无手机验证电脑端

cd packages\phone-lens; $env:LENS_DATA_DIR="$PWD\.smoke-data"; node lib\dev.js   # 终端 A
node scripts\smoke\smoke.mjs 8791                                              # 终端 B

📁 目录结构

.
├── README.md
├── LICENSE                      # MIT
├── docs/
│   ├── architecture.md          # 架构方案:决策、目录结构、数据流、阶段计划
│   ├── protocol.md              # 传输协议:配对/上传/取景(HTTP + WS)
│   ├── dsh-caps.md              # DSH 能力缝调研:附件注入 / Slot UI / agent 事件
│   └── usage.md                 # 使用说明:日常操作与常见问题
├── packages/
│   ├── phone-lens/               # dsh 双面插件(电脑端主体,包名 phone-lens)
│   │   ├── src/                 #   ── host 半边(Node)──
│   │   │   ├── index.ts         #   装配:server + inject + tools + events
│   │   │   ├── server/          #   http 路由 / 鉴权 / ws hub / 静态取景页
│   │   │   ├── inject/          #   附件保存 + 目标会话 + 消息形态
│   │   │   └── store/           #   配对 / 设备注册表(token 哈希)
│   │   ├── lib/client.js        #   ── browser 半边:Web UI 悬浮取景小窗 ──
│   │   ├── cordis.patch.yml     #   向 profile insert 本插件 host 行
│   │   └── package.json         #   dsh.bundle.patch + dsh.client 声明
│   └── app/                     # Flutter 手机端
│       ├── lib/core/            #   HTTP 客户端 / WS 上行链路 / JPEG 编码 / 配对存储
│       ├── lib/features/        #   配对、取景、裁剪、历史、设置、关于
│       ├── android/             #   权限 & 构建
│       └── pubspec.yaml
└── scripts/
├── dev-install.ps1          # 把插件装进 dsh web profile
├── firewall.ps1             # 放行 8791(仅私有网段)
├── adb-install.ps1          # flutter build apk + adb install
└── smoke/                   # 协议冒烟测试

注:插件包名与目录名统一为 phone-lens,应用显示名为 PhoneLens。

🛠️ 开发

主机插件
cd packages/phone-lens
pnpm install
pnpm build            # tsdown 构建 lib/index.js + lib/dev.js

手机 App(需 Flutter SDK)
cd packages/app
flutter pub get
flutter run            # 或 flutter build apk --release

运行插件冒烟(无真实手机):

cd packages\phone-lens; $env:LENS_DATA_DIR="$PWD\.smoke-data"; node lib\dev.js
node scripts\smoke\smoke.mjs 8791

🛡️ 安全要点

- 回环(127.0.0.1)免鉴权;非回环必须设备 token(配对签发,只存 SHA-256)
- 配对码一次性 + TTL,签发即焚;/ws/view、/view.html、/qr* 仅回环
- 上传白名单 JPEG/PNG,双验 Content-Type + magic bytes,≤10MB(可配),限流
- 安全问题的披露方式见 SECURITY.md

📄 许可

本项目以 MIT 许可发布。参与开发请阅读 CONTRIBUTING.md 与 CODE_OF_CONDUCT.md。

🏷️ 版本

当前 v0.2.0(主机插件),详见 CHANGELOG.md。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群