Jandal AI — Local-first Android AI assistant with on-device LLM inference, semantic memory, and extensible skill framework
C
34
842 commits
updated Oct 15, 2026
Play Store release in progress. Pre-release builds are available from GitHub Releases.
Jandal AI is a local-first Android assistant. It combines on-device chat, long-term memory, deterministic Android actions, voice input/output, and native tool calling while keeping user data on the device by default.
Jandal is built around a Brain-Memory-Action model:
QuickIntentRouter handles deterministic fast paths for common device actions.Launch readiness is tracked in GitHub rather than duplicated in this README:
launch:blocking label and Jandal Launch Backlog project views are the live launch blocker queue and filtered work dashboard.docs/PLAN-launch-slice.md is a historical launch-slice snapshot, not the current plan.The current launch gates are:
Wake-word launch qualification is complete. Broader permission orchestration, evidence-platform, and wake-word optimisation work remains post-launch unless a new release-candidate regression proves otherwise.
Jandal currently includes:
Future roadmap work includes Dreaming Engine background consolidation, Wasm skill extensibility, broader device optimisation, and richer multimodal/vision workflows. These are intentionally separated from the launch plan unless explicitly promoted.
| Area | Technology |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose, Material 3 Dynamic Color, Glance widgets |
| Dependency injection | Hilt |
| Persistence | Room, DataStore |
| Background work | WorkManager |
| Local inference | Google AI Edge LiteRT / LiteRT-LM |
| Chat models | Gemma-4 E-2B / E-4B LiteRT-LM packages |
| Embeddings / RAG | Arctic Embed M v1.5 (768-dim), sqlite-vec cosine indexes |
| Quick actions | Kotlin QuickIntentRouter with deterministic routing and slot filling |
| Tool calling | LiteRT-LM native @Tool annotations and app-owned native skills |
| STT | Android native STT, Vosk, Sherpa-ONNX Zipformer / SenseVoice / Whisper tiny.en / Paraformer |
| TTS | Sherpa-ONNX Piper/VITS voice packs, Android TTS fallback, Kokoro research path |
| Wake word | Sherpa-ONNX verification and ONNX Runtime wake-word pipeline |
| Auth for gated downloads | Hugging Face OAuth via AppAuth |
| Extensibility research | Chicory WebAssembly runtime |
Model files are not committed to this repository. Some model downloads are gated and require a Hugging Face account plus acceptance of upstream terms. Arctic Embed M v1.5 is ungated and temporarily hosted at a public rolling GitHub release; the validated artifact's SHA-256 provenance is recorded in docs/research/1559-arctic-phase-b-calibration.md. Long-term publication to litert-community is tracked separately in #1563; GitHub release immutability is not a #1559 gate.
See models/README.md for the current model file reference, approximate sizes, ADB setup notes, and device-specific guidance.
Key launch-relevant examples:
| Model / asset | Approx. size | Notes |
|---|---|---|
| Gemma-4 E-2B LiteRT-LM | ~2.4 GB | Required launch-compatible chat model tier |
| Gemma-4 E-4B LiteRT-LM | ~3.4 GB | Optional flagship-tier chat model |
| Arctic Embed M v1.5 + WordPiece vocabulary | 114,082,292 bytes | Required local embedding/RAG assets; downloaded from a public rolling release |
| Sherpa STT models | ~72-220 MB each | Downloaded per selected STT engine |
| Sherpa Piper/VITS voice packs | ~64-116 MB each | Downloaded per selected voice; Semaine launch decision tracked in #1258 |
Jandal is designed as a local-first assistant:
models/README.md - model file setup, sizes, and ADB paths.docs/LEGAL_AND_ATTRIBUTION.md - launch attribution and licence checklist.docs/SPECIFICATION.md - broader product and architecture specification.docs/ROADMAP.md - broader roadmap notes.docs/testing/ - automated test harness, evidence schema, and QA documentation.The source code is licensed under the Apache License 2.0. See LICENSE.
Third-party notices are maintained in NOTICE. Launch readiness for third-party libraries, voice assets, and gated model downloads is tracked in docs/LEGAL_AND_ATTRIBUTION.md.
Jandal AI — Local-first Android AI assistant with on-device LLM inference, semantic memory, and extensible skill framework
C
34
842 commits
updated Oct 15, 2026
Play Store release in progress. Pre-release builds are available from GitHub Releases.
Jandal AI is a local-first Android assistant. It combines on-device chat, long-term memory, deterministic Android actions, voice input/output, and native tool calling while keeping user data on the device by default.
Jandal is built around a Brain-Memory-Action model:
QuickIntentRouter handles deterministic fast paths for common device actions.Launch readiness is tracked in GitHub rather than duplicated in this README:
launch:blocking label and Jandal Launch Backlog project views are the live launch blocker queue and filtered work dashboard.docs/PLAN-launch-slice.md is a historical launch-slice snapshot, not the current plan.The current launch gates are:
Wake-word launch qualification is complete. Broader permission orchestration, evidence-platform, and wake-word optimisation work remains post-launch unless a new release-candidate regression proves otherwise.
Jandal currently includes:
Future roadmap work includes Dreaming Engine background consolidation, Wasm skill extensibility, broader device optimisation, and richer multimodal/vision workflows. These are intentionally separated from the launch plan unless explicitly promoted.
| Area | Technology |
|---|---|
| Language | Kotlin |
| UI | Jetpack Compose, Material 3 Dynamic Color, Glance widgets |
| Dependency injection | Hilt |
| Persistence | Room, DataStore |
| Background work | WorkManager |
| Local inference | Google AI Edge LiteRT / LiteRT-LM |
| Chat models | Gemma-4 E-2B / E-4B LiteRT-LM packages |
| Embeddings / RAG | Arctic Embed M v1.5 (768-dim), sqlite-vec cosine indexes |
| Quick actions | Kotlin QuickIntentRouter with deterministic routing and slot filling |
| Tool calling | LiteRT-LM native @Tool annotations and app-owned native skills |
| STT | Android native STT, Vosk, Sherpa-ONNX Zipformer / SenseVoice / Whisper tiny.en / Paraformer |
| TTS | Sherpa-ONNX Piper/VITS voice packs, Android TTS fallback, Kokoro research path |
| Wake word | Sherpa-ONNX verification and ONNX Runtime wake-word pipeline |
| Auth for gated downloads | Hugging Face OAuth via AppAuth |
| Extensibility research | Chicory WebAssembly runtime |
Model files are not committed to this repository. Some model downloads are gated and require a Hugging Face account plus acceptance of upstream terms. Arctic Embed M v1.5 is ungated and temporarily hosted at a public rolling GitHub release; the validated artifact's SHA-256 provenance is recorded in docs/research/1559-arctic-phase-b-calibration.md. Long-term publication to litert-community is tracked separately in #1563; GitHub release immutability is not a #1559 gate.
See models/README.md for the current model file reference, approximate sizes, ADB setup notes, and device-specific guidance.
Key launch-relevant examples:
| Model / asset | Approx. size | Notes |
|---|---|---|
| Gemma-4 E-2B LiteRT-LM | ~2.4 GB | Required launch-compatible chat model tier |
| Gemma-4 E-4B LiteRT-LM | ~3.4 GB | Optional flagship-tier chat model |
| Arctic Embed M v1.5 + WordPiece vocabulary | 114,082,292 bytes | Required local embedding/RAG assets; downloaded from a public rolling release |
| Sherpa STT models | ~72-220 MB each | Downloaded per selected STT engine |
| Sherpa Piper/VITS voice packs | ~64-116 MB each | Downloaded per selected voice; Semaine launch decision tracked in #1258 |
Jandal is designed as a local-first assistant:
models/README.md - model file setup, sizes, and ADB paths.docs/LEGAL_AND_ATTRIBUTION.md - launch attribution and licence checklist.docs/SPECIFICATION.md - broader product and architecture specification.docs/ROADMAP.md - broader roadmap notes.docs/testing/ - automated test harness, evidence schema, and QA documentation.The source code is licensed under the Apache License 2.0. See LICENSE.
Third-party notices are maintained in NOTICE. Launch readiness for third-party libraries, voice assets, and gated model downloads is tracked in docs/LEGAL_AND_ATTRIBUTION.md.