UAP 设备控制
通用代理平台的跨平台外出设备控制客户端.
所需资源
- 节点.js 24.18.1 或后, 25.x,或 26.x (
>=24.18.1 <27) (中文(简体) ). 优先支持进行中设施的LTS主要设备. - 第一个登录的公用 UAP 设备控制源
- 窗口、 Linux 或 macOS
运行者, WSL, cloudflared,不需要临时安装一个单独安装的设备代理和输入设备端口 npx 模式.
第一个登录
公共 npm 软件包没有嵌入一个开发,中转或生产主机名 。 在第一个登录时明确选择预定的 UAP 环境 :
npx @codingfrees/uap-device-control@latest login --origin https://<uap-device-control-origin> --pairing-code <temporary-admin-code>
打开UAP设备控制/admin控制台,选择被授权的拥有者或工作空间身份,并生成一次性对接码(有效期为5分钟). CLI通过 OAuth PKCE 交换此代码,并存储一个可撤销的设备扫描证书,用于准确来源;它不需要GitHub/Google登录. 后来命令重用所保存的来源和证书 。 要改变环境,首先登录,然后与其他来源对齐.
您也可通过 UAP_DEVICE_CONTROL_ORIGIN。 。 。 .
远程会话
npx @codingfrees/uap-device-control@latest remote
交互式CLI默认使用简洁可读状态行(✅, (中文(简体) ), ❌, (中文(简体) ), ⚠️, (中文(简体) ), 🔐, (中文(简体) ), 🌐, (中文(简体) ), 🔌, (中文(简体) ), 🔧) (中文(简体) ). 使用 --json 用于在脚本和日志收集器中稳定 JSONL 输出。 只有一个 remote 进程可以一次使用状态目录;一个新的临时远程可以替换一个经过核实的先前临时实例,而无关或服务管理的进程则会失败。 OAuth刷新是跨进程序列化的,在现有的经纪人会话中重试Access-token更新,而不是强迫设备重接. 中继广告 transport-ping-v1,一个有边框的30秒应用心跳在持久对象冬眠时得到自动响应;一个缺失的响应导致CLI取代了无声半开传输. 更老的中继器继续使用点播存在探测器,直到双方更新.
交互式 remote 会话在启动时显示 UAP 设备控制横幅; JSON 和服务模式仍然是无横幅的 。 使用 --debug 添加本地终端命令诊断,包含可执行、已编辑的参数向量、工作目录和缩短请求ID。 环境值从未被记录,常见的有证书的旗帜和头被被校正.
默认情况下,远程进程也会启动端口上仅回放的语义浏览器桥 18700。直到 UAP 浏览器扩展对齐,CLI 打印出一个短寿命的配对代码。 浏览器控制可以禁用 --no-browser-control 或移动到另一个回路端口 --browser-port <port>。 。 。 .
在前端口对现有扩展对齐 8800 将端口保留在浏览器存储中 。 更新 npm 远程和浏览器扩展后, 打开 设备控制- 浏览器 在扩展名设置和使用中 重新连接浏览器桥 带有端口 18700 (或CLI报出港. 这将在明确的用户动作后移动现有的配对,而不是默默地将被保存的无记名发送到新的本地端口或重设设备证书. 使用 browser-reset 只有丧失配对权限或替换扩展权限.
如果一个浏览器扩展被替换或丢失其本地令牌, 请停止 remote运行 npx @codingfrees/uap-device-control@latest browser-reset开始 remote 再来一次 此重排仅将浏览器对齐并保存设备身份和登录.
默认情况下只有当前目录作为设备控制文件系统根被曝光. 其他权力必须明确:
npx @codingfrees/uap-device-control@latest remote \
--root files=/absolute/path \
--read-only-root archive=/absolute/archive \
--allow-executable /absolute/path/to/executable \
--allow-service example.service
语义浏览器控制
语义浏览器控制是可选的,由 device-control-browser 在通用的 UAP 浏览器扩展内组装 。 它不需要Chrome/Edge远程调试旗或CDP.
- 安装或启用可选选项
device-control-browser工作空间中的伴侣;取决于device-control财务报告和审定财务报表browser-extension-host。 。 。 . - 开始
remote并注意当地🔐 Browser pairing code。 。 。 . - 打开 UAP 浏览器扩展弹出和 设备控制- 浏览器 特性.
- 输入 CLI 显示的配对代码和桥口,然后启用浏览器控制.
- 远程会话自动重新连接并广告浏览器能力.
浏览器表面支持被绑定的标签列表,打开/navigate/activate/再装入/回放/前行/关闭,可视页面快照,基于选择的点击,被绑定的文字条目和被绑定的垂直滚动. 只有HTTPS或回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回H回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回回 页面内容为不可信数据,不评价提供页面的JavaScript,每个MCP浏览器工具都通过批准.
状态
npx @codingfrees/uap-device-control@latest status
status 报告本地设备的身份、认证状态和认证时的远程存在.
账户身份和切换
使用 whoami 检查账户名称、主体和工作空间 经中继器验证,不从存储的符号内容推断:
npx @codingfrees/uap-device-control@latest whoami
要将 Windows 设备从一个账户移动到另一个账户,请停止当前 remote 处理或安装服务,然后运行:
npx @codingfrees/uap-device-control@latest switch-account
npx @codingfrees/uap-device-control@latest whoami
npx @codingfrees/uap-device-control@latest remote
在 OAuth 浏览器步骤中,请在 计划 账户,而不是现有的浏览器会话。 或者,在设备控制控制控制控制台为预期用户生成一个单用配对代码,并将其传递给 switch-account --pairing-code <code>。设备 ID 和浏览器的配对状态得到保存。 前一个刷新证书被取消 之后 成功的新登录; 如果无法确认撤销, CLI 将显示警告 。 一个失败的新登录让旧的授权完好无损 。 中继和CLI必须同时支持身份端点以显示被验证的身份;否则 whoami 明确报告无法核查而不是猜测.
长期服务
登录后 :
npx @codingfrees/uap-device-control@latest install-service
同样的运行时间也持续使用平台适配器(Windows计划启动,Linux系统用户服务,macOS发布).
这个 install-service 如果在 Windows 或 Linux 上检测到已安装的 Runner V2, 命令拒绝安装第二个持久远程; 临时 remote 模式保持独立。 服务安装在解剖学阶段进入运行时间阶段并保留a .previous 如果注册失败,则复制回滚。 这不是一个签名的自动更新通道;npm发布和OS服务更新仍然是单独的生命周期.
npm 客户端对 ChatGPT MCP
NPM 客户端有 没有 使用MCP作为其设备传输. 它需要OAuth的公众UAP源头 以及设备控制路径 /device-control/remote/*。 。 。 .
这个 /mcp 端点由ChatGPT/Codex和公开的OpenAI插件上市要求. 生产部署可能暴露出来自同一种犬类HTTPS的表面,但它们是独立的协议路径并使用单独的OAuth瞄准镜. npm 客户端使用孤立 device-control:device 范围;普通的MCP读取/写入符被远程设备经纪人拒绝.
安全边界
客户端只打开输出的 HTTPS 连接, 外加严格绑定的可选浏览器桥 127.0.0.1。文件系统根、可执行允许列表和服务允许列表仍然是当地明确的权威。 设备证书以原产地为条件,不能静默地重复使用另一个环境. 浏览器对等使用短寿命的本地代码,将确切的扩展ID钉入,并只在远程一侧坚持一个符号散列;持单人本身留在扩展存储中.
出版
采用下列方式,在npm维护者批准时,进行经核实的双重用途释放:
pnpm publish:public
在不公布的情况下验证准确的发布 pnpm publish:public -- --dry-run。 。 。 .
对于 npm whoami Linux/ WSL 中的 HTTP 401, 使用本地更新认证 npm login --registry=https://registry.npmjs.org/ --auth-type=web,然后确认 npm whoami不将全权证书粘贴到发布报告或日志中。 npm版本是不可改变的:在发布前将软件包版本撞出并承诺一棵干净的树.
脚本需要干净的软件包输入, 持久 contentPolicy 声明和捆绑 DISCLOSURE,和一个未使用的版本。 它建立和检查包,然后打电话 npm stage publish词根 pnpm deploy:npm 入口使用相同的中程脚本. 维护者必须在2FA版本公开发布前在npmjs.com上检查并明确批准该舞台;脚本不会绕过npm身份检查或声称已发布一个舞台版本.
UAP 下载释放候选人
这个 UAP downloadable product candidates 工作流程还构建了可移植的节点26 uap-device-control-remote-<version>.mjs它的SHA-256 和来自确切候选来源的静音出处 SHA. 此可执行的 JavaScript 文件 需要节点.js 26;它不是一个被签名的Windows/macOS本土安装器,并且与现有的npm发布通道相分离. 私人CI文物不是公开的UAP下载版. 每个经批准的公开发布必须在其描述中嵌入Windows/Linux/macOS的下载,校验和分,登录,范围-root,浏览器配对和更新/删除指令;需要现场OS/浏览器认证和单独的出版批准.
ChatGPT MCP 工具简介
连接的 MCP URL 控制器,哪些工具是广告和可调用的 。 仅凭设备报告的能力并不能提供相应的ChatGPT工具.
| 连接 URL | 简介 | 相关工具 |
|---|---|---|
https://device-control.aemdpc.ro/mcp | core (默认) | 设备的发现、健康、工艺、终端和批准 |
https://device-control.aemdpc.ro/mcp?profile=browser | browser | list_browser_tabs 和对浏览器操作 |
https://device-control.aemdpc.ro/mcp?profile=screen | screen | list_monitors, (中文(简体) ), screenshot、流和桌面控制器 |
https://device-control.aemdpc.ro/mcp?profile=filesystem | filesystem | 根发现和文件系统操作 |
https://device-control.aemdpc.ro/mcp?profile=marketplace | marketplace | 所有设备控制 MCP 工具 |
为了启用 ChatGPT 中的高级工具, 连接一个明文 browser 或者说 screen 配置文件,或 marketplace 完整表面配置文件 。 插件包装器支持 --profile browser, (中文(简体) ), --profile screen,以及 --profile marketplace并嵌入匹配的 URL mcp.json。现有 core 连接不会仅仅因为远程设备报告这些能力而获得先进的工具.
配置文件对两者都有限制 tools/list 财务报告和审定财务报表 tools/call; OAuth 范围和设备/工作空间授权仍然适用. 浏览器读取需要成对的浏览器扩展并加高访问权限的批准;截图需要单独的批准. 在诊断检查期间绝不自动批准.