phone-screenshot-yashu

v2026.09.24

远程获取安卓手机截图。通过 WebSocket 连接电脑和手机(AutoJS),用户说"手机截图"即可触发截屏并自动打开。激活条件:用户消息包含"手机截图"、"截取手机屏幕"、"截屏手机"、"phone screenshot"等关键词。

GitHub
安装命令
npx skhub add steelan9199/phone-screenshot-yashu
Markdown
SKILL.md

手机截图

功能概述

在 AI 聊天软件中说"手机截图",自动通过 WebSocket 通知手机(AutoJS)截屏,手机将图片二进制数据直接传回电脑,保存为 PNG 文件后打开查看。图片传输为二进制直传,不转 base64。

环境说明

  • 技能目录:$SKILL_DIR 指代本技能所在目录(包含 SKILL.md 的文件夹)。⚠️ $SKILL_DIR 仅为文档占位符,不是环境变量,执行命令时必须替换为实际绝对路径。
  • 端口:固定使用 9421(HTTP + WebSocket 共用)
  • 脚本目录:$SKILL_DIR/scripts/
  • 截图保存目录:$SKILL_DIR/screenshots/
  • Node.js:需要已安装 Node.js(>= 18),若未安装则提示用户安装后结束任务
  • 本技能运行命令时采用条件执行(前一条成功才执行下一条):
    • bash/zsh(Linux/macOS):cmd1 && cmd2
    • PowerShell 5(Windows):cmd1; if ($?) { cmd2 }
    • PowerShell 7+:&& 和 ; if ($?) { cmd2 } 均可
    • 禁止单 &

前置条件

条件说明
电脑已安装 Node.js >= 18运行 node -v 检查,未安装则提示用户安装
手机已安装 AutoJS需开启截图权限和无障碍服务
电脑与手机在同一局域网手机通过 WiFi 连接到电脑同网段
手机 AutoJS 脚本已运行手机端运行 autojs-client.js,需配置电脑 IP
中继服务器已启动电脑端运行 node server.js

AutoJS 简介

当需要向用户提及 AutoJS(如提示安装、运行脚本时),若用户可能不了解它,应简短介绍并附上官网链接。

  • AutoJS 是什么:一款安卓(Android)设备的自动化工具,支持用 JavaScript 编写脚本,模拟点击、滑动、截屏等手机操作,无需 root。
  • 官网:https://docs.autojs6.com/#/
  • 适用场景:本技能通过它在手机端运行一个连接脚本,接收电脑指令完成截屏并回传图片。

介绍示例(供 AI 参考语气):

AutoJS 是一款安卓自动化工具,可以用 JavaScript 脚本控制手机完成截屏、点击等操作。本技能需要它在手机端配合运行。 官网文档:https://docs.autojs6.com/#/

执行步骤

意图判定

用户消息特征执行动作
包含"手机截图"/"截屏手机"/"截取手机屏幕"/"phone screenshot"进入【获取手机截图】流程
包含"关闭手机截图"/"停止手机截图"进入【关闭服务器】流程

获取手机截图

步骤执行动作具体命令/操作
1环境检查:Node.js运行 node -v。若命令不存在,提示用户安装 Node.js 18+,任务结束。
2环境检查:依赖检查 $SKILL_DIR/scripts/node_modules/ws 目录是否存在。若不存在,运行 cd "$SKILL_DIR/scripts" && npm install。
3检测服务器状态运行健康检查命令(见下方【服务器检测命令】)。返回 {"status":"ok"} 说明已运行;连接失败说明未启动。
4判断是否需要启动若步骤 3 返回 {"status":"ok"},跳到步骤 6。若连接失败,继续步骤 5。
5启动服务器将 $SKILL_DIR 替换为实际绝对路径,运行 cd "$SKILL_DIR/scripts"; if ($?) { node server.js }。必须使用非阻塞方式执行,因为服务器是长驻进程。
6等待服务器就绪运行 Start-Sleep -Seconds 2(Windows)或 sleep 2(Linux/macOS),等待服务器完成启动。然后再次运行步骤 3 的健康检查确认就绪。
7检查手机连接从步骤 3/6 的健康检查返回中读取 phone 字段。若为 disconnected,按【手机未连接提示】向用户介绍 AutoJS 并引导在手机上运行 autojs-client.js 脚本,任务结束。
8触发截图运行 node "$SKILL_DIR/scripts/trigger.js"。脚本输出图片的绝对路径。
9打开图片拿到图片路径后,必须调用 image-pixel-viewer-yashu 技能打开该图片。若用户电脑未安装该技能,先运行 npx skills add https://github.com/steelan9199/wechat-publisher/tree/main/skills/image-pixel-viewer-yashu 安装,安装完成后再调用该技能打开图片。

服务器检测命令

平台命令
Windows (PowerShell)try { (Invoke-WebRequest -Uri "http://localhost:9421/health" -UseBasicParsing -TimeoutSec 2).Content } catch { "连接失败" }
Linux/macOS (bash)curl -s --max-time 2 http://localhost:9421/health || echo "连接失败"

手机未连接提示

当健康检查返回 phone: "disconnected" 时,按以下要点回复用户:

  1. 简短介绍 AutoJS:参考【AutoJS 简介】中的介绍示例,说明它是什么、本技能为何需要它。
  2. 附上官网:给出链接 https://docs.autojs6.com/#/ ,便于用户下载安装与查阅文档。
  3. 引导运行脚本:告知用户在手机端 AutoJS 中运行 $SKILL_DIR/scripts/autojs-client.js,并需在其中配置电脑的局域网 IP。
  4. 前置条件须满足:手机与电脑在同一局域网、AutoJS 已开启截图权限和无障碍服务。
  5. 提醒截图权限弹框的同意按钮:脚本中有一段被注释的代码(约第 18-21 行),用于自动点击截图权限弹框的"同意"按钮。不同手机的按钮文案可能不同(如"立即开始"、"允许"、"同意"等),如果用户希望自动点击同意按钮,需要根据自己手机实际的按钮文案修改 text("立即开始") 中的文字,并取消该段代码的注释;若文案不匹配会导致自动点击失效。对代码不熟悉的用户也可保持注释状态,每次手动点击同意即可。

关闭服务器

步骤执行动作具体命令
1终止占用 9421 端口的进程Windows: Get-NetTCPConnection -LocalPort 9421 -ErrorAction SilentlyContinue | Select-Object -ExpandProperty OwningProcess | ForEach-Object { Stop-Process -Id $_ -Force };Linux/macOS: lsof -ti:9421 | xargs kill
2确认已关闭再次运行【服务器检测命令】,确认返回"连接失败"

输出格式

  • 获取成功:告知用户截图已完成,并告知图片路径及已打开查看
  • 手机未连接:按【手机未连接提示】向用户介绍 AutoJS 并引导运行手机端脚本
  • 服务器未启动:提示正在启动服务器
  • Node.js 未安装:提示用户安装 Node.js 18+

错误处理

错误场景错误表现处理方式
Node.js 未安装node 命令不存在提示用户安装 Node.js 18+
ws 依赖未安装Cannot find module 'ws'运行 cd scripts && npm install
手机未连接健康检查返回 phone: "disconnected"按【手机未连接提示】介绍 AutoJS 并附官网链接,引导运行手机端脚本
截图超时trigger.js 返回超时错误检查手机 AutoJS 是否在前台运行、截图权限是否已授权
端口被占用服务器启动报 EADDRINUSE提示用户端口 9421 被占用,可先关闭旧服务器再重启

全业务脚本索引清单

脚本功能
$SKILL_DIR/scripts/server.jsPC 端 WebSocket + HTTP 中继服务器(端口 9421),接收手机连接,提供截图触发接口
$SKILL_DIR/scripts/trigger.jsAI 触发脚本,调用服务器 HTTP 接口获取截图,输出图片路径
$SKILL_DIR/scripts/autojs-client.js手机端 AutoJS 脚本,连接服务器,收到指令后截屏并发送二进制图片
$SKILL_DIR/scripts/package.jsonnpm 依赖配置(ws 库)
发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

Sep 24, 2026

分类

未分类

许可证

未指定

源路径

skills/phone-screenshot-yashu

默认分支

main

最新提交

03b646a

Tree SHA

e79e9ee