Skip to content

πŸ“± Hello World β€” On-Device Android

The model runs INSIDE the app. Airplane mode. In the video, qwen3-4b lives in the Ghost APK via llama.cpp β€” the agent opens Reddit, reads the frontpage, and summarizes it, and nothing ever leaves the phone. The phone is both the body and the brain.

  • An Android phone with enough RAM for your chosen model (~4 GB free for a 4B Q4 model, less for Gemma 1B/2B)
  • The Ghost companion APK installed on the phone (built from the repo β€” see On-Device LLM)
  • A model file: .gguf (llama.cpp) or .task (MediaPipe) β€” the registry lists tested ones

Open the Ghost app on the phone and pick a model from the on-device registry (e.g. qwen3-4b GGUF, or gemma-3-1b-it for smaller phones). OnDeviceLLM.ensureLoaded(modelId) routes to the right engine β€” MediaPipe for .task, llama.cpp (JNI) for .gguf. You don’t have to care which.

Seriously β€” do it. That’s the point. The demo runs with zero connectivity.

In the Ghost app’s chat:

summarize the reddit frontpage

The agent launches Reddit, reads the screen tree, scrolls, comes back, and streams a summary β€” reasoned entirely on-device. The on-device Β· qwen3-4b chip in the UI confirms no cloud is involved.

Where model runsWhat leaves the phone
Cloud (Anthropic, OpenRouter…)Cloud GPUPrompts + tools
Local (Ollama, vLLM)Your laptop/desk GPUPrompts leave the phone, stay on your network
On-device ⭐The phone itselfNothing

MCP + Claude Code Β· MCP + Codex Β· MCP + Antigravity Β· Ghost CLI Β· LangChain Β· Web Chat Β· On-Device iPhone Β· iPhone Duolingo