expo-ai-kit

Bring on-device AI capabilities to your React Native and Expo applications. Run language models directly on the device with no network latency, complete privacy, and offline support.

iOSAndroidBeta

What is expo-ai-kit?

expo-ai-kit is a library that provides a unified API for running AI models directly on mobile devices. It leverages platform-native AI frameworks to deliver fast, private, and offline-capable AI experiences.

On iOS, expo-ai-kit uses Apple's Foundation Models framework (part of Apple Intelligence) to access the on-device language model. On Android, support is coming soon with integration planned for Google's ML Kit and on-device LLM capabilities.

Privacy First

All AI processing happens locally on the device. Your users' data never leaves their phone, ensuring complete privacy and compliance with data protection regulations.

Key Features

  • Zero network latency — Responses are generated instantly on-device without waiting for network round-trips
  • Complete privacy — All data stays on the device, never sent to external servers
  • Offline support — Works without an internet connection
  • Multi-turn conversations — Maintain context across multiple messages in a conversation
  • Streaming responses — Get responses token-by-token for a natural chat experience
  • Simple API — Clean, Promise-based API that's easy to integrate into any app

Platform Support

PlatformStatusRequirements
iOSSupportediOS 26.0+, Apple Intelligence enabled device
AndroidComing SoonTBD
WebNot Planned

iOS Requirements

On iOS, expo-ai-kit requires a device that supports Apple Intelligence. This includes iPhone 15 Pro, iPhone 15 Pro Max, and all iPhone 16 models. The device must also be running iOS 26.0 or later with Apple Intelligence enabled in Settings.

Quick Example

Here's a simple example showing how to check availability and send a message:

App.tsxtypescript
import { isAvailable, createSession, sendMessage } from 'expo-ai-kit';

async function askQuestion() {
  // Check if on-device AI is available
  const available = await isAvailable();

  if (!available) {
    console.log('On-device AI is not available on this device');
    return;
  }

  // Create a new session
  const session = await createSession();

  // Send a message and get a response
  const response = await sendMessage(session, {
    message: 'What is React Native?',
  });

  console.log(response.text);
}

Next Steps