AutoGLM 手机助手的现代化 Web 图形界面 - 让 AI 自动化操作 Android 设备变得简单
- 多设备并发控制 - 同时管理和控制多个 Android 设备,设备间状态完全隔离
- 对话式任务管理 - 通过聊天界面控制 Android 设备
- 实时屏幕预览 - 基于 scrcpy 的低延迟视频流,随时查看设备正在执行的操作
- 直接操控手机 - 在实时画面上直接点击、滑动操作,支持精准坐标转换和视觉反馈
- 零配置部署 - 支持任何 OpenAI 兼容的 LLM API
- ADB 深度集成 - 通过 Android Debug Bridge 直接控制设备
- 模块化界面 - 清晰的侧边栏 + 设备面板设计,功能分离明确
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 即可开始使用!
项目已支持容器化部署,包含前端构建与后端运行。下面是多种常用方式:
直接使用 Docker 构建镜像:
# 在项目根目录构建镜像(会先构建前端)
docker build -t autoglm-gui:latest .
# 运行(映射主机 8000 端口)
docker run -p 8000:8000 \
-e AUTOGLM_API_KEY="your_api_key_here" \
-e BASE_URL="http://your-model-service/v1" \
autoglm-gui:latest使用 docker-compose 启动:
# 构建并启动服务
docker-compose up --build -d
# 查看日志
docker-compose logs -f
# 停止并移除容器
docker-compose down项目配置了自动构建流程,每次提交代码到 main 分支都会自动构建 ARM64 镜像并推送到 Docker Hub。
拉取并运行镜像:
# 从 Docker Hub 拉取镜像
docker pull YOUR_USERNAME/autoglm-gui:latest
# 运行容器
docker run -p 8000:8000 \
-e AUTOGLM_API_KEY="your_api_key_here" \
-e BASE_URL="http://your-model-service/v1" \
YOUR_USERNAME/autoglm-gui:latest前置条件:
- 已安装 Portainer 容器编排工具
- 已有 Docker Hub 镜像(从 Docker Hub 拉取或自行推送)
步骤:
-
登录 Portainer Web 界面
- 访问
http://your-portainer-host:9000
- 访问
-
创建新的 Stack
- 进入
Stacks→ 点击Add Stack - 选择
Web editor或上传docker-compose.yml文件
- 进入
-
使用以下 Docker Compose 配置:
version: '3.8'
services:
autoglm-gui:
image: YOUR_USERNAME/autoglm-gui:latest # 替换为你的 Docker Hub 用户名
container_name: autoglm-gui
ports:
- "8000:8000"
environment:
- AUTOGLM_API_KEY=${AUTOGLM_API_KEY}
- BASE_URL=${BASE_URL}
restart: unless-stopped
networks:
- autoglm-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
networks:
autoglm-network:
driver: bridge-
配置环境变量
- 在 Stack 配置页面下方找到
Environment variables - 添加以下变量:
AUTOGLM_API_KEY: 你的 API KeyBASE_URL: 你的模型服务地址(如https://open.bigmodel.cn/api/paas/v4)
- 在 Stack 配置页面下方找到
-
部署 Stack
- 点击
Deploy the stack按钮 - Portainer 会自动从 Docker Hub 拉取镜像并启动容器
- 点击
-
监控和管理
- 在
Containers中查看autoglm-gui容器的运行状态 - 可以在 Portainer UI 中查看日志、重启容器或更新镜像版本
- 在
Portainer 优势:
- ✅ Web 界面管理,无需命令行
- ✅ 自动镜像更新(支持定时检查和拉取新版本)
- ✅ 集中化日志管理和监控
- ✅ 支持多主机部署
- ✅ 一键回滚到历史版本
其他说明:
默认服务对外暴露 8000 端口,浏览器访问 http://localhost:8000 即可打开 Web 界面。
如果需要在容器中使用真实的 ADB 设备或 USB 功能,请根据目标环境和安全策略调整 Docker 配置或在宿主机上运行服务。
AutoGLM-GUI 支持同时控制多个 Android 设备:
- 设备列表 - 左侧边栏自动显示所有已连接的 ADB 设备
- 设备选择 - 点击设备卡片切换到对应的控制面板
- 状态指示 - 清晰显示每个设备的在线状态和初始化状态
- 状态隔离 - 每个设备有独立的对话历史、配置和视频流
设备状态说明:
- 🟢 绿点:设备在线
- ⚪ 灰点:设备离线
- ✓ 标记:设备已初始化
- 连接设备 - 启用 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 --packApache 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 上的卓越工作。


