A revolutionary fork of termux/termux-app that eliminates traditional package bootstrapping entirely and includes comprehensive AI development tools. Instead of complex zip extraction and package installation, Termux AI embeds native executables directly into the Android APK as .so files, leveraging Android's automatic library extraction for instant availability.
π€ Multi-AI Support: Gemini CLI, Claude CLI, and Codex CLI built-in
π¬ FFmpeg Integration: Complete multimedia processing capabilities (v7.1.1, 100% dependencies resolved)
β‘ Instant Development: Node.js, Git, and 400+ tools ready immediately
Traditional Termux: Complex bootstrap process with zip extraction, package installation, and manual permission setup.
Termux AI: Native executables (binaries + scripts) β Add .so extension β Place in jniLibs/arm64-v8a/ β Android automatically extracts to read-only /data/app/.../lib/arm64/ β Symbolic links provide instant access.
β
No bootstrap required - Launch and code immediately
β
Multi-AI powered - 3 AI assistants built-in (Gemini, Claude, Codex)
β
Multimedia ready - FFmpeg v7.1.1 for professional video/audio processing
β
W^X compliant - Executables in read-only system locations
β
SELinux compatible - Uses Android's native library mechanism
β
Faster startup - No extraction or installation delays
Termux AI running with Node.js v24.7.0 and AI assistance
ttyd web terminal interface accessible at localhost:7681
Gemini AI CLI authentication setup with Google login and API key options
Download v1.8.0 | Size: 262.5 MB | SHA256: 1bafcb40111f43e6b9043bfddb6ff28aae47ac669cdc823ea2fdafdc15501eac
- β Complete AI Integration - Gemini CLI, Claude CLI, and Codex CLI ready-to-use
- β FFmpeg Multimedia Support - Complete video/audio processing with ffmpeg v7.1.1 and ffprobe (100% dependencies resolved)
- β 100% Package Integration Success - All 89 packages fully integrated
- β
Clean Naming Convention - Removed
libprefix from 100+ executables - β
Fixed Android Asset Packaging - Resolved
__generated__directory exclusion - β Enhanced Security - Removed OAuth secrets from repository history
- β
Improved Consistency - Executables use
.sosuffix withoutlibprefix (e.g.,apt.so,dpkg.so,git.so) - β
Fixed Multicall Binaries -
coreutils.soproperly handles 100+ commands (ls, cat, cp, mv, etc.)
- Android: 14+ (API level 34+)
- Architecture: ARM64 (
arm64-v8a) devices only - Storage: ~262MB APK with complete development environment
- Download APK from Releases - Latest: v1.8.0 (Clean Executable Naming)
- Install on ARM64 Android device
- Launch app - all executables configured automatically
- Ready for development and AI assistance
# π€ AI Development Tools
gemini --help # Google Gemini AI CLI v0.3.3
claude --help # Anthropic Claude AI CLI
codex --help # AI coding assistant
codex-exec --help # Non-interactive AI execution
# π¬ Multimedia Processing
ffmpeg -version # FFmpeg v7.1.1 multimedia framework (100% dependencies resolved)
ffprobe -version # Media file analyzer (complete library support)
# π» Core Development Stack
node --version # Node.js v24.7.0
npm --version # Package manager v11.5.1
git --version # Version control v2.51.0
gh --version # GitHub CLI v2.78.0
# π¦ System Management
apt --version # Package management v2.8.1
curl --version # Data transfer tool v8.15.0
ls /usr/bin # 400+ available commands| Aspect | Traditional Termux | Termux AI |
|---|---|---|
| Setup | Complex zip extraction & package installation | Instant - executables pre-integrated |
| First Launch | 5-10 minutes bootstrap | < 5 seconds ready |
| Package Management | Download β Extract β Install β Configure | Already integrated in APK |
| Security | Writable directories, permission issues | W^X compliant, read-only executables |
| Storage Location | /data/data/com.termux/files/usr/ |
/data/app/.../lib/arm64/ (system) |
The Core Principle: Any ARM64 executable can become a "fake shared library" by simply adding .so extension.
# Traditional approach
node (binary) β Extract β Install β Set permissions β Symlink
# Termux AI approach
node (binary) β Rename to node.so β Place in jniLibs/ β Android handles everythingStep-by-step process:
- Binary executables (node, git, gh) β Add
.sopostfix βnode.so,git.so - Script files (npm, npx) β Also become
.sofiles βnpm.so,npx.so - Android APK build β Automatically includes all
.sofiles fromjniLibs/arm64-v8a/ - App installation β Android extracts to
/data/app/.../lib/arm64/(read-only, executable) - First launch β
TermuxInstaller.javacreates symbolic links in/usr/bin/ - Ready to use β
node --version,npm install,git clonework instantly
- W^X Policy: Executables in read-only
/data/appsystem location - SELinux Compatible: Uses Android's native library extraction mechanism
- Android 14+: Full support with foreground service permissions
| Component | Version | Description |
|---|---|---|
| Node.js | v24.7.0 | JavaScript runtime with V8 engine |
| npm | v11.5.1 | Node.js package manager |
| npx | Latest | Package executor for Node.js |
| Git | v2.51.0 | Distributed version control system |
| GitHub CLI | v2.78.0 | GitHub integration and automation |
| Vim | v9.1.1700 | Advanced text editor |
| Bash | v5.3.3-1 | GNU Bourne Again Shell |
| Component | Version | Description | Use Case |
|---|---|---|---|
| Gemini CLI | v0.3.3 | Google's Gemini AI with multimodal capabilities | gemini "explain this code" |
| Claude CLI | Latest | Anthropic's Claude AI for advanced reasoning | claude "help with this function" |
| Codex CLI | v0.25.0 | AI-powered coding assistant | codex "write a REST API" |
| Codex-Exec | v0.25.0 | Non-interactive AI command execution | codex-exec "fix this bug" |
Why Three AI Tools?
- π§ Different strengths - Each AI excels in different areas
- π Fallback options - If one is unavailable, others continue working
- π― Specialized tasks - Choose the best AI for your specific needs
| Component | Version | Description |
|---|---|---|
| APT | v2.8.1-2 | Advanced Package Tool |
| DPKG | v1.22.6-4 | Debian package management system |
| Core Utils | v9.7-3 | GNU core utilities (100+ commands) |
| Component | Version | Description |
|---|---|---|
| OpenSSH | v10.0p2-9 | Secure shell client and server |
| curl | v8.15.0-1 | Command-line data transfer tool |
| OpenSSL | v3.5.2 | Cryptography and SSL/TLS toolkit |
| DNS Utils | v9.20.12 | BIND DNS tools (dig, nslookup, host) |
| CA Certificates | 2025.08.12 | Mozilla CA certificate bundle (146 certs) |
| Less | v679-2 | Terminal pager for viewing text files |
| Component | Version | Description | Capabilities |
|---|---|---|---|
| FFmpeg | v7.1.1-6 | Complete multimedia framework (100% dependencies) | Encode, decode, transcode, stream, filter |
| FFprobe | v7.1.1-6 | Multimedia stream analyzer (complete library support) | Extract metadata, analyze formats, inspect streams |
FFmpeg Power on Android:
- π₯ Video Processing - Convert, compress, edit video files
- π΅ Audio Manipulation - Extract, convert, enhance audio streams
- π± Mobile Optimized - ARM64-native for optimal Android performance
- π§ Professional Grade - Same tool used by YouTube, Netflix, and major platforms
| Library | Version | Purpose |
|---|---|---|
| libicu | v77.1-1 | Unicode and localization support |
| libxml2 | v2.14.5-1 | XML parsing library |
| libcurl | v8.15.0-1 | Data transfer library |
| libsqlite | v3.50.4-1 | SQL database engine |
| libgcrypt | v1.11.2-1 | Cryptographic library |
| pcre2 | v10.46 | Perl-compatible regular expressions |
| ncurses | v6.5.20240831-3 | Terminal control library |
| readline | v8.3.1-1 | Command-line editing library |
| zlib | v1.3.1-1 | Compression library |
| libiconv | v1.18-1 | Character encoding conversion |
| json-c | v0.18-1 | JSON parsing library |
| libass | v0.17.4 | ASS/SSA subtitle rendering library |
| freetype | v2.13.3 | Font rendering engine |
π PERFECT INTEGRATION: All 48 packages with executables/libraries are now fully integrated and working!
Click to view all packages
- android-codex-cli-0.25.0
- apt_2.8.1-2
- bash_5.3.3-1
- bzip2_1.0.8-8
- c-ares_1.34.5
- ca-certificates_1:2025.08.12
- coreutils_9.7-3
- curl_8.15.0-1
- dnsutils_9.20.12
- dpkg_1.22.6-4
- gh_2.78.0
- git_2.51.0
- json-c_0.18-1
- krb5_1.17-2
- ldns_1.8.4-1
- less_679-2
- libandroid-execinfo_0.1-3
- libandroid-glob_0.6-3
- libandroid-selinux_14.0.0.11-1
- libandroid-support_29-1
- libbz2_1.0.8-8
- libc++_28c
- libcurl_8.15.0-1
- libgcrypt_1.11.2-1
- libgmp_6.3.0-2
- libgpg-error_1.55-1
- libiconv_1.18-1
- libicu_77.1-1
- liblzma_5.8.1-1
- libnghttp2_1.67.0
- libnghttp3_1.11.0-1
- libsqlite_3.50.4-1
- libssh2_1.11.1-1
- libxml2_2.14.5-1
- ncurses_6.5.20240831-3
- nodejs_24.7.0
- openssh_10.0p2-9
- openssl_1:3.5.2
- pcre2_10.46
- readline_8.3.1-1
- resolv-conf_1.3
- termux-exec_1:2.3.0
- vim_9.1.1700
- which_2.23
- xz-utils_5.8.1-1
- zlib_1.3.1-1
- zstd_1.5.7-1
The Standard Operating Procedure transforms any Termux .deb package into Android-native executables:
# π― One-command integration (recommended)
make sop-add-package PACKAGE_NAME=nodejs VERSION=24.7.0
# π Step-by-step debugging workflow
make sop-list LETTER=n # π Browse available packages
make sop-download PACKAGE_NAME=nodejs VERSION=24.7.0 # π¦ Fetch .deb
make sop-extract PACKAGE_NAME=nodejs # π Unpack contents
make sop-analyze PACKAGE_NAME=nodejs # π Identify executables & deps
make sop-copy PACKAGE_NAME=nodejs # β‘οΈ Transform to .so files
make sop-update PACKAGE_NAME=nodejs # π Update Java integration
make sop-build # π οΈ Build & test APK
# π§ͺ Package verification commands
make sop-check PACKAGE_NAME=nodejs # β
Verify single package integration
make sop-check-all # π Test all 89 packages (100% success)
# π Package update management
make sop-check-updates PACKAGE_NAME=nodejs # π Check if package has newer version
make sop-check-all-updates # π Check all local packages for updates
make sop-get-packages # π₯ Download repository metadataFor complex packages like FFmpeg with extensive multimedia dependencies, use the SOP Loop for systematic resolution:
# π― Dependency Resolution Loop (until all dependencies are satisfied)
make sop-ldd-test PACKAGE_NAME=ffmpeg # π Identify missing libraries
make sop-find-lib LIBRARY=libssl.so # π Find package containing library
make sop-add-package PACKAGE_NAME=openssl VERSION=3.5.2 # β Add dependency
make build && make install # π οΈ Test integration
# Repeat until sop-ldd-test shows all libraries found
# π§ͺ Comprehensive testing
make sop-ldd-test # π Test all 17 executables for dependenciesReal-world example - FFmpeg multimedia integration required resolving 20+ dependencies:
- AV1 codecs:
libaom,librav1e,libSvtAv1Enc,libdav1d - Audio codecs:
libopencore-amr,libmpg123,libtheora,libFLAC - Security:
libsodium,libvo-amrwbenc - Formats:
libwebp,libbluray,libudfread
Each iteration of the SOP loop identifies the next missing dependency, achieving 17/17 executables (100%) passing dependency tests with complete FFmpeg resolution.
What happens under the hood:
- Download
.debfrom Termux repository - Extract using
dpkg-debto analyze contents - Transform binaries:
usr/bin/nodeβjniLibs/arm64-v8a/node.so(Nolibprefix needed for executables) - Update
TermuxInstaller.javawith new executable mappings - Build APK with integrated native executables
When you see runtime errors like "library libcharset.so not found", here's the systematic approach:
π Step 1: Find the source package
grep "libcharset.so" packages/Contents-aarch64
# Output: usr/lib/libcharset.so.1 libiconv
# ^^^ library file ^^^ source packageπ¦ Step 2: Download & extract dependency
make sop-download PACKAGE_NAME=libiconv VERSION=1.18-1
make sop-extract PACKAGE_NAME=libiconvβ‘οΈ Step 3: Transform library to Android format
cp packages/libiconv-extract/data/data/com.termux/files/usr/lib/libcharset.so.1 \
app/src/main/jniLibs/arm64-v8a/libcharset.so
# ^^^ Original versioned name ^^^ Simplified Android nameπ Step 4: Update Java integration
- Add
"libcharset.so"tobaseLibrariesarray inTermuxInstaller.java - This ensures the library is available when executables need it
π οΈ Step 5: Build and verify
make build && make install && make run
# Test: Launch app, run command that needed the libraryπ‘ Pro tip: The Contents-aarch64 file maps every file to its source package, making dependency resolution straightforward.
The SOP Check system ensures every integrated package works correctly on the Android device:
# Check a specific package integration
make sop-check PACKAGE_NAME=nodejsWhat it verifies:
- π¦ Host Analysis: Identifies all executables, libraries, and scripts from the package
- π± Device Verification: Confirms each file exists and is accessible on device
- π§ Functional Testing: Executes commands to verify they run without errors
- π Dependency Resolution: Checks all required libraries are present
Example output for successful package:
π SOP Checker: Comparing nodejs files between host and device
============================================================================
π¦ Host Package Analysis
π§ Executables in /usr/bin:
π node (NATIVE) - Expected in /usr/bin/ via jniLibs
π npm (SCRIPT) - Expected in /usr/bin/ via assets
π npx (SCRIPT) - Expected in /usr/bin/ via assets
π± Device Verification
β
node - EXISTS (symlink β /data/app/.../lib/arm64/node.so)
β
npm - EXISTS (symlink β /data/data/com.termux/files/usr/lib/node_modules/npm/bin/npm-cli.js)
π§ͺ Functional Testing
β
node --version: v24.7.0
β
npm --version: 11.5.1
π Summary
β
All 3 files from nodejs are present and accessible
Test all 89 integrated packages at once:
make sop-check-allFeatures:
- π Auto-extraction: Downloads and extracts any missing packages
- π Progress tracking: Shows real-time status for each package
- π Summary report: Final statistics with pass/fail counts
- π― 100% Success rate: v1.8.0 achieves complete package integration
Example summary:
π Final Summary
================
π Packages checked: 89
β
Passed: 89
β Failed: 0
π All extracted packages are properly integrated!
The Magic: Transform a traditional Linux binary into an Android-native executable:
# 1. Download the Termux package
wget -O packages/git_2.51.0_aarch64.deb \
"https://packages.termux.dev/apt/termux-main-21/pool/main/g/git/git_2.51.0_aarch64.deb"
# 2. Extract the package
dpkg-deb -x packages/git_2.51.0_aarch64.deb packages/git-extract
# 3. The key transformation: Binary β Fake shared library
cp packages/git-extract/data/data/com.termux/files/usr/bin/git \
app/src/main/jniLibs/arm64-v8a/git.so
# ^^^^^ ARM64 binary becomes git.so (no lib prefix for executables) ^^^^^
# 4. Handle missing dependencies (discovered at runtime)
# App crash: "library libcharset.so not found"
# 5. Find dependency source using Contents index
grep "libcharset.so" packages/Contents-aarch64
# Output: usr/lib/libcharset.so.1 libiconv
# 6. Add the missing dependency
wget -O packages/libiconv_1.18-1_aarch64.deb \
"https://packages.termux.dev/apt/termux-main-21/pool/main/libi/libiconv/libiconv_1.18-1_aarch64.deb"
dpkg-deb -x packages/libiconv_1.18-1_aarch64.deb packages/libiconv-extract
cp packages/libiconv-extract/.../libcharset.so.1 app/src/main/jniLibs/arm64-v8a/libcharset.so
cp packages/libiconv-extract/.../libiconv.so.2 app/src/main/jniLibs/arm64-v8a/libiconv.so
# 7. Update Java integration code
# In TermuxInstaller.java:
# executables array: {"git.so", "git"}
# baseLibraries array: "libcharset.so", "libiconv.so"
# 8. Build, install, and test
make build && make install && make run
# Result: git --version shows "git version 2.51.0"What just happened?
- Git binary (ARM64 ELF) β Renamed to
git.soβ Android treats it as a shared library - Android automatically extracts to
/data/app/.../lib/arm64/git.sowith executable permissions - Symbolic link
/usr/bin/gitβ Points to the extracted location - Dependencies resolved the same way β No complex package management needed
| Category | Command | Description |
|---|---|---|
| Development | make build |
Build debug APK |
make install |
Install APK with permissions | |
make run |
Launch Termux AI | |
make logs |
Monitor app logs | |
| Testing | make sop-check PACKAGE_NAME=git |
Verify single package |
make sop-check-all |
Test all 89 packages | |
make sop-user-test |
Automated UI testing | |
make sop-test |
Interactive testing | |
| Package Management | make sop-add-package PACKAGE_NAME=vim VERSION=9.1.1700 |
Add new package |
make sop-list LETTER=v |
Browse packages | |
make sop-analyze PACKAGE_NAME=vim |
Analyze dependencies | |
make sop-check-updates PACKAGE_NAME=vim |
Check for package updates | |
make sop-check-all-updates |
Check all packages for updates | |
| Dependency Resolution | make sop-ldd-test PACKAGE_NAME=ffmpeg |
Test executable for missing libraries |
make sop-ldd-test |
Test all executables (comprehensive) | |
make sop-find-lib LIBRARY=libssl.so |
Find package containing library | |
| Production | BUILD_TYPE=release make build |
Build release APK |
make github-release |
Create GitHub release | |
| Diagnostics | make doctor |
Check development environment |
make check-jnilibs |
Verify .so files | |
make check-duplicates |
Find conflicts |
| File Type | Original | Termux AI Location | Example |
|---|---|---|---|
| ARM64 Binary | node |
jniLibs/arm64-v8a/node.so |
Node.js runtime |
| Shell Script | npm |
jniLibs/arm64-v8a/npm.so |
Package manager script |
| JavaScript Module | gemini.js |
assets/termux/usr/lib/node_modules/gemini.js |
For require/import |
| JavaScript Executable | gemini.js |
jniLibs/arm64-v8a/gemini.so |
CLI command |
| Shared Library | libssl.so.3 |
jniLibs/arm64-v8a/libssl3.so |
OpenSSL library |
| Dependencies | node_modules/ |
assets/termux/usr/lib/node_modules/ |
NPM ecosystem |
Key Insights:
- β
No
libprefix needed β Executables use simple naming:node.so,git.so,npm.so - β
Executable rule β All executables (binaries, shell scripts, Node.js scripts) get
.sopostfix and go injniLibs/ - β
JavaScript modules β Keep
.jsextension and place inassets/termux/usr/lib/node_modules/for imports - β
Libraries keep prefix β System libraries use
libprefix:libssl3.so,libcurl.so - β
Assets for data β Large dependency trees and importable modules go in
assets/
Integration Rules:
-
Executable Integration (for CLI commands):
- ANY executable file (binary, shell script, Node.js script) β Add
.soextension β Place injniLibs/arm64-v8a/ - Android extracts all
.sofiles to system location with executable permissions - TermuxInstaller creates symbolic links from
/usr/bin/to the extracted executables
- ANY executable file (binary, shell script, Node.js script) β Add
-
JavaScript Module Integration (for require/import):
- JavaScript files intended for
require()orimportβ Keep.jsextension β Place inassets/termux/usr/lib/node_modules/ - Allows other scripts to import:
require('gemini.js')orimport gemini from 'gemini.js'
- JavaScript files intended for
-
Dual Integration (for Node.js tools that are both CLI and module):
- Place same content in both locations:
jniLibs/arm64-v8a/gemini.so(executable) +assets/.../node_modules/gemini.js(module) - Enables both CLI usage (
gemini --help) and programmatic usage (require('gemini.js'))
- Place same content in both locations:
termux_AI/
βββ packages/ # π¦ Downloaded .deb packages
β βββ nodejs_24.7.0_aarch64.deb # Source packages
β βββ git_2.51.0_aarch64.deb
β βββ Contents-aarch64 # Package index for dependencies
β
βββ app/src/main/
β βββ jniLibs/arm64-v8a/ # βοΈ EXECUTABLE DIRECTORY
β β βββ node.so # Node.js binary (24MB)
β β βββ git.so # Git binary (2.1MB)
β β βββ gemini.so # Gemini AI CLI script (12MB)
β β βββ libssl3.so # OpenSSL library
β β βββ libcurl.so # cURL library
β β
β βββ assets/termux/usr/lib/ # π MODULES & DEPENDENCIES
β β βββ node_modules/ # NPM ecosystem
β β β βββ npm/ # NPM package manager
β β β βββ corepack/ # Node.js package manager manager
β β β βββ gemini.js # Gemini module for require/import
β β βββ ca-certificates/ # SSL certificates
β β
β βββ java/.../TermuxInstaller.java # π Symlink orchestration
β
βββ Makefile # π€ Automation commands
βββ releases/ # π¦ Generated APKs
The .so File Magic:
- Any ARM64 executable can masquerade as a shared library
- Android's APK installer automatically handles
.sofiles - No special NDK compilation required - just rename binary files
Why This Works:
- Android assumption:
.sofiles injniLibs/are native libraries - Reality: They can be any ARM64 executable with
.soextension - Result: Android extracts them to system space with executable permissions
- Access: Symbolic links provide traditional Unix PATH access
π± Android System Locations (Read-only, W^X compliant)
/data/app/~~long-hash~~/com.termux/lib/arm64/
βββ node.so # Node.js v24.7.0 runtime (24MB)
βββ npm.so # npm package manager script
βββ npx.so # npx package executor script
βββ git.so # Git v2.51.0 binary (2.1MB)
βββ gh.so # GitHub CLI v2.78.0 (15MB)
βββ libssl3.so # OpenSSL v3.5.2 library
βββ libcurl.so # cURL v8.15.0 library
π Termux Home Environment (Read-write)
/data/data/com.termux/files/usr/
βββ bin/ # Symbolic links to Android system locations
β βββ node -> /data/app/.../lib/arm64/node.so β‘
β βββ npm -> /data/app/.../lib/arm64/npm.so β‘
β βββ npx -> /data/app/.../lib/arm64/npx.so β‘
β βββ git -> /data/app/.../lib/arm64/git.so β‘
β βββ gh -> /data/app/.../lib/arm64/gh.so β‘
βββ lib/
β βββ node_modules/ # NPM packages extracted from assets
β β βββ npm/ # NPM package manager
β β βββ corepack/ # Node.js package manager manager
β βββ *.so # Additional shared libraries
βββ home/ # User workspace (projects, configs)
The Beauty:
- π Executables: Immutable, in Android system space, W^X compliant
- π User data: Mutable, in app private space, writable
- β‘ Performance: No file copying, just symbolic links
- π‘οΈ Security: SELinux-friendly, uses Android's native mechanisms
The .profile automatically sources /data/local/tmp/android_sourceme if it exists, allowing for custom environment setup:
# Place custom configuration in /data/local/tmp/android_sourceme
adb shell "echo 'export CUSTOM_VAR=value' > /data/local/tmp/android_sourceme"
# The file will be automatically sourced on app launch
# See examples/android_sourceme_example.sh for configuration ideasTermuxInstaller.java: Replaced bootstrap with native executable verificationTermuxShellEnvironment.java: Simplified PATH to/system/binonlyAndroidManifest.xml: Android 14+ foreground service permissionsTermuxActivity.java: Fixed broadcast receiver export flags
| Command | AI Provider | Purpose | Example |
|---|---|---|---|
gemini |
Multimodal AI with vision capabilities | gemini "explain this code" |
|
claude |
Anthropic | Advanced reasoning and code analysis | claude "help with this function" |
codex |
AI Assistant | Interactive coding companion | codex "write a REST API" |
codex-exec |
AI Assistant | Non-interactive command execution | codex-exec "fix this bug" |
π‘ Pro Tip: Try different AIs for the same task to get varied perspectives and solutions!
| Tool | Version | Description |
|---|---|---|
node |
v24.7.0 | JavaScript/TypeScript runtime |
npm |
v11.5.1 | Package manager |
npx |
Latest | Package executor |
git |
v2.51.0 | Version control |
gh |
v2.78.0 | GitHub CLI |
vim |
v9.1.1700 | Text editor |
bash |
v5.3.3 | Shell environment |
| Tool | Version | Description | Common Use Cases |
|---|---|---|---|
ffmpeg |
v4.2.1 | Complete multimedia framework | ffmpeg -i input.mp4 output.avi |
ffprobe |
v4.2.1 | Media file analyzer | ffprobe -v quiet -show_format video.mp4 |
| Category | Commands | Count |
|---|---|---|
| Package tools | apt, pkg, dpkg |
3 |
| Core utilities | cat, ls, grep, find, curl |
100+ |
| Network tools | ssh, scp, curl, dig, host |
20+ |
| Development | make, gcc, python (via APT) |
Unlimited |
π‘ Quick test: Run ls /usr/bin | wc -l to see total available commands (296+)
# Get help with complex code
gemini "Explain this Python function: def fibonacci(n): return n if n <= 1 else fibonacci(n-1) + fibonacci(n-2)"
# Code review and optimization
claude "Review this JavaScript code for potential security issues: const user = eval(input)"
# Generate boilerplate code
codex "Create a Node.js Express server with authentication middleware"
# Debug and fix issues
codex-exec "Fix the syntax error in my Python script"# Convert video formats
ffmpeg -i input.mp4 -c:v libx264 -c:a aac output.mp4
# Extract audio from video
ffmpeg -i video.mp4 -vn -acodec copy audio.m4a
# Resize video for mobile
ffmpeg -i input.mp4 -vf scale=720:480 -c:a copy mobile.mp4
# Get video information
ffprobe -v quiet -print_format json -show_format -show_streams video.mp4# Use AI to generate FFmpeg commands
claude "Generate an FFmpeg command to compress a 4K video to 1080p with good quality"
# Get coding help for multimedia projects
gemini "Write a Node.js script that uses child_process to run FFmpeg commands"
# Debug multimedia issues
codex "Why is my FFmpeg command producing corrupted audio output?"make sop-user-test # Automated UI testing via ADB
make sop-test # Interactive command testing
make logs # Monitor app behaviorConnect and test the magic:
# π Get shell access to running Termux AI
adb shell run-as com.termux
cd /data/data/com.termux/files/home
# π§ͺ Test core functionality
node --version # β
Should show: v24.7.0
npm --version # β
Should show: v11.5.1
git --version # β
Should show: git version 2.51.0
gh --version # β
Should show: gh version 2.78.0
codex --help # β
Should show: AI CLI assistance
# π Verify the architectural magic
ls -la /usr/bin/ # π All symlinks to /data/app/.../lib/arm64/
ls -la /data/app/*/com.termux/lib/arm64/ # π± Android-extracted binaries
echo $PATH # π Should include /data/data/com.termux/files/usr/bin
# π Real-world test
npm init -y # π¦ Create package.json
echo 'console.log("Hello Termux AI!")' > hello.js
node hello.js # β¨ Execute JavaScript
git init && git status # π Version control works| Limitation | Reason | Workaround |
|---|---|---|
| ARM64 only | Termux packages are architecture-specific | Use ARM64 Android device (most modern phones) |
| Android 14+ | Foreground service permissions | Update Android or use older Termux version |
| Package subset | APK size constraints (262MB current) | Core development tools included |
| Single architecture | APK optimization for size | Future: Multi-architecture support |
What's Included vs. What's Not:
- β Included: Core development tools (Node.js, Git, AI tools)
- β Available via APT: Additional packages from Termux repository
- β Not included: GUI applications, X11 support, desktop environments
- β Architecture limit: x86, x86_64, ARMv7 not supported in current build
| Feature | Traditional Termux | Termux AI |
|---|---|---|
| First Launch | 5-10 min bootstrap | β‘ Instant (0 seconds) |
| App Size | ~8MB + 500MB download | π 262MB complete |
| Installation | Multi-step, fragile | π One APK install |
| Security | Writable executables | π Read-only W^X compliant |
| AI Integration | Manual setup | π€ Built-in Gemini & Codex CLI |
| Package Integration | Manual, error-prone | π― 100% Success Rate |
- 89 packages integrated natively with 100% success rate
- Additional AI tools - Gemini CLI and Codex CLI for enhanced development
- 400+ commands available instantly without bootstrap
- Clean naming convention - No lib prefix for executables
- 262MB APK with complete development environment
- Android 14+ compatibility with foreground services
- Automated releases via GitHub Actions
- Zero bootstrap - launch and code immediately
- β Clean Naming Convention - Removed lib prefix from 100+ executables
- β 100% Package Integration - All 89 packages fully working
- β
Comprehensive SOP Testing -
make sop-check-allverifies everything - β
Fixed Multicall Binaries -
coreutils.sohandles 100+ commands correctly - β Enhanced Documentation - Complete command reference and examples
- SOP Documentation: Run
make sop-helpfor complete package integration guide - Build System: Run
make helpfor all available commands - GitHub Releases: Automated via
make github-release - Issue Tracking: Report problems via GitHub Issues
Follows upstream Termux licensing. See individual component licenses for native binaries.
Ready to develop? Download the latest release and start coding with Node.js v24.7.0 and AI assistance immediately!