Skip to content

weige369/opencode-android

Repository files navigation

opencode-android

License: MIT Android Kotlin

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.apk

前置依赖

OpenCode 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

致谢

About

OpenCode AI coding agent for Android — 将开源 OpenCode (anomalyco/opencode) 移植到 Android 平台,支持本地 AI 编程代理。

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors