Files

1.9 KiB

Termux installation path

NexusOS is packaged so its Python runtime, memory database, playbooks, and compiled web UI can run without a source checkout or Node.js. Inference is configured separately through an Ollama-compatible HTTP endpoint; NexusOS does not attempt to manage that remote process.

Bootstrap

After nexusos-ai and a compatible Android pydantic-core wheel are published:

curl -fsSLO https://git.enderofwings.com/enderofwings/NexusOS/raw/branch/main/scripts/install-termux.sh
chmod +x install-termux.sh
NEXUS_ANDROID_WHEEL_INDEX=https://packages.example.invalid/android/simple \
  ./install-termux.sh

For a local release artifact, pass the wheel path or URL as the first argument:

NEXUS_ANDROID_WHEEL_INDEX=https://packages.example.invalid/android/simple \
  ./scripts/install-termux.sh ./dist/nexusos_ai-1.0.0-py3-none-any.whl

Then configure inference and serve the UI:

nexus provider use remote --url http://192.168.1.20:11434
nexus serve
termux-open-url http://127.0.0.1:8000

Native wheel gate

Current Termux Python is 3.14, so Pydantic 1 is not a safe fallback. Pydantic 2 depends on the Rust-based pydantic-core. PyPI publishes Linux, macOS, Windows, and WebAssembly wheels but no Android wheel, while the current Termux Rust package cannot build common Rust extensions on-device.

The bootstrap script therefore requires a binary pydantic-core and accepts a trusted PEP 503 wheel index through NEXUS_ANDROID_WHEEL_INDEX. It fails early with the detected Python ABI and CPU when that artifact is missing. The release pipeline can publish the pure NexusOS wheel today; an Android wheel job/index is the remaining prerequisite for a one-line public Termux install.

Do not work around this by downloading an unverified binary or by exposing the NexusOS server with --allow-lan. Keep the UI on loopback and let the Android browser connect to 127.0.0.1.