Thanksgiver233 / dsh-mobile

Listed

DeepSeek Harness Mobile 是 DeepSeek Harness 的 Android 原生应用,将原本仅支持 PC 浏览器的 AI Agent 框架完整迁移至移动端。采用 Kotlin + Jetpack Compose 开发,内置 Node.js ARM64 二进制和 dsh CLI,实现零依赖安装——下载 APK 即可运行,无需 Root、Termux 或额外环境配置。应用覆盖网页端全部核心功能:多会话管理、流式对话、插件市场、模型设置等,并针对竖屏触控体验深度优化。技术上采用 MVVM 架构、Dagger Hilt 依赖注入、Room 本地数据库,后台 Foreground Service 确保引擎持续运行,支持离线场景和弱网环境自动重连。

mainSkill View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:Thanksgiver233/dsh-mobile

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit b30b365Synced Aug 18, 2026

DeepSeek Harness Mobile

DeepSeek Harness Android 应用 — 原生 Kotlin Android 应用,零依赖运行 DeepSeek Harness 引擎,覆盖网页端全部功能。

License: MIT Android API


项目简介

DeepSeek Harness (dsh) 是 DeepSeek AI 开源的 Agent 框架,原仅支持 PC 浏览器访问。本项目将其完整迁移至 Android 平台,实现:

  • 零依赖安装:内置 Node.js + dsh CLI,下载即用,无需 Root/Termux/额外下载
  • 全功能覆盖:完美复刻 Web 端对话、插件市场、会话管理、设置等核心功能
  • 竖屏优化:专为手机屏幕设计的竖版 UI,流畅触控交互
  • 本地优先:支持本地模式(Android)和云端模式(跨平台)双架构

解决了什么问题?

痛点解决方案
dsh 仅支持 PC 浏览器,无法在手机上使用原生 Android 应用,随时随地使用
需要 Node.js 环境和命令行操作内置运行时,开箱即用
移动端体验不佳,Web UI 在手机上难以操作原生竖屏 UI,适配触控交互
移动网络不稳定导致连接中断本地引擎保活机制 + 自动重连
多设备数据同步需求SQLite 本地存储 + 云端同步可选

快速上手

前置条件

  • Android Studio Ladybug 或更新版本
  • JDK 17+
  • Android SDK API 34
  • Gradle 8.5+

构建步骤

# 1. 克隆项目
git clone https://github.com/<your-org>/dsh-mobile.git
cd dsh-mobile

# 2. 准备引擎资源(需从 deepseek-harness 编译)
# 将编译好的 node 和 dsh 二进制放入 app/src/main/assets/engine/
# 或使用预构建版本

# 3. 构建 Debug APK
./gradlew assembleDebug

# 4. 构建 Release APK(需签名配置)
./gradlew assembleRelease

安装到设备

# 通过 ADB 安装
adb install app/build/outputs/apk/debug/dsh-mobile-debug.apk

# 或直接发送文件到手机安装

功能特性

核心功能

  • 对话界面:气泡消息、代码高亮、流式响应
  • 会话管理:创建/切换/搜索/删除会话
  • 插件市场:浏览和安装 DSH 插件
  • 模型设置:切换默认模型、配置 API Key
  • 后台保活:Foreground Service 确保引擎持续运行

技术亮点

特性实现方式
本地引擎运行内置 Node.js ARM64 二进制 + dsh CLI
WebView 适配响应式布局 + JavaScript 桥接
数据持久化Room Database + DataStore
网络通信OkHttp + WebSocket
状态管理Jetpack Compose + ViewModel + StateFlow
依赖注入Dagger Hilt

项目结构

dsh-mobile/
├── app/src/main/
│   ├── java/com/deepseek/dshmobile/
│   │   ├── DSHApplication.kt      # 应用入口 + Hilt 初始化
│   │   ├── di/                    # Dagger Hilt 组件
│   │   ├── service/               # 引擎管理服务
│   │   │   ├── DshEngineService.kt  # Foreground Service
│   │   │   └── DshEngineManager.kt  # 引擎生命周期管理
│   │   ├── database/              # Room 数据库
│   │   ├── repository/            # 数据仓库
│   │   ├── ui/
│   │   │   ├── MainActivity.kt    # Compose 主界面
│   │   │   ├── theme/             # Material 3 主题
│   │   │   ├── components/        # 自定义组件
│   │   │   ├── screens/           # 页面 Screen
│   │   │   ├── nav/               # 导航
│   │   │   └── viewmodel/         # ViewModel
│   │   └── receiver/              # 系统广播接收器
│   ├── res/                       # 资源文件
│   └── assets/engine/             # 引擎二进制(需自行准备)
├── gradle/
│   └── libs.versions.toml         # 版本目录
├── build.gradle.kts               # 根构建配置
└── settings.gradle.kts            # 项目设置

架构设计

graph TB
    subgraph "Android App"
        A[MainActivity - Compose UI] --> B[SessionListScreen]
        A --> C[ChatScreen]
        A --> D[SettingsScreen]
        B --> E[MainViewModel]
        C --> E
        D --> E
        E --> F[SessionRepository]
        E --> G[DshEngineManager]
        F --> H[(Room Database)]
        G --> I[Node.js + dsh CLI]
    end

    subgraph "Engine Layer"
        I --> J[dsh web server :3080]
        J --> K[WebView / REST API]
    end

    subgraph "External"
        K --> L[DeepSeek API]
        G --> M[Plugin Marketplace]
    end

GitHub 仓库配置

发布到 GitHub 时,建议使用以下 .gitignore 模板:

# 构建输出
*.apk
*.aab
/build/
.gradle/

# 本地配置
local.properties
*.log

# Android Studio
.idea/
*.iml
.cxx/

# 密钥文件(不要提交)
*.jks
*.keystore

# 生成的文件
app/build/
app/generated/

# DSH 引擎资产(二进制文件)
app/src/main/assets/engine/

推荐选择:在 GitHub 创建仓库时选择 "Android" 模板,然后添加上述自定义规则。


贡献指南

欢迎提交 Issue 和 Pull Request!

开发流程

# 1. Fork 本仓库
# 2. 创建特性分支
git checkout -b feature/amazing-feature

# 3. 提交更改
git commit -m 'feat: add amazing feature'

# 4. 推送到分支
git push origin feature/amazing-feature

# 5. 创建 Pull Request

构建验证

# 运行所有测试
./gradlew test

# 检查代码质量
./gradlew lintDebug

# 构建 Debug APK
./gradlew assembleDebug

协议

本项目采用 MIT License


致谢

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

Contributing guideDetected

Repository information

Language
Kotlin
License
MIT
Last updated
Aug 17, 2026, 3:50 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.