npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

react-native-local-ai

v0.1.5

Published

Offline local AI chat and LLM inference for React Native with streaming token responses and GGUF support.

Readme

react-native-local-ai

Offline ChatGPT-style SDK for React Native.

npm install react-native-local-ai
import { AIChat } from 'react-native-local-ai';

export default function App() {
  return <AIChat />;
}

What This Package Provides

  • Zero-config TypeScript API and React Native chat UI
  • Streaming response callbacks
  • Dark/light mode
  • Chat history in component state
  • Abort generation
  • Temperature and max token options
  • New Architecture-ready native module surface
  • Kotlin + JNI bridge on Android
  • Objective-C++/Swift bridge on iOS
  • Shared C++ inference runtime facade
  • Bundled compressed TinyLlama model
  • First-run model install into app-private storage
  • llama.cpp-backed local inference

API

import { LocalAI } from 'react-native-local-ai';

await LocalAI.initialize();

const text = await LocalAI.chat({
  message: 'Hello',
  temperature: 0.7,
  maxTokens: 256
});

await LocalAI.chatStream({
  message: 'Tell me a joke',
  onToken(token) {
    console.log(token);
  }
});

await LocalAI.stopGeneration();

Components

import { AIChat, AIMessage, AIInput, AITypingIndicator } from 'react-native-local-ai';

<AIChat /> is the plug-and-play screen component. The smaller components are exported for custom chat layouts.

Offline Model Install

The npm package stays small enough to publish, then installs TinyLlama during npm install. The postinstall script downloads the TinyLlama GGUF, verifies its checksum, and writes this compressed asset into the package directory:

assets/local-ai/tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf.gz

When an app calls LocalAI.initialize(), the native module installs the model automatically:

  • Android copies assets/local-ai/*.gguf if present, otherwise decompresses *.gguf.gz into context.filesDir/local-ai/.
  • iOS copies a bundled .gguf if present, otherwise decompresses *.gguf.gz into Application Support.

The model download can be skipped in CI or custom packaging with:

REACT_NATIVE_LOCAL_AI_SKIP_MODEL_DOWNLOAD=1 npm install

If install scripts are disabled, run the installer before building the native app:

npx react-native-local-ai-install-model

To refresh the local model and llama.cpp vendor sources before publishing:

npm run setup:local-ai

That prepares:

  • assets/local-ai/tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf
  • assets/local-ai/tinyllama-1.1b-chat-v1.0.Q4_K_M.gguf.gz
  • third_party/llama.cpp/

The raw .gguf and generated .gguf.gz files are excluded from published packages so npm does not reject the tarball.

Architecture

React Native UI
  -> LocalAI TypeScript API
  -> TurboModule / NativeModule surface
  -> Kotlin + JNI / Objective-C++ + Swift
  -> Shared C++ LocalAIRuntime
  -> llama.cpp
  -> Bundled TinyLlama Q4 GGUF model

Verification

npm run build
npm run typecheck
npm test
npm_config_cache=.npm-cache npm pack --dry-run

Notes

  • iOS and Android ARM64 are the intended production targets.
  • The runtime is designed for background inference threads, mmap model loading, and KV cache reuse.
  • Developers using the package should not pass model paths. Model copy/load is owned internally by native code.