tyron12233

CodeAssist

tyron12233

CodeAssist is an IDE running on Android devices that builds Android/Java projects without a Gradle daemon, offering completion, block editing, and on-device Git.

v3.33.0
Published at
2d ago
2,073
Stars
3,599
Download
Synced at
1d ago

Latest release

v3.33.0Oct 26, 2026, 09:47 PM
Downloads slow? Switch the source anytime above

README

Project Overview

Writing Android apps on a phone usually stalls on two things: Gradle is too heavy and the toolchain refuses to run. CodeAssist rebuilds the whole stack instead: projects are declarative models compiled into an incremental task DAG with fingerprint up-to-date checks and a persistent cache, driving aapt2, D8/R8, and apksigner directly with no Gradle daemon. Java completion runs on Eclipse JDT, Kotlin completion is beta, and the UI ships as Compose Multiplatform with desktop and Android launchers. The regression suite passes 2,170 tests, with Java completion quality at 100% recall and 75% top-1.

A real IDE in your pocket, from completion to signed installs.

Item Value
Platform Android (ART) + desktop launcher
Stack Kotlin, 60 layered modules, Compose Multiplatform UI
License GPL-3.0-or-later, plugin SPI adds Classpath-exception-2.0
Testing 2,170 passing tests across 386 suites
Build Gradle wrapper + JDK 17+

Core Capabilities

  • Java intelligence: Eclipse JDT error-tolerant parsing, ranked completion, diagnostics, and quick fixes at 2.8–4.3 ms per keystroke
  • Kotlin completion (beta): full on-device Kotlin completion tuned to Java's ranked experience
  • Block editing: any Java file projects into a Scratch-style typed block tree, writing back the smallest possible edit with comments intact
  • Android XML assist: tag, attribute, and resource completion for layouts and manifests with live validation
  • Real APK builds on device: resolve, compile, dex, package, sign, and install without a laptop
  • Git on device: JGit-powered stage, commit, branch, merge, stash, and push, with GitHub sign-in for private clones and PRs
  • Extension everywhere: module types, build systems, language backends, analyzers, and quick fixes all plug in via SPI

Engineering Layout

  • Layered deps: platform → lang → build-system → run → android → services → plugins → app, pointing downward only
  • Flat paths: the Kotlin editor backend is :lang-kotlin despite living at lang/lang-kotlin, mapped only in settings.gradle.kts
  • Transactional mutation: stage on a Transaction then commit, with long tasks as suspend under read/write locks

Quick Start

  1. Install the Android launcher from Releases, or run ./gradlew :ide-desktop:run on desktop
  2. Create or clone a project, writing code with completion and block editing
  3. Hit build to produce, sign, and install an APK on the device itself
  4. For CI use the headless codeassist launcher and the official GitHub Action

Build & Test

  • Core framework only: CI_CORE_ONLY=true ./gradlew check, pure JVM with no Android SDK
  • Full build: ./gradlew build needs the Android SDK
  • Regression baselines: regressionTest tasks check committed JSON baselines, failing CI on quality regressions

Notes

  • Plugin license exception: SPI modules like plugin-api and platform-core carry Classpath-exception-2.0, letting plugins ship under any license
  • Metric caveats: latency numbers come from the maintainer's machine and are indicative, quality metrics are deterministic
  • Conventions: IDs use @JvmInline value classes, open sets are string-backed value classes and closed sets are enums

Release history

Sort