React Native Gifted Chat

Active
GitHub TypeScript MIT

Description

React Native Gifted Chat is the most complete chat UI library for React Native, with iOS, Android, and Web support and highly customizable message components.

Key Features

  • Cross-platform — supports iOS, Android, Web (via react-native-web), and Expo projects
  • Fully customizable — any component can be overridden with a custom implementation
  • Complete messaging features — attachments, reply threading, load earlier, copy, smart link parsing
  • Smart interactions — quick replies, typing indicator, sent/delivered/read ticks, scroll-to-bottom
  • TypeScript native — full TypeScript typings included
  • Localized dates — full i18n via Day.js

Use Cases

💡 Quickly integrating chat UI into React Native mobile apps
💡 Reusing the same chat components on Web via react-native-web
💡 Building AI chat apps with typing indicators and read receipts on top of an LLM API
💡 Replacing in-house chat components to cut maintenance cost
💡 Customizing to Slack-style or Messenger-style layouts by overriding components

Strengths & Limitations

Strengths

  • Actively maintained, recent updates
  • High community interest (14.4k stars)
  • Permissive open-source license (MIT)
  • Responsive to issues, low backlog

Categories

Quick Start

# In an Expo project
npx expo install react-native-gifted-chat react-native-reanimated react-native-gesture-handler

# In a bare React Native project
npm install --save react-native-gifted-chat react-native-reanimated react-native-gesture-handler
npx pod-install

# Use GiftedChat in a React component
import { GiftedChat } from 'react-native-gifted-chat'
import { useState, useCallback, useEffect } from 'react'

export function ChatScreen() {
  const [messages, setMessages] = useState([])
  useEffect(() => {
    setMessages([{ _id: 1, text: 'Hello!', createdAt: new Date(), user: { _id: 2 } }])
  }, [])
  const onSend = useCallback((msgs = []) => setMessages(p => GiftedChat.append(p, msgs)), [])
  return <GiftedChat messages={messages} onSend={onSend} user={{ _id: 1 }} />
}

Related Projects

ChatterUI

2.7k · TypeScript
Active A+

ChatterUI is a native mobile chat frontend for LLMs that can run on-device models or connect to OpenAI, Claude, Ollama and many other APIs.

chat-uimobilereact-native +2
  • · On-device inference — runs gguf models directly on Android via cui-llama.rn over llama.cpp
  • · Multi-API support — OpenAI, Claude, Cohere, OpenRouter, Mancer, Ollama, koboldcpp and more
  • · Character card spec — compatible with the Character Card v2 format used by SillyTavern

Chatbox

41.6k · TypeScript
Active A

Chatbox is a powerful cross-platform AI client supporting OpenAI, Claude, Gemini, and other LLMs with desktop and mobile apps.

chat-uimulti-modeldesktop +2
  • · Multi-model support — Seamlessly integrate OpenAI, Azure OpenAI, Claude, Gemini Pro, Ollama and more
  • · Local data storage — All data stays on your device for privacy and persistence
  • · Cross-platform desktop — Windows, macOS, Linux with ready-to-use installers

Cherry Studio

51.4k · TypeScript
Active A

Cherry Studio is an AI productivity studio with smart chat, autonomous agents, and 300+ assistants, providing unified access to frontier LLMs.

chat-uimulti-modelagent +2
  • · Multi-provider LLM support — Integrates OpenAI, Gemini, Anthropic cloud services plus Ollama, LM Studio local models
  • · 300+ pre-configured assistants — Built-in library of assistants with custom creation and multi-model simultaneous conversations
  • · Document processing — Supports text, images, Office, PDF formats with Mermaid chart rendering and code syntax highlighting

Ant Design X

4.8k · TypeScript
Active A

Ant Design X is an enterprise-grade React component library for AI conversation interfaces and intelligent agent experiences, with streaming Markdown and A2UI card rendering.

chat-uireacttypescript +2
  • · RICH interaction paradigm components - atomic UI for AI conversation stages
  • · Streaming Markdown renderer - high-performance streaming of formulas, code, and mermaid
  • · A2UI dynamic card renderer - agents build interactive UIs from structured JSON streams