# @copilotkit/react-native — Usage ## Prerequisites Install all required peer dependencies: ```bash npm install react react-native @gorhom/bottom-sheet react-native-gesture-handler react-native-reanimated react-native-streamdown ``` `@gorhom/bottom-sheet`, `react-native-gesture-handler`, `react-native-reanimated`, and `react-native-streamdown` are required peer dependencies for the UI components. ## Quick Start ```tsx import "@copilotkit/react-native/polyfills"; import { CopilotKitProvider, CopilotChat, useRenderTool, } from "@copilotkit/react-native"; import { z } from "zod"; function App() { return ( ); } function ChatScreen() { // parameters accepts any StandardSchemaV1-compatible schema (Zod, Valibot, ArkType, etc.) useRenderTool({ name: "showWeather", description: "Show weather info", parameters: z.object({ city: z.string() }), render: ({ args }) => , }); return ; } ``` ## Available Components ### CopilotChat Inline chat panel. Renders a message list with an input bar. ```tsx import { CopilotChat } from "@copilotkit/react-native"; ; ``` ### CopilotModal Modal chat overlay. Open/close programmatically via a ref. ```tsx import { CopilotModal, type CopilotModalRef } from "@copilotkit/react-native"; import { useRef } from "react"; const modalRef = useRef(null); ; // Open it: modalRef.current?.open(); ``` ### CopilotMarkdown Renders Markdown text with sensible React Native styling. ```tsx import { CopilotMarkdown } from "@copilotkit/react-native"; ; ``` ### AssistantMessage / UserMessage Individual message bubbles. Useful when building a custom chat UI. ```tsx import { AssistantMessage, UserMessage } from "@copilotkit/react-native"; ``` ## Hooks ### useRenderTool Register a React Native component to render inline when the agent calls a tool. ```tsx // parameters accepts any StandardSchemaV1-compatible schema (Zod, Valibot, ArkType, etc.) useRenderTool({ name: "showChart", description: "Display a chart", parameters: z.object({ data: z.record(z.unknown()) }), render: ({ args }) => , }); ``` ## Alternative Import Path Components can also be imported from the `/components` subpath: ```tsx import { CopilotChat, CopilotModal } from "@copilotkit/react-native/components"; ```