[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-105767":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":9,"totalLinesOfCode":9,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":9,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":16,"stars30d":16,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":18,"topics":20,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":9,"trendingCount":16,"starSnapshotCount":16,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},105767,"Mobile-Harness","techjarves\u002FMobile-Harness","techjarves","Claude Code on Android:  AI-powered mobile coding IDE for Android — chat with a coding agent, run Linux commands, edit files, review diffs, and preview web apps directly from your phone. No root required.",null,"https:\u002F\u002Fgithub.com\u002Ftechjarves\u002FMobile-Harness","Kotlin",735,212,18,26,0,43.98,false,"main",[21,22],"claude-code","mobile-ide","2026-11-01 00:17:32","\u003Cdiv align=\"center\">\n\n  \u003Cimg src=\"assets\u002Freadme\u002Flogo.svg\" alt=\"Mobile Harness Logo\" width=\"104\" height=\"104\" style=\"border-radius: 24px;\" \u002F>\n\n  # Mobile Harness\n\n  ### *The complete autonomous AI development workspace for Android.*\n\n  **Chat with coding agents, edit projects, execute real Linux commands, and preview live web servers — all directly on your phone.**\n\n  \u003Cbr \u002F>\n\n  [![Release v1.0.7](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FRelease-v1.0.7-F28C52?style=flat-square&logo=github&logoColor=white)](https:\u002F\u002Fgithub.com\u002Ftechjarves\u002FMobile-Harness\u002Freleases\u002Ftag\u002Fv1.0.7)\n  [![Android 9+](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAndroid-9%2B-3DDC84?style=flat-square&logo=android&logoColor=white)](#system-requirements)\n  [![ARM64](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FCPU-ARM64-5B8DEF?style=flat-square)](#system-requirements)\n  [![MIT License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-8B7CF6?style=flat-square&logo=opensourceinitiative&logoColor=white)](LICENSE)\n  [![Watch demo](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FWatch-Demo-FF0000?style=flat-square&logo=youtube&logoColor=white)](https:\u002F\u002Fwww.youtube.com\u002Ftechjarves)\n\n  \u003Cbr \u002F>\n\n  [**Download Online APK**](https:\u002F\u002Fgithub.com\u002Ftechjarves\u002FMobile-Harness\u002Freleases\u002Fdownload\u002Fv1.0.7\u002Fmobile-harness-online-v1.0.7.apk) &nbsp;•&nbsp;\n  [**Download Offline APK**](https:\u002F\u002Fgithub.com\u002Ftechjarves\u002FMobile-Harness\u002Freleases\u002Fdownload\u002Fv1.0.7\u002Fmobile-harness-offline-v1.0.7.apk) &nbsp;•&nbsp;\n  [**Watch Walkthrough (3 min)**](https:\u002F\u002Fyoutu.be\u002FQzAau52Z7yQ) &nbsp;•&nbsp;\n  [**Quickstart Guide**](#quickstart) &nbsp;•&nbsp;\n  [**Architecture**](#architecture) &nbsp;•&nbsp;\n  [**Build from Source**](#developer-guides)\n\n\u003C\u002Fdiv>\n\n\u003Cbr \u002F>\n\n---\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fyoutu.be\u002Fx5T56timmQw\" target=\"_blank\" rel=\"noopener noreferrer\">\n    \u003Cimg src=\"https:\u002F\u002Fimg.youtube.com\u002Fvi\u002Fx5T56timmQw\u002Fmaxresdefault.jpg\" alt=\"Mobile Harness Walkthrough and Live Product Demo\" width=\"920\" \u002F>\n  \u003C\u002Fa>\n  \u003Cbr \u002F>\n  \u003Csub>Watch the product walkthrough and demo &nbsp;|&nbsp; \u003Ci>Setting up Ubuntu, connecting Claude Code, and building an app on Android\u003C\u002Fi>\u003C\u002Fsub>\n\u003C\u002Fp>\n\n---\n\n\u003Cbr \u002F>\n\n> [!IMPORTANT]\n> **Environment Security Notice**  \n> Mobile Harness runs on **ARM64 Android devices** using a private userspace PRoot layer. While isolated from other apps via standard Android sandbox permissions, PRoot is not a virtualization boundary or hardened security jail. Only execute projects and dependencies you own or trust.\n\n\u003Cbr \u002F>\n\n## Download Mobile Harness\n\n\u003Cdiv align=\"center\">\n  \u003Ch3>Choose the edition that fits your setup\u003C\u002Fh3>\n  \u003Cp>Both editions contain the complete Mobile Harness app and support secure in-app updates beginning with v1.0.3.\u003C\u002Fp>\n\u003C\u002Fdiv>\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd width=\"50%\" valign=\"top\" align=\"center\">\n      \u003Ch3>Online Edition\u003C\u002Fh3>\n      \u003Cp>\u003Cstrong>89.1 MB · Recommended\u003C\u002Fstrong>\u003C\u002Fp>\n      \u003Cp>Start with the smaller APK. Core, Python, and Android runtime bundles are downloaded only when needed.\u003C\u002Fp>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftechjarves\u002FMobile-Harness\u002Freleases\u002Fdownload\u002Fv1.0.7\u002Fmobile-harness-online-v1.0.7.apk\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDownload-Online_APK-F28C52?style=for-the-badge&logo=android&logoColor=white\" alt=\"Download Online APK\" \u002F>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd width=\"50%\" valign=\"top\" align=\"center\">\n      \u003Ch3>Offline Edition\u003C\u002Fh3>\n      \u003Cp>\u003Cstrong>889.4 MB · Everything included\u003C\u002Fstrong>\u003C\u002Fp>\n      \u003Cp>Includes the Core, Python, and Android runtime bundles for setup with limited or unavailable internet.\u003C\u002Fp>\n      \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftechjarves\u002FMobile-Harness\u002Freleases\u002Fdownload\u002Fv1.0.7\u002Fmobile-harness-offline-v1.0.7.apk\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDownload-Offline_APK-5B8DEF?style=for-the-badge&logo=android&logoColor=white\" alt=\"Download Offline APK\" \u002F>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cp align=\"center\">\n  \u003Cstrong>ARM64 Android 9+\u003C\u002Fstrong>\u003Cbr \u002F>\n  \u003Csub>Direct APK installation · No root required · No USB or wireless ADB pairing\u003C\u002Fsub>\n\u003C\u002Fp>\n\n\u003Cbr \u002F>\n\n## Capabilities\n\nMobile Harness unites modern **Jetpack Compose UI** with a self-contained **Ubuntu 20.04 LTS subsystem**. It gives you a desktop-class software development environment in your pocket without requiring root access, unlocked bootloaders, or external applications like Termux.\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Ctd width=\"50%\" valign=\"top\">\n      \u003Ch3>Autonomous Agent Coding\u003C\u002Fh3>\n      \u003Cp>Native integrations with Claude Code, DeepSeek Harness, and Antigravity CLI. Each agent has an isolated driver, settings, and resumable project conversations.\u003C\u002Fp>\n    \u003C\u002Ftd>\n    \u003Ctd width=\"50%\" valign=\"top\">\n      \u003Ch3>Isolated Linux Subsystem\u003C\u002Fh3>\n      \u003Cp>A full Ubuntu 20.04 ARM64 userspace running inside PRoot. Includes Node.js, npm, Git, OpenSSL, and essential shell tooling out of the box.\u003C\u002Fp>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd width=\"50%\" valign=\"top\">\n      \u003Ch3>Instant Web Preview\u003C\u002Fh3>\n      \u003Cp>Spun up a Vite, Next.js, or Express server? Test web interfaces in real-time within a restricted, sandboxed mobile WebView with console telemetry.\u003C\u002Fp>\n    \u003C\u002Ftd>\n    \u003Ctd width=\"50%\" valign=\"top\">\n      \u003Ch3>Keystore-Grade Encryption\u003C\u002Fh3>\n      \u003Cp>Your API keys and credentials are encrypted using Android Keystore-backed AES-256 GCM. No telemetry, no remote proxies, and zero plain-text leaks.\u003C\u002Fp>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd width=\"50%\" valign=\"top\">\n      \u003Ch3>Persistent Project Sessions\u003C\u002Fh3>\n      \u003Cp>Keep projects, chat history, files, and task context together so work can continue across app sessions.\u003C\u002Fp>\n    \u003C\u002Ftd>\n    \u003Ctd width=\"50%\" valign=\"top\">\n      \u003Ch3>Native File Workflow\u003C\u002Fh3>\n      \u003Cp>Browse, edit, search, and attach files directly from the app interface. Interoperate with system storage via Android Storage Access Framework (SAF).\u003C\u002Fp>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd width=\"50%\" valign=\"top\">\n      \u003Ch3>On-device Android Builds\u003C\u002Fh3>\n      \u003Cp>Build, install, and launch Android APKs directly on the phone without USB or wireless ADB pairing.\u003C\u002Fp>\n    \u003C\u002Ftd>\n    \u003Ctd width=\"50%\" valign=\"top\">\n      \u003Ch3>Optional Toolchains\u003C\u002Fh3>\n      \u003Cp>Add Python, Android, C\u002FC++, and PHP tooling only when a project needs it.\u003C\u002Fp>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cbr \u002F>\n\n## Workspace Interface\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Cth width=\"33%\" align=\"center\">Projects\u003C\u002Fth>\n    \u003Cth width=\"33%\" align=\"center\">Terminal\u003C\u002Fth>\n    \u003Cth width=\"33%\" align=\"center\">Settings\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\" valign=\"top\">\n      \u003Cimg src=\"assets\u002Freadme\u002Fprojects.png\" alt=\"Projects workspace overview\" width=\"100%\" \u002F>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" valign=\"top\">\n      \u003Cimg src=\"assets\u002Freadme\u002Fterminal.png\" alt=\"Linux terminal execution\" width=\"100%\" \u002F>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" valign=\"top\">\n      \u003Cimg src=\"assets\u002Freadme\u002Fsettings.png\" alt=\"Runtime and provider configuration\" width=\"100%\" \u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Csub>Create, organize, and resume isolated workspace sessions.\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Csub>Execute real Linux commands and scripts with instant output.\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Csub>Manage AI providers, installed toolchains, themes, and runtime health.\u003C\u002Fsub>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n\u003Cbr \u002F>\n\n## Quickstart\n\nGet up and running in 3 guided steps:\n\n### 1. Download & Install\nDownload the latest signed release APK from [GitHub Releases](https:\u002F\u002Fgithub.com\u002Ftechjarves\u002FMobile-Harness\u002Freleases\u002Flatest).\n\n```text\nTarget Architecture : ARM64 (arm64-v8a)\nPackage Version     : v1.0.7\nMinimum OS Level    : Android 9.0 (API 28)\n```\n\n### 2. Guided Bootstrap (~10 Minutes)\nLaunch the application and follow the interactive setup wizard:\n\n\u003Ctable>\n  \u003Ctr>\n    \u003Cth width=\"33%\" align=\"center\">1 · System Readiness\u003C\u002Fth>\n    \u003Cth width=\"33%\" align=\"center\">2 · Toolchains\u003C\u002Fth>\n    \u003Cth width=\"33%\" align=\"center\">3 · AI Provider\u003C\u002Fth>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\" valign=\"top\">\n      \u003Cimg src=\"assets\u002Freadme\u002Fsetup-notifications.png\" alt=\"System compatibility check\" width=\"100%\" \u002F>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" valign=\"top\">\n      \u003Cimg src=\"assets\u002Freadme\u002Fsetup-toolchains.png\" alt=\"Toolchain selection\" width=\"100%\" \u002F>\n    \u003C\u002Ftd>\n    \u003Ctd align=\"center\" valign=\"top\">\n      \u003Cimg src=\"assets\u002Freadme\u002Fsetup-provider.png\" alt=\"Provider connection\" width=\"100%\" \u002F>\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd align=\"center\">\u003Csub>Verifies device storage, CPU architecture, and background service permissions.\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Csub>Select core Ubuntu runtime and optional development stacks.\u003C\u002Fsub>\u003C\u002Ftd>\n    \u003Ctd align=\"center\">\u003Csub>Securely store your API keys in Android Keystore.\u003C\u002Fsub>\u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n### 3. Create & Build\n1. Tap **New Project** or launch an instant **Quick Project**.\n2. Open the **AI Workspace** and describe what you want to build.\n3. Watch the agent inspect files, draft code, run builds, and launch local web previews.\n\n\u003Cbr \u002F>\n\n## Model Providers\n\nMobile Harness uses Claude Code's Anthropic-compatible API protocol. You can connect official endpoints or route requests through compatible translation proxies:\n\n| Provider | Integration Type | Streaming | Tool Calling | Status | Notes |\n| :--- | :---: | :---: | :---: | :---: | :--- |\n| **Anthropic API** | Direct Key | Supported | Supported | `Recommended` | Primary supported backend |\n| **OpenRouter** | Gateway | Supported | Supported | `Supported` | Routes compatible models through one API key |\n| **DeepSeek** | Direct Key | Supported | Supported | `Supported` | Anthropic-compatible endpoint |\n| **Kimi** | Direct Key | Supported | Supported | `Supported` | Anthropic-compatible Moonshot endpoint |\n| **Custom API** | Endpoint Override | Compatible | Compatible | `Experimental` | User-configured gateway |\n\n> [!NOTE]\n> API keys are stored with hardware-backed Android Keystore AES-256-GCM encryption. Antigravity Google OAuth credentials are created and retained only by the official `agy` CLI in its persistent Linux home; Mobile Harness never reads or copies its tokens.\n\n### Coding agents\n\n| Agent | Authentication | Installation | Isolation |\n| :--- | :--- | :--- | :--- |\n| **Claude Code** | Claude account or API-key providers | Included in Core | Existing Claude bridge and settings |\n| **DeepSeek Harness** | API-key providers | On demand | Existing DSH bridge and settings |\n| **Antigravity CLI** | Official Google OAuth flow | Version-pinned online download | Dedicated `agy` bridge, model, effort, and conversation IDs |\n\nFor Antigravity, select **Antigravity CLI**, install it, and tap **Sign in with Google**. Mobile Harness starts the official CLI login, opens the freshly generated Google URL in the system browser, and sends the returned one-time code back to that waiting process. The app does not embed Google login in a WebView and does not construct its own OAuth request.\n\n> [!WARNING]\n> Antigravity tasks currently launch with `--dangerously-skip-permissions`. This gives the official agent permission to run tools without individual PocketDev approval prompts. Use it only with projects and prompts you trust. Account quotas and service limits still apply; signing in does not provide unlimited usage.\n\nWhen Android is selected during onboarding, Mobile Harness installs that complete toolchain into its private Ubuntu environment. Android projects can then be built with the workspace play button. The resulting debug APK is passed directly to Android's system package installer and launched after installation; USB debugging, wireless debugging, an ADB port, and a pairing code are not required. Android still requires the user to allow installs from Mobile Harness and confirm each installation.\n\n\u003Cbr \u002F>\n\n## Architecture\n\nMobile Harness bridges native Android Jetpack Compose to an isolated PRoot Linux execution layer via an optimized C++ JNI bridge:\n\n```mermaid\nflowchart TB\n    subgraph Host[\" Android Native Host (Kotlin + Jetpack Compose) \"]\n        UI[\"Modern UI Layer\u003Cbr\u002F>Projects • Chat • Terminal • Web Preview\"]\n        Service[\"Foreground Runtime Service\u003Cbr\u002F>Process Lifecycle & WakeLocks\"]\n        Keystore[\"Android Keystore\u003Cbr\u002F>AES-256 GCM Credentials\"]\n        Bridge[\"C++ JNI Process Bridge\u003Cbr\u002F>Native Launcher & Pipe Multiplexer\"]\n    end\n\n    subgraph Subsystem[\" Private Linux Subsystem (PRoot ARM64) \"]\n        Ubuntu[\"Ubuntu 20.04 LTS Subsystem\u003Cbr\u002F>Rootless Userspace Environment\"]\n        Agent[\"Agent Registry\u003Cbr\u002F>Claude • DeepSeek • Antigravity\"]\n        Tools[\"Development Toolchains\u003Cbr\u002F>Node.js • Git • Python • C++\"]\n        Workspace[\"Local Project Workspace\u003Cbr\u002F>Files • Git History • Checkpoints\"]\n    end\n\n    subgraph Cloud[\" Model Providers \"]\n        Anthropic[\"Anthropic \u002F API Gateways\"]\n        Gateways[\"Google Antigravity Service\"]\n    end\n\n    UI \u003C--> Service\n    Service \u003C--> Bridge\n    Bridge \u003C--> Subsystem\n    Keystore -.-> UI\n    Agent \u003C--> Cloud\n    Agent --> Tools\n    Tools \u003C--> Workspace\n    UI -.-> Workspace\n\n    classDef hostStyle fill:#0f172a,stroke:#38bdf8,stroke-width:1.5px,color:#f8fafc;\n    classDef subStyle fill:#1e1b4b,stroke:#818cf8,stroke-width:1.5px,color:#f8fafc;\n    classDef cloudStyle fill:#18181b,stroke:#f59e0b,stroke-width:1.5px,color:#f8fafc;\n\n    class UI,Service,Keystore,Bridge hostStyle;\n    class Ubuntu,Agent,Tools,Workspace subStyle;\n    class Anthropic,Gateways cloudStyle;\n```\n\n### Core Runtime Components\n* **Base Environment**: Ubuntu 20.04 ARM64 verified rootfs\n* **Agent Engine**: Registry-selected, isolated drivers for Claude Code, DeepSeek Harness, and the official Antigravity CLI\n* **Native Tooling**: Node.js LTS, npm, Git, OpenSSL, curl, and GNU coreutils\n* **Process Virtualization**: PRoot user-space architecture emulation with zero kernel modifications\n\n\u003Cbr \u002F>\n\n## System Requirements\n\n| Metric | Minimum Specification | Recommended Specification |\n| :--- | :--- | :--- |\n| **Operating System** | Android 9.0 (API level 28) | Android 13.0+ (API level 33+) |\n| **CPU Architecture** | 64-bit ARM (`arm64-v8a`) | High-performance 8-Core ARM64 (Snapdragon 8 Gen 1+ \u002F Dimensity) |\n| **RAM** | 4 GB | 8 GB or more |\n| **Free Storage** | 2.5 GB (Base Runtime) | 8.0 GB+ (For multi-language toolchains and build caches) |\n| **Network** | Stable connection for setup & API | High-speed Wi-Fi during initial rootfs provisioning |\n\n\u003Cbr \u002F>\n\n---\n\n## Developer Guides\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Building from source (Android Studio & NDK)\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cbr \u002F>\n\n### Prerequisites\n* **Android Studio**: Ladybug \u002F Hedgehog or newer\n* **Android SDK**: API Level 36 (`compileSdk 36`)\n* **Java Development Kit**: JDK 17 (Eclipse Temurin or OpenJDK)\n* **Android NDK**: `26.1.10909125`\n* **CMake**: `3.22.1`\n\n### Clone & Build Debug APK\n```bash\n# Clone the repository\ngit clone https:\u002F\u002Fgithub.com\u002Ftechjarves\u002FMobile-Harness.git\ncd Mobile-Harness\n\n# Build the standard ARM64 debug binary\n.\u002Fgradlew assembleDebug\n\n# Deploy directly to a connected test device\nadb install -r app\u002Fbuild\u002Foutputs\u002Fapk\u002Fdebug\u002Fapp-debug.apk\n```\n\n### Quality Assurance & Testing\n```bash\n# Run unit tests\n.\u002Fgradlew testDebugUnitTest\n\n# Run static analysis linter\n.\u002Fgradlew lintDebug\n```\n\n### Target Profiles\n* **Direct Sideload APK** (Default): Targets API 28 to preserve proven userspace execution paths under Android 10-14.\n* **Google Play Compliance Build**:\n  ```bash\n  .\u002Fgradlew -PplayBuild=true assembleDebug\n  ```\n  Refer to the [Google Play Release Checklist](docs\u002FPLAY_STORE_CHECKLIST.md) for signing and permission policies.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Optional toolchains and development stacks\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cbr \u002F>\n\nMobile Harness allows downloading optional developer packs on demand to conserve space:\n\n* **Python Suite**: Python 3.10+, pip, virtualenv, and essential scientific C-extensions.\n* **Android & JVM**: OpenJDK 17 headless runtime and Gradle build tools.\n* **C \u002F C++ Compiler Suite**: GCC\u002FG++, Clang, Make, and CMake for native tool compilation.\n* **PHP Development**: PHP CLI runtime, Composer, and standard database extensions.\n\n> *Note: Kernel-level virtualization technologies such as Docker, KVM, systemd services, and nested hardware emulators are not supported under PRoot.*\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Repository directory structure\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cbr \u002F>\n\n```text\nMobile-Harness\u002F\n├── app\u002Fsrc\u002Fmain\u002F\n│   ├── java\u002Fcom\u002Fjarves\u002Fmh\u002F\n│   │   ├── data\u002F       # Preferences, Keystore AES encryption, SQLite persistence\n│   │   ├── model\u002F      # Data entities: Projects, Chats, Files, Tool calls\n│   │   ├── runtime\u002F    # PRoot installer, C++ agent bridge, foreground services\n│   │   └── ui\u002F         # Jetpack Compose screens, Material 3 theme, ViewModels\n│   ├── cpp\u002F            # Native C++ launcher, pseudo-terminal pipe handler\n│   ├── assets\u002F         # Verified rootfs checksums, licenses, base configuration\n│   └── res\u002F            # Android icons, XML drawables, vector assets\n├── fastlane\u002F           # Play Store metadata, graphics, and release automation\n└── docs\u002F               # In-depth architectural notes & Play Store review guides\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>\u003Cb>Security model and data privacy\u003C\u002Fb>\u003C\u002Fsummary>\n\n\u003Cbr \u002F>\n\n* **Zero Cloud Intermediaries**: Mobile Harness connects your device directly to your chosen AI endpoint. No intermediate relays or telemetry servers collect your prompts or code.\n* **Scoped Storage**: Project imports and exports utilize Android's official Storage Access Framework (SAF) instead of broad shared storage access.\n* **Cryptographic Checksums**: Root filesystem archives and Claude Code CLI packages are verified via SHA-256 checksums prior to extraction.\n* **Encrypted Secrets**: API tokens are encrypted in hardware-backed storage via Android Keystore.\n\n- ARM64 phones only\n- No hardened isolation for hostile code\n- Terminal input\u002Foutput currently uses a process bridge rather than a complete PTY emulator; full-screen interactive programs may render incorrectly\n- Background tasks are subject to Android process and battery policies\n- Custom providers may lack Claude-compatible thinking, tool use, token counting, or streaming behavior\n- Large builds can be slow and memory-intensive under PRoot\n- Runtime installation requires a substantial download and free storage\n- Project-specific Android libraries may still be downloaded by Gradle when they are not already in the bundled Maven cache\n\nRead our complete [Privacy Policy](PRIVACY.md).\n\n\u003C\u002Fdetails>\n\nMobile Harness is currently intended for signed direct APK distribution and private testing. Its Android-project workflow requests permission to submit user-built APKs to Android's package installer, which requires a dedicated Google Play policy declaration and approval if distributed through Play.\n\n\u003Cbr \u002F>\n\n## Current Limitations\n\n* **Architecture**: Exclusively supports 64-bit ARM (`arm64-v8a`) hardware.\n* **Process Isolation**: PRoot maps file systems and IDs in user space; it is not a cryptographically hardened container or VM.\n* **Terminal Emulation**: The process bridge handles standard CLI workflows and REPLs; specialized ncurses applications may experience minor layout artifacts.\n* **OS Process Management**: Heavy compilation workloads may be throttled if Android applies aggressive battery optimization. It is recommended to exempt Mobile Harness from battery optimization in device settings.\n\n\u003Cbr \u002F>\n\n## Legal & Trademarks\n\n* Mobile Harness is an independent open-source project and is not affiliated with, endorsed by, or sponsored by Anthropic.\n* **Claude** and **Claude Code** are trademarks of Anthropic, PBC. Claude Code CLI is downloaded directly from Anthropic's official distribution endpoints during setup and remains governed by Anthropic's license terms.\n* Ubuntu, Android, Kotlin, Node.js, Git, and other registered trademarks belong to their respective copyright holders.\n* Third-party open-source licenses are compiled in [`app\u002Fsrc\u002Fmain\u002Fassets\u002Flicenses`](app\u002Fsrc\u002Fmain\u002Fassets\u002Flicenses).\n\n\u003Cbr \u002F>\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE). Third-party runtime binaries and packages remain governed by their respective upstream licenses.\n\n\u003Cbr \u002F>\n\n---\n\n\u003Cdiv align=\"center\">\n  \u003Csub>Crafted for developers who want a serious, uncompromised development environment wherever they go.\u003C\u002Fsub>\n  \u003Cbr \u002F>\n  \u003Csub>Copyright © 2026 Tech Jarves. All rights reserved.\u003C\u002Fsub>\n\u003C\u002Fdiv>\n",2,"2026-10-31 04:27:24","trending"]