Main features
- Runs GGUF models such as Gemma, Qwen, Phi and Llama offline on iOS and Android
- Searches and downloads models from Hugging Face, including gated ones
- Image input with vision models
- Connects to remote llama.cpp, LM Studio, Ollama, vLLM or OpenAI servers
- On-device text-to-speech and Whisper voice input
- Pals with their own model, system prompt and personality
- Tool calling for calculations, web search, page reading and HTML rendering
- Benchmarks with optional submission to a public phone leaderboard
- CPU, GPU and Qualcomm NPU acceleration
What PocketPal AI does
PocketPal AI puts a local language model on your phone. You pick a model from its list or search Hugging Face, download it once and chat with it with no connection and no account. Around the chat it adds “Pals” (personas with their own model and system prompt), vision models that accept photos, spoken replies and voice input, and “Talents”, tools the model can call, such as a calculator, web search and a page reader. A benchmark screen measures tokens per second and memory use on your device.
Models and providers
On the phone, PocketPal runs models in the GGUF format through llama.cpp, using the llama.rn bridge. The README lists three hardware paths: CPU everywhere, GPU (Metal on iOS, OpenCL on Qualcomm Adreno chips on Android) and the Qualcomm Hexagon NPU, which the website marks as experimental. When a backend is unavailable, the app falls back or offloads only part of the model. Speech runs locally through ONNX Runtime with the Kokoro, Kitten and Supertonic voice engines, and voice input uses an on-device Whisper model.
For larger models you can add a remote server: the app knows llama.cpp’s server, LM Studio, Ollama, vLLM and OpenAI, and accepts other OpenAI-compatible endpoints with an optional API key. That makes it a mobile front end for a model server you run at home.
Privacy and data
Chats are stored on the phone in a local database, with secrets in the system keychain. The README says the only data that leaves the device is benchmark results you choose to submit and feedback you send. The app uses Firebase App Check to protect those calls, and the dependency list contains no analytics SDK. Remote servers and web search are opt-in, and the app warns about each one: messages sent to a remote server leave the phone, and web search queries go to the provider you pick (Tavily, Brave, Exa, Firecrawl or You.com, mostly with your own key).
Running PocketPal AI
Install it from the App Store or Google Play. Which models are practical depends on your phone’s memory and storage; the README advises choosing a quantization that fits both. To build it yourself you need a standard React Native setup: Node 22, Yarn 1, Xcode with the Metal toolchain for iOS and Android Studio for Android. Core chat works in a self-built copy without any backend keys.
Hosted version
There is no hosted chat service. The developers run pocketpal.dev, with the phone leaderboard and model evaluations, and PalsHub, a catalog of community personas.
Limitations
A model that fits in a phone’s memory is far smaller than the models behind hosted assistants, so expect weaker answers on complex tasks and slower replies on older devices. There is no document chat or knowledge base: attachments are images for vision models. PocketPal Plus, a one-time pay-what-you-want purchase, unlocks hands-free voice mode in the store builds; the project says chatting itself stays free. There is no desktop version.
Who it suits
PocketPal suits people who want a private assistant that works on a plane or without signal, and owners of a home model server who want a phone client for it. For running local models on a computer, see Jan or Ollama.
License details
MIT. Optional PocketPal Plus in-app purchase unlocks hands-free voice mode in the store builds; premium Pals on PalsHub are sold in-app. The code for both is in the MIT repository.
Technical details
Built with
- TypeScript
- React Native
- llama.cpp
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.