{"slug": "announcing-expo-support-for-nobodywho", "title": "Announcing Expo support for NobodyWho", "summary": "NobodyWho, an open-source project providing a Rust core for on-device LLM inference via llama.cpp, announced support for Expo, enabling developers to run large language models entirely on users' phones without API keys or servers. The new react-native-nobodywho package offers features including streaming text generation, tool calling, multimodal input, text-to-speech, speech-to-text, and embeddings, with an Expo starter example available on GitHub.", "body_md": "# Announcing Expo support for NobodyWho\n\nNobodyWho now works with [Expo](https://expo.dev/). You can add `react-native-nobodywho`\n\nto an Expo project and ship an LLM that runs entirely on your users' phones. No API keys, no servers to babysit, no per-token bill at the end of the month, just a `.gguf`\n\nmodel to download.\n\nTo help you get up and running quickly, we've also published a full [Expo starter example](https://github.com/nobodywho-ooo/expo-starter-example) that wires up every feature in an Expo app you can run within minutes. You can also have a look to the [docs](https://docs.nobodywho.ooo/react-native/) or give your agent everything it needs with `npx skills add https://github.com/nobodywho-ooo/nobodywho --skill nobodywho`\n\n.\n\n## Why on-device?\n\nMost AI features in mobile apps today route every processing request through a hosted API. Running the model directly on the user's device is a different shape of product, and it brings several benefits:\n\n**Privacy by design**- user data never leaves the device** Works offline**- no internet connection required** Low latency**- no network round trip on every interaction** No cloud costs**- inference is free, no per-token billing\n\nThe tradeoff is raw capability: local models are smaller than frontier cloud models, but for chat, summarization, classification, transcription, and many agentic workflows they're more than enough. And on modern phones, GPU-accelerated inference (Metal on iOS, Vulkan on Android) makes them fast.\n\n## What you get\n\nYou get the same core API as our other bindings:\n\n**Text generation**- streaming, token-by-token chat with full conversation memory** Use any**- Gemma, Qwen, Mistral, LFM, Granite, and thousands more`.gguf`\n\nmodel**Tool calling**- type-safe function calling that generates structured grammars directly from your TypeScript function signatures** Multimodal input**- feed images and audio straight to a vision or audio-capable model** Text-to-speech (TTS)**- synthesize natural-sounding WAV audio locally with Kokoro, Pocket-tts, and Supertonic backends** Speech-to-text (STT)**- transcribe audio into text with Whisper models** Voice activity detection (VAD)**- reliably detect speech from silence with Silero VAD** Embeddings & RAG**- an embedding encoder plus a cross-encoder reranker for semantic search** Model downloading**- load models directly from Hugging Face (`hf://…`\n\n) or any URL, on demand\n\nUnder the hood you also get conversation-aware preemptive context shifting, so you keep full conversation memory without hard message-length limits. It works on both iOS and Android.\n\n## Getting started\n\nInstall the package in your Expo project:\n\n```\nnpx expo install react-native-nobodywho\n```\n\nA minimal streaming chat looks like this:\n\n``` js\nimport { Chat } from \"react-native-nobodywho\";\n\nconst chat = await Chat.fromPath({\n  modelPath: \"/path/to/model.gguf\",\n  useGpu: true,\n});\n\nfor await (const token of chat.ask(\"Is water wet?\")) {\n  console.log(token);\n}\n```\n\nThen run the app with `npx expo run:ios`\n\nor `npx expo run:android`\n\n.\n\n## One core, many languages\n\nExpo joins a growing list of NobodyWho targets. The same Rust core wrapping [llama.cpp](%5Bllama.cpp%5D(https://github.com/ggerganov/llama.cpp)) now powers bindings across:\n\n**Godot**- drop-in nodes for game dialogue, NPCs, and tooling** Python**- for scripting, prototyping, and ML workflows** Swift**- native iOS, macOS, watchOS, and visionOS apps** Kotlin**- native Android and cross-platform JVM desktop apps** Flutter**- cross-platform mobile and desktop apps** React Native / Expo**- the JavaScript/TypeScript mobile ecosystem\n\nThat's the whole point of NobodyWho: one well-maintained inference core, with bindings for whichever language or framework you need. Every binding gets the same feature set, so you don't have to give up capabilities to use the tools you prefer.\n\n## Join the community\n\nWe'd love to hear what you build with NobodyWho on Expo! Come and meet the people building with NobodyWho and get help:\n\n- open an issue if you hit a bug, or a discussion if you have an idea.[GitHub](https://github.com/nobodywho-ooo/nobodywho)- the best place to ask questions, share what you're working on, and chat with the team and other NobodyWho users.[Discord](https://discord.gg/qhaMc2qCYB)\n\nHappy hacking!\n\nEverything NobodyWho do is open-source, please leave a\n[star on Github](https://github.com/nobodywho-ooo/nobodywho)\nto support us ❤️\n\nPublished Aug 27, 2026", "url": "https://wpnews.pro/news/announcing-expo-support-for-nobodywho", "canonical_source": "https://www.nobodywho.ai/posts/announcing-expo-support/", "published_at": "2026-08-27 00:00:00+00:00", "updated_at": "2026-08-31 14:23:41.682367+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-products", "ai-tools", "developer-tools"], "entities": ["NobodyWho", "Expo", "react-native-nobodywho", "llama.cpp", "Hugging Face", "Kokoro", "Pocket-tts", "Supertonic"], "alternates": {"html": "https://wpnews.pro/news/announcing-expo-support-for-nobodywho", "markdown": "https://wpnews.pro/news/announcing-expo-support-for-nobodywho.md", "text": "https://wpnews.pro/news/announcing-expo-support-for-nobodywho.txt", "jsonld": "https://wpnews.pro/news/announcing-expo-support-for-nobodywho.jsonld"}}