Termux-AIChain
████████╗███████╗██████╗ ███╗ ███╗██╗ ██╗██╗ ██╗ █████╗ ██╗ ██████╗██╗ ██╗ █████╗ ██╗███╗ ██╗
╚══██╔══╝██╔════╝██╔══██╗████╗ ████║██║ ██║╚██╗██╔╝ ██╔══██╗██║██╔════╝██║ ██║██╔══██╗██║████╗ ██║
██║ █████╗ ██████╔╝██╔████╔██║██║ ██║ ╚███╔╝ █████╗███████║██║██║ ███████║███████║██║██╔██╗ ██║
██║ ██╔══╝ ██╔══██╗██║╚██╔╝██║██║ ██║ ██╔██╗ ╚════╝██╔══██║██║██║ ██╔══██║██╔══██║██║██║╚██╗██║
██║ ███████╗██║ ██║██║ ╚═╝ ██║╚██████╔╝██╔╝ ██╗ ██║ ██║██║╚██████╗██║ ██║██║ ██║██║██║ ╚████║
╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝
Sovereign Zero-Dependency AI Chaining & Multimodal Autonomous Agent Framework for Android Termux
Dual-Engine Architecture (Pure Python 3.10+ Stdlib & Pure Node.js 18+ ESM) with Native ARM64 Acceleration & 0 Heavy External Dependency
Official Documentation Site · AMEVA Foundation · Installation · Architecture · Recipes & Manual · Parameters · Benchmarks
AMEVA Foundation — Sovereign Mobile AI Ecosystem
"$0 Cloud Cost, 0% External Data Egress. Turning every Android smartphone into a sovereign autonomous AI workstation."
The AMEVA Open-Source Foundation (AOSF) builds next-generation, client-centric AI runtimes spanning on-device large models, browser automation, neural network training, speech-to-text, and autonomous agent chaining.
| Project | Platform & Packages | Core Capability & Technology | Documentation |
|---|---|---|---|
| ⚡ termux-aichain | Zero-Dependency Multimodal Agent Chaining & StateGraph Engine (Python stdlib + Node.js ESM) | Docs | |
| 🎙️ termux-stt | Integrated On-Device STT & Pure Python 128d X-Vector Diarization (Whisper + Vosk + Sherpa) | Docs | |
| 🎨 termux-diffusion | Mobile On-Device Stable Diffusion Image Generation (bfloat16 ARM NEON acceleration) | Docs | |
| 🌐 termux-playwright | Non-Root Native Headless Chromium Browser Automation & Scraping | Docs | |
| 🧠 termux-train | Mobile Native Autograd Neural Network Training & LoRA Fine-Tuning | Docs | |
| ⚡ AMEVA-Forge | High-Performance WebGPU Autograd & 3D Neural Studio Engine | Docs |
1. Quick Installation
1-Line Bootstrap Script (Android Termux)
curl -sSL https://raw.githubusercontent.com/uno-km/termux-aichain/main/scripts/install.sh | bash
Python SDK (PyPI):
pip install --upgrade termux-aichain
Node.js / TypeScript SDK (npm):
npm install termux-aichain
CLI One-Touch Environment Verification:
# Verify Bionic ARM64 environment, Termux APIs, and engine binaries
termux-aichain setup
# Pull verified GGUF model checkpoint (Llama-3.2-3B, Qwen-2.5-1.5B, BitNet-3B)
termux-aichain pull qwen-2.5-1.5b
# Start 1-line REST, SSE streaming server and Web Dashboard on port 8080
termux-aichain serve --port 8080
2. Why Termux-AIChain? Architectural Pillars
1. Zero-Heavy-Dependency Doctrine
- Standard edge AI libraries (LangChain, LlamaIndex, CrewAI) introduce 40~80 heavy dependencies (Pydantic, NumPy, aiohttp, requests, tenacity), resulting in 200MB+ memory baselines and frequent C-compilation failures on Android Bionic ARM64.
termux-aichainis written strictly with the Python 3.10+ Standard Library (urllib,sqlite3,subprocess,json,math,typing,http.server) and Pure Node.js 18+ ESM (http,node:sqlite,node:test).- Cold start import latency is 12.8ms, and total package disk footprint is under 268KB.
2. Native StateGraph & ReAct Engine
- Deterministic cyclic state machines with entry points, explicit edges, conditional routing, and
max_iterationsrecursion safety limits. - Built-in
create_react_agentfactory for autonomous tool-calling loops without heavy orchestrator overhead.
3. Full-Spectrum Local Server Hardware Fine-Tuning
- Direct lifecycle management and parameter injection for
llama-serverandBitNet.cpp. - 12 hardware flags exposed:
threads,n_ctx,n_batch,n_ubatch,n_gpu_layers,flash_attn,cache_type_k(q8_0/q4_0),cache_type_v,mlock,cont_batching,rope_freq_scale.
4. SQLite ACID Long-Term Memory & Pure Cosine Vector RAG
- Persistent entity key-value storage and vector similarity search built on native SQLite.
- Pure Python and Pure JavaScript algebraic vector dot product and cosine normalization without ChromaDB or NumPy.
5. Native Android Hardware Actuation & Ecosystem Integration
- Built-in tool wrappers for Termux:API (
battery,sensor,gps,vibrate,notification,tts,shell). - Three-tier fallback: Automatically queries
/sys/class/power_supply/batteryand/sys/devices/virtual/thermaldirectly from kernel sysfs iftermux-apiis absent. - Direct ecosystem hooks for
termux-stt(voice STT),termux-diffusion(image rendering), andtermux-playwright(headless web scraping).
3. Comprehensive Usage Recipes & Manual
Recipe 1: 1-Line Local LLM / BitNet LCEL Pipe Chaining
from termux_aichain import PromptTemplate, JsonOutputParser, OpenAICompatibleChat
# 1. Define prompt template and JSON output parser
prompt = PromptTemplate.from_template(
"Extract structured system status from log:
{log}
Respond in JSON with fields 'level', 'code', 'message'."
)
parser = JsonOutputParser()
# 2. Connect to local llama-server / BitNet endpoint
llm = OpenAICompatibleChat(base_url="http://127.0.0.1:8080/v1", temperature=0.1)
# 3. Assemble LCEL pipe chain
chain = prompt | llm | parser
# 4. Execute synchronously
result = chain.invoke({"log": "CRITICAL: Kernel thermal throttling triggered at 48C (Code 104)"})
print("Parsed JSON Result:", result)
Recipe 2: Autonomous ReAct Multi-Agent with StateGraph
from termux_aichain import (
create_react_agent,
BitNetChat,
HumanMessage,
get_battery_status,
vibrate_device,
transcribe_speech
)
# 1. Initialize local brain
model = BitNetChat(base_url="http://127.0.0.1:8080/v1", temperature=0.1)
# 2. Construct autonomous ReAct agent with hardware tools
agent = create_react_agent(
model=model,
tools=[get_battery_status, transcribe_speech, vibrate_device],
system_prompt="You are a sovereign mobile agent running on Android Termux."
)
# 3. Execute multi-step reasoning and acting loop
state = agent.invoke({
"messages": [HumanMessage(content="Check battery percentage and vibrate device for 500ms if battery > 50%.")]
})
print("Agent Final Response:", state["messages"][-1].content)
Recipe 3: SQLite Long-Term Memory & Cosine Vector Store
from termux_aichain import SQLiteEntityMemory, SQLiteVectorStore
# 1. Persistent Key-Value Entity Memory
memory = SQLiteEntityMemory(db_path="mobile_agent.db")
memory.save_entity("device_owner", "Dr. Uno Kim")
memory.save_entity("preferred_model", "BitNet-3B-1.58b")
print("Retrieved Owner:", memory.get_entity("device_owner"))
# 2. Pure Cosine Vector Store (No NumPy / ChromaDB needed)
vector_store = SQLiteVectorStore(db_path="vector_rag.db")
vector_store.add_texts(
texts=["Android Bionic Subsystem Architecture", "WebGPU Neural Compute Shaders"],
embeddings=[[0.92, 0.38, 0.05], [0.12, 0.44, 0.89]],
metadatas=[{"source": "os_doc"}, {"source": "gpu_doc"}]
)
matches = vector_store.similarity_search_by_vector([0.90, 0.40, 0.00], k=1)
print("Top RAG Match:", matches[0].page_content, f"(Score: {matches[0].score:.4f})")
Recipe 4: 1-Line REST, SSE Streaming Server & Web Dashboard
from termux_aichain import create_react_agent, OpenAICompatibleChat, serve, get_battery_status
llm = OpenAICompatibleChat(base_url="http://127.0.0.1:8080/v1")
agent = create_react_agent(model=llm, tools=[get_battery_status])
# Starts REST API (POST /v1/agent/invoke, POST /v1/agent/stream) and Web Dashboard UI
serve(agent, host="0.0.0.0", port=8000)
Recipe 5: Full Multimodal Pipeline (STT + Diffusion + Playwright + Haptic)
from termux_aichain import (
create_react_agent,
BitNetChat,
HumanMessage,
get_battery_status,
transcribe_speech,
generate_diffusion_image,
browse_web_headless,
vibrate_device
)
llm = BitNetChat(base_url="http://127.0.0.1:8080/v1", temperature=0.1)
agent = create_react_agent(
model=llm,
tools=[
get_battery_status,
transcribe_speech,
generate_diffusion_image,
browse_web_headless,
vibrate_device
],
system_prompt="You are a multimodal autonomous edge agent capable of speech, image, web scraping, and device control."
)
state = agent.invoke({
"messages": [HumanMessage(content="Transcribe speech from meeting.wav, search local weather, generate an emblem image, and vibrate.")]
})
Recipe 6: Node.js ESM Native Autonomous Agent
import {
PromptTemplate,
JsonOutputParser,
OpenAICompatibleChat,
StateGraph,
START,
END,
MicroVectorStore,
getDefaultDeviceTools
} from "termux-aichain";
// 1. In-Memory Micro Vector Store
const vectorStore = new MicroVectorStore();
vectorStore.addTexts(
["Linux Kernel Bionic", "ARM NEON SIMD"],
[[1.0, 0.0], [0.0, 1.0]]
);
const matches = vectorStore.similaritySearchByVector([0.98, 0.02], 1);
console.log("Vector Match:", matches[0].content, `(Score: ${matches[0].score.toFixed(4)})`);
// 2. Cyclic StateGraph Compilation
const workflow = new StateGraph();
workflow.addNode("counter", (state) => ({ step: (state.step || 0) + 1 }));
workflow.setEntryPoint("counter");
workflow.addConditionalEdges("counter", (state) => (state.step >= 3 ? END : "counter"));
const app = workflow.compile();
const result = await app.invoke({ step: 0 });
console.log("Graph Execution Result:", result);
4. Hardware Tuning & Sampling Parameters
12 Hardware Tuning Flags (LocalServerConfig)
| Parameter | Type | Default | Valid Range | Technical Function |
|---|---|---|---|---|
threads |
int |
CPU-1 |
1 ~ 16 |
Number of dedicated CPU threads for BLAS/NEON computation. |
n_ctx |
int |
2048 |
512 ~ 32768 |
Total token capacity allocated for the model context window. |
n_batch |
int |
512 |
32 ~ 2048 |
Prompt evaluation batch size. |
n_ubatch |
int |
256 |
16 ~ 512 |
Micro-batch size for strictly memory-constrained edge hardware. |
n_gpu_layers |
int |
0 |
0 ~ 99 |
Number of model layers offloaded to Vulkan / OpenCL / GPU compute. |
flash_attn |
bool |
False |
True / False |
Flash Attention kernel acceleration toggle (-fa). |
cache_type_k |
str |
"f16" |
"f16", "q8_0", "q4_0" |
Key cache quantization format (q8_0 saves 50% RAM, q4_0 saves 75%). |
cache_type_v |
str |
"f16" |
"f16", "q8_0", "q4_0" |
Value cache quantization format. |
mlock |
bool |
False |
True / False |
Lock model weights in RAM to prevent disk swapping. |
cont_batching |
bool |
True |
True / False |
Continuous batching support for multi-turn conversations. |
rope_freq_scale |
float |
None |
0.1 ~ 1.0 |
Linear RoPE context extension factor. |
port |
int |
8080 |
1024 ~ 65535 |
Local TCP port for the model server. |
8 Sampling Control Parameters (OpenAICompatibleChat / BitNetChat)
| Parameter | Type | Default | Valid Range | Technical Description |
|---|---|---|---|---|
temperature |
float |
0.7 |
0.0 ~ 2.0 |
Nucleus generation randomness (0.0 for deterministic code/JSON). |
top_p |
float |
0.95 |
0.0 ~ 1.0 |
Cumulative probability cutoff threshold for candidate token filtering. |
top_k |
int |
40 |
1 ~ 100 |
Integer limit on candidate token selection pool. |
min_p |
float |
0.05 |
0.0 ~ 1.0 |
Minimum relative probability cutoff to eliminate low-rank hallucinations. |
repeat_penalty |
float |
1.1 |
1.0 ~ 2.0 |
Frequency penalty scale to avoid infinite token repetition loops. |
stop |
List[str] |
None |
List[str] |
Generation termination sequence delimiters. |
seed |
int |
None |
int |
Random seed for exact deterministic generation reproducibility. |
grammar |
str |
None |
str |
GBNF or Regex structural constraint schema for forced JSON output. |
5. Empirical Benchmarks (Galaxy S20)
Measured on physical mobile hardware (Samsung Galaxy S20 5G, Qualcomm Snapdragon 865, 12GB RAM, Android 13 Termux):
| Measurement Metric | LangChain (Heavyweight) | termux-aichain v1.0.2 |
Performance Delta |
|---|---|---|---|
| Cold Start Import Latency | 1,240.0 ms | 12.8 ms | 96.8x Faster |
| Baseline RAM Footprint (RSS) | 185.0 MB | 14.2 MB | 92.3% Memory Saved |
| Package Disk Size | 48.5 MB | 0.26 MB (268 KB) | 99.4% Disk Saved |
| External Dependencies | 42+ packages | 0 packages | Zero External Dependencies |
| 5-Step Multimodal E2E Run | Failed (Crash) | 46.4 ms | 100% Deterministic PASS |
| Unit Test Suite Coverage | Variable | 73 / 73 PASS (100%) | Zero-Defect Verification |
6. License & Compliance
- License: Apache License 2.0 (
Apache-2.0). - Official Documentation Portal: https://uno-km.vercel.app/lib/aichain/
- GitHub Repository: https://github.com/uno-km/termux-aichain
- AMEVA Open-Source Foundation (AOSF).
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file termux_aichain-1.0.4.tar.gz.
File metadata
- Download URL: termux_aichain-1.0.4.tar.gz
- Upload date:
- Size: 58.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d008b890be4f563f7b83d71df6a9bc85c296d16e93d07725cf9a464a64debd83
|
|
| MD5 |
7e899a4df541d00c3cb6710a1e5be5cb
|
|
| BLAKE2b-256 |
2fb77d929a91b0947b8a5b14cab58c93ba4785e7c08fda6cab9687f03607257a
|
File details
Details for the file termux_aichain-1.0.4-py3-none-any.whl.
File metadata
- Download URL: termux_aichain-1.0.4-py3-none-any.whl
- Upload date:
- Size: 51.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40c3c4e8d8e6609c48fa4401a9fc2d7f8d415de0a34e375f64b885f091b36926
|
|
| MD5 |
fbfbbaaf00d0f7f9a61796c456d27ae5
|
|
| BLAKE2b-256 |
8ba7873a85dbb9138a2d117bc0fc20d1bddc4f0e128b25750d3bcf98aca677c8
|