It’s an iOS and Android demo built with React Native and Expo that explores the possibility of using LLMs’ natural language capabilities to run deterministic APIs using local or self-hosted models.
The demo puts an LLM in control of an offline map. You can say or type a command, and the model translates your intent into tool calls that the app executes automatically. Zoom the map, reset the view, or display points of interest of desired types, all through natural language.
Features:
On-device AI – Run models directly on your phone using react-native-executorch and Meta’s ExecuTorch runtime.
Multiple inference options – Run models on-device, connect to larger models through LM Studio on your local network, or reconfigure the project to use a remote AI API.
Privacy by design – The on-device setup requires no server or internet connection; self-hosted models are private in the sense of data not leaving your infrastructure.
To me, this is a practical example of where LLMs can be genuinely useful: not replacing application logic, but translating human intent into structured actions that existing APIs can execute reliably.
The model interprets what you want to do. The application retains control over how it actually happens.
I’m sharing the project as a playground for experimenting with tool calling, local inference, React Native, and AI-powered interfaces. The project is designed to be easy to edit, so you can add more functions/tools and play around.
👉 GitHub: https://github.com/AndreiMaksimovich/ReactNative-LLM-Tool-Calling-Playground