Large model binaries are downloaded locally and are not committed to Git.

Local models

Open Edge AI keeps model lifecycle and private context close to the device. The repository tracks runtime code and placeholders, not large model binaries.

Asset policy

Model binaries are intentionally excluded from Git because of size, licensing, redistribution, and device compatibility constraints. Real model files should be downloaded on device or stored outside the repository.

android/app/src/main/assets/models/
└── gemma-4-E2B-it.litertlm
A placeholder file may exist for development packaging, but generation requires a compatible runtime asset.

Lifecycle

  1. Inspect startup state.
  2. Check model availability and runtime compatibility.
  3. Download or locate the model file.
  4. Load the runtime when generation is requested.
  5. Route compatible requests to the loaded runtime.
  6. Cancel or unload when work ends or the host is invalidated.

Platform paths

PlatformCurrent direction
AndroidKotlin runtime modules expose status, download, loading, routing, embeddings, retrieval, and background indexing.
iOSNative Swift clients target Apple Foundation Models and compatible Gemma/LiteRT-LM execution.
WebDevelopment fallback only; browser preview does not load native mobile runtimes.

Privacy

On-device generation can reduce server dependency, but privacy still depends on the selected runtime, model provider, attachment source, and optional network features. Users should be able to distinguish local execution from provider-backed execution.

Compatibility and performance

Model compatibility depends on format, runtime version, device memory, operating system support, and accelerator availability. A model file that exists on disk is not necessarily loadable on every device.

Repository rules

  • Do not commit model binaries or generated download output.
  • Document the expected format, source, checksum strategy, and license.
  • Handle download failure, cancellation, storage pressure, and incompatible runtime errors.
  • Never imply that a remote provider is local execution.