给手机端加电脑能力:扩展与 host 脚本
界面定制满足不了的另一半
改样式只能改「看起来像什么」;要让手机端知道电脑上正在发生的事——CPU 占用、磁盘空间、某个进程状态——需要扩展(extensions)机制:一段跑在电脑上的脚本,把结果喂给手机页面。
运行模型
- 扩展放在
mobile-access/extensions/目录下,入口文件是host.mjs。 - host 脚本以本机用户权限在电脑上运行——它能做你本人登录后能做的一切事。
- 手机端通过
api.host.invoke()按 JSON 请求调用电脑端动作;输入在电脑端执行前完成校验和规范化。 - 动作的输入参数可以直接用 Schemastery schema(
api.schema.object(...))或带parse(value)的适配器声明。
扩展清单与脚本按版本标识刷新;Host 暂存失败会沿用现有版本,新界面激活失败则自动关闭该扩展并重试。
玩法的想象空间
官方文档举过的例子:通过扩展连接电脑上运行的酒馆(SillyTavern),从同一个 App 打开它的简易移动前端。监控面板(界面定制一页里的实例)也是同样机制。理论上任何「电脑上能查、能跑」的东西,都能做成手机端的一个面板或按钮。
Worker 执行模式(可选)
较新版本提供可选的 Worker 执行模式,用于约束可信本地扩展的 JavaScript 阻塞行为:
- 默认关闭,按扩展逐个选择启用;
- 故障后需要显式恢复,不会自动重放操作;
- 注意:这不是权限沙箱,也不要求 App 同步版本。
安全须知(务必读)
host.mjs 与本机程序拥有相同权限。官方原话的立场很清楚:仅创建和运行你理解并信任的电脑端扩展。具体到操作:
- 不来历不明的扩展不装——它等于在你电脑上跑了任意代码。
- 让智能体写的扩展,用前看一眼它要访问什么。
- 扩展异常时先禁用再排查,别带着问题跑。