# AutoGLM-GUI
**Repository Path**: delicacy/AutoGLM-GUI
## Basic Information
- **Project Name**: AutoGLM-GUI
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-12-23
- **Last Updated**: 2025-12-23
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AutoGLM-GUI
AutoGLM 手机助手的现代化 Web 图形界面 - 让 AI 自动化操作 Android 设备变得简单


[](https://pypi.org/project/autoglm-gui/)
欢迎加入讨论交流群
## ✨ 特性
- **多设备并发控制** - 同时管理和控制多个 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>`
- 或自建服务:参考上游项目的[部署文档](https://github.com/zai-org/Open-AutoGLM/blob/main/README.md)用 vLLM/SGLang 部署 `zai-org/AutoGLM-Phone-9B`,启动 OpenAI 兼容端口后将 `--base-url` 指向你的服务。
示例:
```bash
# 使用智谱 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 端点
### 快捷运行(推荐)
**无需手动准备环境,直接安装运行:**
```bash
# 通过 pip 安装并启动
pip install autoglm-gui
autoglm-gui --base-url http://localhost:8080/v1
```
也可以使用 uvx 免安装启动,自动启动最新版(需已安装 uv,[安装教程](https://docs.astral.sh/uv/getting-started/installation/)):
```bash
uvx autoglm-gui --base-url http://localhost:8080/v1
```
### 传统安装
```bash
# 从源码安装
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 即可开始使用!
## 🔄 升级指南
### 检查当前版本
```bash
# 查看已安装的版本
pip show autoglm-gui
# 或使用命令行参数
autoglm-gui --version
```
### 升级到最新版本
**使用 pip 升级:**
```bash
# 升级到最新版本
pip install --upgrade autoglm-gui
```
## 📖 使用说明
### 多设备管理
AutoGLM-GUI 支持同时控制多个 Android 设备:
1. **设备列表** - 左侧边栏自动显示所有已连接的 ADB 设备
2. **设备选择** - 点击设备卡片切换到对应的控制面板
3. **状态指示** - 清晰显示每个设备的在线状态和初始化状态
4. **状态隔离** - 每个设备有独立的对话历史、配置和视频流
**设备状态说明**:
- 🟢 绿点:设备在线
- ⚪ 灰点:设备离线
- ✓ 标记:设备已初始化
### AI 自动化模式
1. **连接设备** - 启用 USB 调试并通过 ADB 连接设备(支持 USB 和 WiFi)
2. **选择设备** - 在左侧边栏选择要控制的设备
3. **初始化** - 点击"初始化设备"按钮配置 Agent
4. **对话** - 描述你想要做什么(例如:"去美团点一杯霸王茶姬的伯牙绝弦")
5. **观察** - Agent 会逐步执行操作,每一步的思考过程和动作都会实时显示
### 手动控制模式
除了 AI 自动化,你也可以直接在实时画面上操控手机:
1. **实时画面** - 设备面板右侧显示手机屏幕的实时视频流(基于 scrcpy)
2. **点击操作** - 直接点击画面中的任意位置,操作会立即发送到手机
3. **滑动手势** - 按住鼠标拖动实现滑动操作(支持滚轮滚动)
4. **视觉反馈** - 每次操作都会显示涟漪动画和成功/失败提示
5. **精准转换** - 自动处理屏幕缩放和坐标转换,确保操作位置准确
6. **显示模式** - 支持自动、视频流、截图三种显示模式切换
**技术细节**:
- 使用 scrcpy 提供低延迟(~30-50ms)的 H.264 视频流
- 前端自动获取设备实际分辨率(如 1080x2400)
- 智能处理视频流缩放(如 576x1280)与设备分辨率的映射
- 支持 letterbox 黑边的精确坐标计算
- 颗粒化触摸事件支持(DOWN、MOVE、UP)实现流畅的手势操作
## 🏗️ 架构设计
### 多设备并发架构
AutoGLM-GUI 采用简化的多设备并发架构,支持同时管理多个 Android 设备:
**后端设计**:
- 使用字典管理多个 `PhoneAgent` 实例:`agents: dict[str, PhoneAgent]`
- 每个设备有独立的 `scrcpy` 视频流实例
- 设备级别的锁机制,避免不同设备间的阻塞
- 所有 API 接口支持 `device_id` 参数进行设备路由
**前端设计**:
- 使用 `Map` 管理每个设备的独立状态
- 组件化设计,功能职责清晰分离:
- `DeviceCard` - 单个设备信息卡片
- `DeviceSidebar` - 设备列表侧边栏
- `DevicePanel` - 设备操作面板(ChatBox + Screen Monitor)
- 设备状态完全隔离,互不影响
**核心特点**:
- ✅ 无任务队列,简化设计
- ✅ 无复杂调度,每个设备独立运行
- ✅ 实时 WebSocket 通信,支持流式响应
- ✅ 自动设备发现和状态同步(每 3 秒刷新)
## 🛠️ 开发指南
### 快速开发
```bash
# 后端开发(自动重载)
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](https://github.com/zai-org/Open-AutoGLM) 构建,感谢 zai-org 团队在 AutoGLM 上的卓越工作。