Skip to content

Releases: AHLLX/AnCLI-Android

AnCLI v1.2.3

Choose a tag to compare

@AHLLX AHLLX released this 08 Aug 11:38

AnCLI v1.2.3 — Hotfix Batch & Release (2026-08-08)

Runtime Fixes

  • proot reverted to official static build: the termux build (faccessat2 fix) dynamically links libtalloc.so.2 + libandroid-shmem.so, which do not exist on a pure Android host — the module installer kept failing with CANNOT LINK EXECUTABLE. Official 5.4.0 static proot (402KB, zero external deps) restores clean installs.
  • agy / grok back to proot mode: the current agy release (1.1.11) is dynamically linked (188MB); native direct-exec fails with No such file or directory (no /lib64/ld-linux-aarch64.so.1 on Android). Removed "native": true from the registry — wrappers now run inside the container again. Verified on device: agy --version → 1.1.11.
  • Known limitation documented: bash [ -x ] (faccessat2) still misreports on aarch64 proot; workaround (sh wrapper / java -cp direct call) recorded in README and device AGENTS.md.

WebUI Config Presets

  • Added verified Anthropic-compatible endpoints (from official docs) for Claude Code config: DeepSeek https://api.deepseek.com/anthropic, 智谱 GLM https://open.bigmodel.cn/api/anthropic, Kimi https://api.moonshot.cn/anthropic, OpenRouter https://openrouter.ai/api.
  • Kimi/OpenRouter use ANTHROPIC_AUTH_TOKEN (UI warns to leave ANTHROPIC_API_KEY empty); registry claude-code gained the ANTHROPIC_AUTH_TOKEN optional field.
  • Removed dead UI fields (OPENAI_/GEMINI_/ANTIGRAVITY_/DEEPSEEK_/GROK_/MIMO_ hints and EXTRA_KEYS) left over from deleted config features.

AnCLI v1.2.2 - Security Hardening & Architecture Refactor

Choose a tag to compare

@AHLLX AHLLX released this 16 Jul 11:28

What's New in v1.2.2

Security Fixes

API Key Secure Storage

  • API keys are no longer embedded in world-readable wrapper scripts. They are now stored in /data/local/tmp/ancli/secrets/<tool>.env with chmod 600, invisible to other processes.
  • Existing users: keys are auto-migrated on next ancli repair or ancli config.

Shell Injection Defense

  • All env var values are now escaped with shlex.quote() to prevent injection via malformed API key values.

SSL Verification Scoped Per-Request

  • Removed the global ssl._create_unverified_context monkey-patch. Certificate verification is now only bypassed for specific registry/installer requests (where PRoot container CAs may be incomplete), not globally.

Architecture Improvements

Registry-Driven Installer Dispatch

  • The hardcoded agy and grok install branches are replaced by a generic _install_pipe_script() function. New apps using script-based installs only need install_method: pipe_script + installer_url in registry.json.

ancli list is Now Offline

  • No longer triggers a network request. Uses local registry cache only — instant and offline-safe.

Other Fixes

  • Fcitx5 now only installed on CJK-locale devices (saves ~50 MB on international devices)
  • uninstall.sh uses pkill -f instead of killall proot to avoid killing unrelated proot sessions
  • All version strings unified to v1.2.2

Full changelog: https://github.com/AHLLX/AnCLI-Android/blob/main/CHANGELOG.md

v1.2.1 — Physical Keyboard Support & Host Isolation

Choose a tag to compare

@AHLLX AHLLX released this 13 Jul 07:41

What's New

Fcitx5 Input Method Support for Physical Keyboards

  • Bootstrap Package Addition: Added fcitx5 and fcitx5-chinese-addons to the default bootstrapping package list in customize.sh during module installation.
  • Environment Integration: Configured standard input method variables (GTK_IM_MODULE=fcitx, QT_IM_MODULE=fcitx, XMODIFIERS=@im=fcitx) inside ancli_env.sh to solve the issue where users using external physical keyboards (Bluetooth/USB) on Android tablets/phones cannot input Chinese or non-English characters directly in terminal-based TUI tools (like Aider, MiMo).

Bug Fixes

Host Environment Variable Isolation for Container Binaries

  • Root Cause: Containerized binaries (like Go-based agy) inherit Termux environment variables (like PREFIX and TERMUX_VERSION) from the host shell. Go's runtime or execution hooks detect these and incorrectly attempt to run host-side Termux paths (like /data/data/com.termux/files/usr/bin/bash), which do not exist inside the isolated container.
  • Fix: Added explicit unset commands in ancli_env.sh to scrub all Termux-specific variables before entering the container, ensuring containerized binaries run in a clean, standard Linux environment and look up the container's own standard /bin/bash in $PATH.

AnCLI v1.2.0 - Stable Core Update

Choose a tag to compare

@AHLLX AHLLX released this 06 Jul 06:58

Release Notes

  • Completely decoupled proxy auto-detection into ancli_env.sh
  • Fixed PRoot symlink resolution bugs for TUIs (like MiMo) by using unified global rootfs binds
  • Exported TMPDIR=/tmp inside wrappers and rootfs to prevent apt-get / npm crashes on missing Android tmp dirs
  • Refactored wrapper generation template for cleanliness
  • Updated README with detailed proxy documentation

AnCLI v1.0.1 — Data Preservation & Uninstall Protection

Choose a tag to compare

@AHLLX AHLLX released this 02 Jul 09:44

AnCLI v1.0.1 — Data Preservation & Uninstall Protection

This version introduces smart uninstallation guards and data preservation features for rooted Android package manager lifecycle actions.

What's New

Container & Python Packages Preservation during Uninstall

  • Dynamic TTY Detection: Added automatic interactive terminal detection to uninstall.sh.
  • Non-Interactive Mode Protection (Magisk/KSU tap): When uninstalling the module from KernelSU/Magisk/APatch managers, the script now safely preserves the Ubuntu container, precompiled binaries, downloaded Python packages (like gitpython), and configurations (installed.json) by default.
  • Interactive Mode Flexibility: When run manually in terminal, the uninstaller presents a menu option, giving the user a choice between a soft uninstall (keeping container data) or a full database & filesystem purge.
  • Forced Purge override: Users can force a complete silent purge in manager uninstall by creating a file flag at /data/local/tmp/ancli_force_purge.

Dynamic Host CWD Propagation

  • Expose current working directory ($PWD) directly to PRoot wrappers, solving startup hangs in Node.js-based AI agents like mimo when run from container's chroot system root directory.

AnCLI v1.0.0 — Unified CLI Environment Manager

Choose a tag to compare

@AHLLX AHLLX released this 02 Jul 05:22

AnCLI v1.0.0 — Unified CLI Environment Manager for Android

Welcome to the initial official release of AnCLI (Android CLI)! 🚀

AnCLI is a systemless plugin-based environment manager designed to bring full-featured Linux command-line tools (such as Python, Node.js-based AI agents, Go binaries) to rooted Android devices (KernelSU, APatch, Magisk). It solves Bionic C library incompatibilities by using PRoot to execute an Ubuntu glibc base container system transparently.


Key Features in v1.0.0

1. Systemless "Dual-Injection" Hack

  • Since Android's /system/bin is strictly read-only, AnCLI implements systemless module injection.
  • Exposes installed tools (like aider, claude) to the host path instantly via Path A (/data/adb/modules/ancli/system/bin/) for reboot persistence, and Path B (/data/adb/ksu/bin/ or /data/adb/ap/bin/) for instant execution without rebooting.

2. Native Python Installer Bypass

  • Solves Windows-to-Android console escaping and shell pipeline characters (|, --) being stripped or corrupted during ADB command forwarding.
  • Native Python urllib downloader handles installation script fetches inside the guest container.

3. NPM-Free Standalone Binaries

  • Major AI coding agents (such as Claude Code, OpenCode, and MiMo Code) have been decoupled from heavy npm / nodejs installations.
  • Downloads are routed to precompiled standalone ELF binaries, saving hundreds of megabytes of disk space and eliminating node-gyp compile issues.

4. Automatic HTTP Proxy Redirection & Fallback

  • Dynamically forwards HTTP/HTTPS proxies from host (e.g., PC-based ladders or local VPNs) into the PRoot guest container.
  • If a custom HTTP proxy is configured or detected, it redirects container installer requests automatically.

5. Safety Commands Whitelist

  • For security against untrusted registry injections, execution is restricted to safe command prefixes (pip, npm, apt-get, apt, curl, rm, agy, bash, sh).

Installation & Quick Start

  1. Install the flashable ancli-module.zip via Magisk / KernelSU / APatch manager.
  2. Open Termux or any terminal as root, and use the包管理器:
    • List available apps: ancli list
    • Install an app (e.g., Claude Code): ancli install claude-code
    • Uninstall an app: ancli uninstall claude-code
    • Configure environment variables: ancli config claude-code