Web GUI for AutoGLM Phone Agent - AI-powered Android automation
Project description
AutoGLM-GUI
AutoGLM 手机助手的现代化 Web 图形界面 - 让 AI 自动化操作 Android 设备变得简单
✨ 特性
- 多设备并发控制 - 同时管理和控制多个 Android 设备,设备间状态完全隔离
- 对话式任务管理 - 通过聊天界面控制 Android 设备
- 实时屏幕预览 - 基于 scrcpy 的低延迟视频流,随时查看设备正在执行的操作
- 直接操控手机 - 在实时画面上直接点击、滑动操作,支持精准坐标转换和视觉反馈
- 零配置部署 - 支持任何 OpenAI 兼容的 LLM API
- ADB 深度集成 - 通过 Android Debug Bridge 直接控制设备
- 模块化界面 - 清晰的侧边栏 + 设备面板设计,功能分离明确
📥 快速下载
一键下载桌面版(免配置环境):
| 操作系统 | 下载链接 | 说明 |
|---|---|---|
| 🍎 macOS (Apple Silicon) | 📦 下载 DMG | 适用于 M 芯片 Mac |
| 🪟 Windows (x64) | 📦 下载便携版 EXE | 适用于 Windows 10/11,免安装 |
使用说明:
- macOS: 下载后双击
.dmg文件,拖拽到应用程序文件夹。首次打开可能需要在「系统设置 → 隐私与安全性」中允许运行 - Windows: 下载后直接双击
.exe文件运行,无需安装
💡 提示: 桌面版已内置所有依赖(Python、ADB 等),无需手动配置环境。首次运行时需配置模型服务 API。
或者使用 Python 包(需要 Python 环境):
# 通过 pip 安装(推荐)
pip install autoglm-gui
# 或使用 uvx 免安装运行(需先安装 uv)
uvx autoglm-gui
📸 界面预览
任务开始
任务执行完成
多设备控制
🚀 快速开始
🎯 模型服务配置
AutoGLM-GUI 只需要一个 OpenAI 兼容的模型服务。你可以:
- 使用官方已托管的第三方服务
- 智谱 BigModel:
--base-url https://open.bigmodel.cn/api/paas/v4,--model autoglm-phone,--apikey <你的 API Key> - ModelScope:
--base-url https://api-inference.modelscope.cn/v1,--model ZhipuAI/AutoGLM-Phone-9B,--apikey <你的 API Key>
- 智谱 BigModel:
- 或自建服务:参考上游项目的部署文档用 vLLM/SGLang 部署
zai-org/AutoGLM-Phone-9B,启动 OpenAI 兼容端口后将--base-url指向你的服务。
示例:
# 使用智谱 BigModel
pip install autoglm-gui
autoglm-gui \
--base-url https://open.bigmodel.cn/api/paas/v4 \
--model autoglm-phone \
--apikey sk-xxxxx
# 使用 ModelScope
pip install autoglm-gui
autoglm-gui \
--base-url https://api-inference.modelscope.cn/v1 \
--model ZhipuAI/AutoGLM-Phone-9B \
--apikey sk-xxxxx
# 指向你自建的 vLLM/SGLang 服务
pip install autoglm-gui
autoglm-gui --base-url http://localhost:8000/v1 --model autoglm-phone-9b
前置要求
- Python 3.10+
- 已开启 USB 调试的 Android 设备
- 已安装 ADB 并添加到系统 PATH
- 一个 OpenAI 兼容的 API 端点
快捷运行(推荐)
无需手动准备环境,直接安装运行:
# 通过 pip 安装并启动
pip install autoglm-gui
autoglm-gui --base-url http://localhost:8080/v1
也可以使用 uvx 免安装启动,自动启动最新版(需已安装 uv,安装教程):
uvx autoglm-gui --base-url http://localhost:8080/v1
传统安装
# 从源码安装
git clone https://github.com/your-repo/AutoGLM-GUI.git
cd AutoGLM-GUI
uv sync
# 构建前端(必须)
uv run python scripts/build.py
# 启动服务
uv run autoglm-gui --base-url http://localhost:8080/v1
启动后,在浏览器中打开 http://localhost:8000 即可开始使用!
🔄 升级指南
检查当前版本
# 查看已安装的版本
pip show autoglm-gui
# 或使用命令行参数
autoglm-gui --version
升级到最新版本
使用 pip 升级:
# 升级到最新版本
pip install --upgrade autoglm-gui
📖 使用说明
多设备管理
AutoGLM-GUI 支持同时控制多个 Android 设备:
- 设备列表 - 左侧边栏自动显示所有已连接的 ADB 设备
- 设备选择 - 点击设备卡片切换到对应的控制面板
- 状态指示 - 清晰显示每个设备的在线状态和初始化状态
- 状态隔离 - 每个设备有独立的对话历史、配置和视频流
设备状态说明:
- 🟢 绿点:设备在线
- ⚪ 灰点:设备离线
- ✓ 标记:设备已初始化
AI 自动化模式
- 连接设备 - 启用 USB 调试并通过 ADB 连接设备(支持 USB 和 WiFi)
- 选择设备 - 在左侧边栏选择要控制的设备
- 初始化 - 点击"初始化设备"按钮配置 Agent
- 对话 - 描述你想要做什么(例如:"去美团点一杯霸王茶姬的伯牙绝弦")
- 观察 - Agent 会逐步执行操作,每一步的思考过程和动作都会实时显示
手动控制模式
除了 AI 自动化,你也可以直接在实时画面上操控手机:
- 实时画面 - 设备面板右侧显示手机屏幕的实时视频流(基于 scrcpy)
- 点击操作 - 直接点击画面中的任意位置,操作会立即发送到手机
- 滑动手势 - 按住鼠标拖动实现滑动操作(支持滚轮滚动)
- 视觉反馈 - 每次操作都会显示涟漪动画和成功/失败提示
- 精准转换 - 自动处理屏幕缩放和坐标转换,确保操作位置准确
- 显示模式 - 支持自动、视频流、截图三种显示模式切换
技术细节:
- 使用 scrcpy 提供低延迟(~30-50ms)的 H.264 视频流
- 前端自动获取设备实际分辨率(如 1080x2400)
- 智能处理视频流缩放(如 576x1280)与设备分辨率的映射
- 支持 letterbox 黑边的精确坐标计算
- 颗粒化触摸事件支持(DOWN、MOVE、UP)实现流畅的手势操作
🏗️ 架构设计
多设备并发架构
AutoGLM-GUI 采用简化的多设备并发架构,支持同时管理多个 Android 设备:
后端设计:
- 使用字典管理多个
PhoneAgent实例:agents: dict[str, PhoneAgent] - 每个设备有独立的
scrcpy视频流实例 - 设备级别的锁机制,避免不同设备间的阻塞
- 所有 API 接口支持
device_id参数进行设备路由
前端设计:
- 使用
Map<string, DeviceState>管理每个设备的独立状态 - 组件化设计,功能职责清晰分离:
DeviceCard- 单个设备信息卡片DeviceSidebar- 设备列表侧边栏DevicePanel- 设备操作面板(ChatBox + Screen Monitor)
- 设备状态完全隔离,互不影响
核心特点:
- ✅ 无任务队列,简化设计
- ✅ 无复杂调度,每个设备独立运行
- ✅ 实时 WebSocket 通信,支持流式响应
- ✅ 自动设备发现和状态同步(每 3 秒刷新)
🛠️ 开发指南
快速开发
# 后端开发(自动重载)
uv run autoglm-gui --base-url http://localhost:8080/v1 --reload
# 前端开发服务器(热重载)
cd frontend && pnpm dev
### 构建和打包
```bash
# 仅构建前端
uv run python scripts/build.py
# 构建完整包
uv run python scripts/build.py --pack
📝 开源协议
Apache License 2.0
许可证说明
AutoGLM-GUI 使用 MIT 许可证。但是,它打包了 ADB Keyboard APK (com.android.adbkeyboard),该组件使用 GPL-2.0 许可证。ADB Keyboard 组件作为独立工具使用,不影响 AutoGLM-GUI 本身的 MIT 许可。
详见:AutoGLM_GUI/resources/apks/ADBKeyBoard.LICENSE.txt
🙏 致谢
本项目基于 Open-AutoGLM 构建,感谢 zai-org 团队在 AutoGLM 上的卓越工作。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file autoglm_gui-1.0.1.tar.gz.
File metadata
- Download URL: autoglm_gui-1.0.1.tar.gz
- Upload date:
- Size: 415.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fdeeceba6a186d96017d5f42af3e453e886d2b603d48fa02844a580edfc188b6
|
|
| MD5 |
114a333c19c9c5d408365ce5f7520327
|
|
| BLAKE2b-256 |
c0c86eed33c84f74a386171572353440c3f5c9d2878850a912a8761774a684ca
|
Provenance
The following attestation bundles were made for autoglm_gui-1.0.1.tar.gz:
Publisher:
release.yml on suyiiyii/AutoGLM-GUI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autoglm_gui-1.0.1.tar.gz -
Subject digest:
fdeeceba6a186d96017d5f42af3e453e886d2b603d48fa02844a580edfc188b6 - Sigstore transparency entry: 779490224
- Sigstore integration time:
-
Permalink:
suyiiyii/AutoGLM-GUI@38246288e94bb6dadb202746ecc79f853ced32ff -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/suyiiyii
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@38246288e94bb6dadb202746ecc79f853ced32ff -
Trigger Event:
push
-
Statement type:
File details
Details for the file autoglm_gui-1.0.1-py3-none-any.whl.
File metadata
- Download URL: autoglm_gui-1.0.1-py3-none-any.whl
- Upload date:
- Size: 447.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7562b68e7ac3129a407996a04530ac1730c7f25dd39501cdd18cd361ecbc4207
|
|
| MD5 |
439195969852f1dc9e397bf32e00820a
|
|
| BLAKE2b-256 |
4e2e8f2d0d37d69f86a136942ef7c50f42c51953fd6951b7a650d5c5be1c5c9e
|
Provenance
The following attestation bundles were made for autoglm_gui-1.0.1-py3-none-any.whl:
Publisher:
release.yml on suyiiyii/AutoGLM-GUI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
autoglm_gui-1.0.1-py3-none-any.whl -
Subject digest:
7562b68e7ac3129a407996a04530ac1730c7f25dd39501cdd18cd361ecbc4207 - Sigstore transparency entry: 779490226
- Sigstore integration time:
-
Permalink:
suyiiyii/AutoGLM-GUI@38246288e94bb6dadb202746ecc79f853ced32ff -
Branch / Tag:
refs/tags/v1.0.1 - Owner: https://github.com/suyiiyii
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@38246288e94bb6dadb202746ecc79f853ced32ff -
Trigger Event:
push
-
Statement type: