OpenCode AI coding agent for Android — 将开源 OpenCode (anomalyco/opencode)(172k⭐)移植到 Android 平台。
⚠️ 早期开发中。不受 OpenCode 官方支持或背书。
- ✅ 内置 OpenCode Server 管理 — 在手机上启动 OpenCode HTTP Server,无需外部机器
- ✅ Material 3 聊天界面 — Jetpack Compose UI,Markdown 渲染,流式响应
- ✅ Plan/Build 双模式 — 只读规划 vs 全权限编码,一键切换
- ✅ 工具调用可视化 — 实时展示 Agent 工具调用的状态和结果
- ✅ Android 专属 MCP 工具 — Shizuku 特权操作、截图、GPS 定位、短信/电话
- 🔜 多会话管理 — 创建/恢复/删除会话
- 🔜 多服务器连接 — 连接远程 OpenCode Server
- 🔜 Todo 追踪面板 — Agent 任务进度一览
- 🔜 文件 Diff 查看器 — 实时预览代码修改
┌──────────────────────────────────────────────────────────┐
│ 用户界面层 (Compose Material 3) │
│ [💬 聊天] [🔧 工具] [📦 扩展] [⚙️ 设置] │
├──────────────────────────────────────────────────────────┤
│ 桥接层 (Ktor HTTP Client) │
│ OpenCodeBridge → opencode serve REST API │
│ - GET/POST /session │
│ - POST /session/{id}/message (流式响应) │
│ - GET /session/{id}/todo │
│ - GET /global/health │
├──────────────────────────────────────────────────────────┤
│ 运行时层 (Android Foreground Service) │
│ OpenCodeRuntimeService │
│ ├── 管理 opencode serve 进程生命周期 │
│ ├── 版本检测与自动更新 │
│ └── 健康监控 + 崩溃重启 │
├──────────────────────────────────────────────────────────┤
│ 基础设施层 │
│ Termux / proot Linux │ Shizuku │ Android MCP 工具 │
│ 文件系统 │ 网络 │ 权限管理 │ 通知 │
└──────────────────────────────────────────────────────────┘
本项目站在巨人的肩膀上:
| 项目 | Stars | 借鉴方向 |
|---|---|---|
| Hope2333/opencode-termux | ⭐94 | OpenCode ARM64 Android deb 包 + glibc 适配 |
| coulious/opencode-android | ⭐1 | Ktor API 客户端 + 数据模型 + Markdown 渲染 |
| weige369/codex-android | ⭐1 | 整体架构设计 + MCP 桥接 + Shizuku 集成 |
| mittaus/opencode-mobile-client | ⭐4 | 多项目管理 + SSE 实时推送设计 |
| 类别 | 技术 |
|---|---|
| 语言 | Kotlin 2.3.10 |
| UI | Jetpack Compose + Material 3 |
| 构建 | AGP 9.0.0 + Gradle + Version Catalog |
| 网络 | Ktor HTTP Client + OkHttp WebSocket |
| 异步 | kotlinx.coroutines |
| 序列化 | kotlinx.serialization |
| Android | API 27+ (8.1), Target API 35 (15) |
- JDK 17+
- Android SDK (Compile SDK 35)
- Gradle Wrapper(已包含)
# 初始化环境(ARM64 Linux 需要)
chmod +x ./setup_android_env.sh
./setup_android_env.sh
# 编译 Debug APK
./gradlew assembleDebug
# APK 位置
# app/build/outputs/apk/debug/app-debug.apkOpenCode Android 客户端需要以下环境之一来运行 OpenCode Server:
| 环境 | 说明 | 状态 |
|---|---|---|
| Termux | 通过 opencode-termux deb 包安装 | 推荐 |
| proot Linux | 在 Ubuntu 环境中运行 opencode npm 包 | 备选 |
首次启动时,App 会引导安装所需环境。
opencode-android/
├── app/
│ ├── src/main/java/com/opencode/android/
│ │ ├── bridge/ # HTTP 通信桥接层
│ │ │ ├── OpenCodeBridge.kt
│ │ │ └── OpenCodeApi.kt
│ │ ├── engine/ # OpenCode 引擎管理
│ │ │ └── OpenCodeManager.kt
│ │ ├── provider/ # AI 提供者
│ │ │ ├── OpenCodeAgentProvider.kt
│ │ │ └── OpenCodeMCPBridge.kt
│ │ ├── service/ # Android 前台服务
│ │ │ ├── OpenCodeRuntimeService.kt
│ │ │ └── OpenCodeNotifications.kt
│ │ ├── ui/ # Compose UI
│ │ │ ├── MainActivity.kt
│ │ │ ├── chat/ # 聊天界面
│ │ │ ├── settings/ # 设置界面
│ │ │ ├── extensions/ # MCP/Skills 管理
│ │ │ └── theme/ # Material 3 主题
│ │ ├── data/ # 数据层
│ │ │ ├── model/ # API 数据模型
│ │ │ └── repository/ # Repository 层
│ │ ├── util/ # 工具类
│ │ └── security/ # Keystore 安全存储
│ ├── src/main/res/ # 资源文件
│ └── build.gradle.kts
├── gradle/
│ └── libs.versions.toml # 依赖版本管理
├── build.gradle.kts
├── settings.gradle.kts
└── setup_android_env.sh
MIT License — 详见 LICENSE
- OpenCode — MIT 许可的开源 AI 编码代理
- Operit — Android AI 底座项目
- opencode-termux — Termux 适配方案