Releases: AHLLX/AnCLI-Android
Release list
AnCLI v1.2.3
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 withCANNOT 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.1on Android). Removed"native": truefrom 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 -cpdirect 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, 智谱 GLMhttps://open.bigmodel.cn/api/anthropic, Kimihttps://api.moonshot.cn/anthropic, OpenRouterhttps://openrouter.ai/api. - Kimi/OpenRouter use
ANTHROPIC_AUTH_TOKEN(UI warns to leaveANTHROPIC_API_KEYempty); registryclaude-codegained theANTHROPIC_AUTH_TOKENoptional 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
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>.envwithchmod 600, invisible to other processes. - Existing users: keys are auto-migrated on next
ancli repairorancli 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_contextmonkey-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
agyandgrokinstall branches are replaced by a generic_install_pipe_script()function. New apps using script-based installs only needinstall_method: pipe_script+installer_urlinregistry.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.shusespkill -finstead ofkillall prootto 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
What's New
Fcitx5 Input Method Support for Physical Keyboards
- Bootstrap Package Addition: Added
fcitx5andfcitx5-chinese-addonsto the default bootstrapping package list incustomize.shduring module installation. - Environment Integration: Configured standard input method variables (
GTK_IM_MODULE=fcitx,QT_IM_MODULE=fcitx,XMODIFIERS=@im=fcitx) insideancli_env.shto 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 (likePREFIXandTERMUX_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
unsetcommands inancli_env.shto 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/bashin$PATH.
AnCLI v1.2.0 - Stable Core Update
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
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
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/binis 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/nodejsinstallations. - 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
- Install the flashable
ancli-module.zipvia Magisk / KernelSU / APatch manager. - 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
- List available apps: