Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
d00dbb5
Delete CNAME
AidanPark Feb 22, 2026
30c1ad3
Use short URLs (myopenclawhub.com) in user-facing docs
AidanPark Feb 22, 2026
5596e41
Move pkg upgrade and termux-wake-lock into install script
AidanPark Feb 22, 2026
af3cac1
Improve tab management guidance in README and simplify SSH guide
AidanPark Feb 22, 2026
7acf75b
Use short URL in update-core.sh installer fallback message
AidanPark Feb 22, 2026
23663d6
Remove web files (moved to my-openclaw-hub project)
AidanPark Feb 22, 2026
0eb7696
Add dufs package to install and update scripts
AidanPark Feb 23, 2026
5abca6d
Skip npm install and sharp build when openclaw is already latest
AidanPark Feb 23, 2026
f5875a7
Add clawhub (skill manager) installation with undici fix
AidanPark Feb 24, 2026
1a24918
Add unified oa CLI, CLAWDHUB_WORKDIR, versioning, and skill migration
AidanPark Feb 24, 2026
5adc861
Fix skip logic for already-installed dependencies
AidanPark Feb 24, 2026
72f8df9
Add Phantom Process Killer detection and disable guide (Android 12+)
AidanPark Feb 24, 2026
f75a2b7
Merge branch 'main' of https://github.com/AidanPark/openclaw-android
AidanPark Feb 24, 2026
5ae4753
Bump version to 0.8.1 and reorganize README sections
AidanPark Feb 24, 2026
d58add9
Add code-server (browser IDE) integration with Termux workarounds
AidanPark Feb 26, 2026
4631ddd
Bump version to 0.8.2
AidanPark Feb 26, 2026
dbe5606
Fix openclaw version comparison using npm list for consistent format
AidanPark Feb 26, 2026
af456a5
Fix argon2 patch to find argon2.cjs entry point (code-server v4.109+)
AidanPark Feb 26, 2026
036ce78
Fix unbound TMPFILE variable error on oa --update exit
AidanPark Feb 26, 2026
26d2c2f
Add optional AI CLI tools installer with interactive selection
AidanPark Mar 1, 2026
4661b77
Add glibc runtime scripts for Termux (glibc-compat, glibc-env, openco…
AidanPark Mar 1, 2026
70fb626
Migrate environment config from Bionic to glibc architecture
AidanPark Mar 1, 2026
8e6ae40
Rewrite install flow for glibc architecture with --ignore-scripts
AidanPark Mar 1, 2026
1f615c4
Add OpenCode integration and bump oa CLI to v1.0.0
AidanPark Mar 1, 2026
f0ba762
Add Bionic-to-glibc migration to updater and glibc cleanup to uninsta…
AidanPark Mar 1, 2026
02fbc48
Update verification and build scripts for glibc architecture
AidanPark Mar 1, 2026
6288a6b
Rewrite README and add integration plan for glibc architecture
AidanPark Mar 1, 2026
ec01b4b
Fix node wrapper, process.execPath, docs, and remove legacy bionic-co…
AidanPark Mar 1, 2026
10e7fd4
Rewrite Korean README for glibc architecture
AidanPark Mar 1, 2026
22b8b28
Add architecture comparison diagrams to READMEs
AidanPark Mar 1, 2026
751df5a
Polish v1.0.0 for release: fix code-server version check, add uninsta…
AidanPark Mar 1, 2026
ac7ae3d
Replace Mermaid diagrams with ASCII art for better GitHub readability
AidanPark Mar 1, 2026
ff0ec9b
Fix ASCII diagram alignment in READMEs
AidanPark Mar 1, 2026
4b7e143
v1.0.1: Smart update with version checks and install prompts
AidanPark Mar 1, 2026
219c867
Fix clawhub detection: check both clawhub and clawdhub command names
AidanPark Mar 1, 2026
256030e
Rename clawhub to clawdhub across all scripts and docs
AidanPark Mar 1, 2026
5b39c7b
Bump version to v1.0.2
AidanPark Mar 1, 2026
72d5ef5
Add shared function library and decomposed install scripts
AidanPark Mar 2, 2026
a51f12c
Add OpenClaw platform plugin
AidanPark Mar 2, 2026
083076a
Refactor orchestrators for platform-plugin architecture
AidanPark Mar 2, 2026
4be6b0f
Update shared scripts for platform-plugin architecture
AidanPark Mar 2, 2026
ba7793b
Add ZeroClaw platform plugin
AidanPark Mar 2, 2026
2b5561e
Update documentation for platform-plugin architecture
AidanPark Mar 2, 2026
b4eaad9
Streamline README and consolidate device setup guide
AidanPark Mar 2, 2026
e2c9529
Move 'What It Does' section before Step-by-Step Setup
AidanPark Mar 2, 2026
3daa228
Upgrade Node.js to v22.22.0 for FTS5 support
AidanPark Mar 3, 2026
87cf976
Fix update bugs, bump version to v1.0.4, add .gitattributes for LF en…
AidanPark Mar 4, 2026
0244c16
Show version in all update skip and completion messages
AidanPark Mar 4, 2026
eddc4ce
Remove oh-my-opencode from install, update, and uninstall flows
AidanPark Mar 4, 2026
04dbe7f
Upgrade Node.js to v22.22.0, add oa --install, remove oh-my-opencode …
AidanPark Mar 4, 2026
597ca04
Fix update-core.sh syntax error, add multi-session tab bar and boot a…
AidanPark Mar 9, 2026
addf2b6
Add Chromium browser automation and fix sharp image processing
AidanPark Mar 9, 2026
e1352f7
Clean up existing installation on reinstall and bump to v1.0.6
AidanPark Mar 10, 2026
ae46a3b
Add Claw app v0.3.0 with release signing, UI fixes, and claw icon
AidanPark Mar 10, 2026
16e4806
Bump com.google.code.gson:gson from 2.12.1 to 2.13.2 in /android
dependabot[bot] Mar 10, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# CodeRabbit configuration for OpenClaw on Android
# Documentation: https://docs.coderabbit.ai/reference/configuration

language: en-US
early_access: false

reviews:
request_changes_workflow: false
high_level_summary: true
sequence_diagrams: true

auto_review:
enabled: true
base_branches:
- main
drafts: false

poem: false

reviewer:
enabled: true
auto_assign: false

finishing_touches:
docstrings:
enabled: true
unit_tests:
enabled: true

chat:
auto_reply: true

# Path filters — ignore generated and build artifacts
path_filters:
- "!**/build/**"
- "!**/node_modules/**"
- "!**/.gradle/**"
- "!**/android/www/dist/**"
- "!**/*.apk"

# Review instructions specific to this project
review_instructions:
- "Focus on Kotlin best practices and idiomatic Android code"
- "Check for Android memory leaks (Activity/Context references, unregistered receivers)"
- "Verify proper lifecycle handling (Activity, Service, coroutine scope cancellation)"
- "Ensure shell scripts are POSIX-compatible and follow scripts/lib.sh conventions"
- "Check path handling — Termux paths ($PREFIX) vs standard Linux paths"
- "Review glibc-runner compatibility (bionic vs glibc boundary issues)"
- "Verify WebView ↔ Kotlin JsBridge interface consistency"
- "Ensure no hardcoded paths that break on different Android versions"
27 changes: 27 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
root = true

[*]
charset = utf-8
end_of_line = lf
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true

[*.{kt,kts}]
indent_size = 4
max_line_length = 120

[*.{sh,bash}]
indent_size = 4

[*.{xml,json,yaml,yml}]
indent_size = 2

[*.{ts,tsx,js,jsx,css}]
indent_size = 2

[*.md]
trim_trailing_whitespace = false

[Makefile]
indent_style = tab
26 changes: 26 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
* text=auto eol=lf
*.sh text eol=lf
*.js text eol=lf
*.ts text eol=lf
*.tsx text eol=lf
*.h text eol=lf
*.kt text eol=lf
*.kts text eol=lf
*.xml text eol=lf
*.md text eol=lf
*.gradle text eol=lf
*.json text eol=lf
*.yaml text eol=lf
*.yml text eol=lf
*.properties text eol=lf
*.png binary
*.jpg binary
*.jpeg binary
*.gif binary
*.jar binary
*.so binary
*.apk binary
*.aab binary
*.zip binary
gradlew text eol=lf
gradlew.bat text eol=crlf
30 changes: 30 additions & 0 deletions .githooks/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/usr/bin/env bash
# Pre-commit hook: runs ktlint and detekt on staged Kotlin files
# Enable with: git config core.hooksPath .githooks

set -e

ANDROID_DIR="$(git rev-parse --show-toplevel)/android"

# Check if any Kotlin files are staged
STAGED_KT=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.kts?$' || true)

if [ -z "$STAGED_KT" ]; then
exit 0
fi

echo "Running ktlint check..."
if ! (cd "$ANDROID_DIR" && ./gradlew ktlintCheck --daemon -q 2>/dev/null); then
echo ""
echo "ktlint check failed. Run './gradlew ktlintFormat' to auto-fix."
exit 1
fi

echo "Running detekt..."
if ! (cd "$ANDROID_DIR" && ./gradlew detekt --daemon -q 2>/dev/null); then
echo ""
echo "detekt check failed. Fix the issues above before committing."
exit 1
fi

echo "All checks passed."
34 changes: 34 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
version: 2
updates:
- package-ecosystem: "gradle"
directory: "/android"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 10
labels:
- "dependencies"
reviewers:
- "AidanPark"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 5
labels:
- "ci"
reviewers:
- "AidanPark"

- package-ecosystem: "npm"
directory: "/android/www"
schedule:
interval: "weekly"
day: "monday"
open-pull-requests-limit: 5
labels:
- "dependencies"
reviewers:
- "AidanPark"
91 changes: 91 additions & 0 deletions .github/workflows/android-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Android Build

on:
push:
branches: [main]
paths:
- 'android/**'
- '.github/workflows/android-build.yml'
pull_request:
branches: [main]
paths:
- 'android/**'
- '.github/workflows/android-build.yml'

jobs:
build-www:
name: Build WebView UI
runs-on: ubuntu-latest
defaults:
run:
working-directory: android/www
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: android/www/package-lock.json

- run: npm ci
- run: npm run build
- run: cd dist && zip -r ../www.zip .

- uses: actions/upload-artifact@v4
with:
name: www-zip
path: android/www/www.zip

build-apk:
name: Build APK
runs-on: ubuntu-latest
needs: build-www
defaults:
run:
working-directory: android
steps:
- uses: actions/checkout@v4

- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '21'

- uses: android-actions/setup-android@v3

- name: Cache Gradle
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ hashFiles('android/**/*.gradle*', 'android/gradle/libs.versions.toml') }}
restore-keys: gradle-

- name: Build debug APK
run: ./gradlew assembleDebug

- uses: actions/upload-artifact@v4
with:
name: app-debug
path: android/app/build/outputs/apk/debug/app-debug.apk

release:
name: Create Release
runs-on: ubuntu-latest
needs: [build-www, build-apk]
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
permissions:
contents: write
steps:
- uses: actions/download-artifact@v4
with:
name: app-debug

- uses: actions/download-artifact@v4
with:
name: www-zip

# Release is created manually — artifacts are available for download
# To create a tagged release, push a tag: git tag v1.0.0 && git push --tags
49 changes: 45 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,51 @@
# Project specific
.claude/
.obsidian/
CLAUDE.md
.plan/
docs/plan/
.issues

# Android
*.apk
*.aab
*.dex
*.class
*.so
/build/
/app/build/
/captures/
.externalNativeBuild/
.cxx/
local.properties

# Gradle
.gradle/
gradle-app.setting
!gradle-wrapper.jar
build/

# IDE
.idea/
*.iml
*.iws
.project
.classpath
.settings/

# Node
node_modules/
*.log

# Kotlin
*.kotlin_module

# OS
.DS_Store
.idea/
.issues
Thumbs.db

# Logs
*.log

# Secrets
*.env
*.keystore
*.jks
3 changes: 0 additions & 3 deletions .idea/.gitignore

This file was deleted.

Loading