Skip to content
Pilotoo
v0.1

@pilotoo/chat-ui

@pilotoo/chat-ui is the chat component kit for React Native: messages, composer, tool calls, markdown, code blocks and the agent picker. It supplies the pieces, not an assembled screen. Keyboard handling, safe areas and layout are yours, because a phone and a window answer them differently. Use it with Expo, on top of @pilotoo/chat-core.

@pilotoo/chat-ui is at version 0.1.0 and is not published to a registry yet. A host gets it today by packing the tarballs from the kit repository:

Terminal window
pnpm install
pnpm release:check

release:check builds the release packages and writes one .tgz per package to node_modules/.cache/release-check/. Copy the tarballs you need into your project (for example vendor/) and depend on them as files:

package.json
{
"dependencies": {
"@pilotoo/chat-ui": "file:vendor/pilotoo-chat-ui-0.1.0.tgz"
}
}

The release set (chat-protocol, chat-core, chat-ui, ui, agent-runtime, server, local-server) is versioned together: install every kit package you use at the same version. See Installation for the full setup.

Import the theme and point Tailwind at the package, or components render without styles:

src/global.css
@import "tailwindcss";
@import "uniwind";
@import "@pilotoo/chat-ui/theme.css";
@source "../node_modules/@pilotoo/chat-ui/dist";

Native capabilities enter through ports the app supplies. The demo mobile app wraps its tree in src/app/_layout.tsx:

import { ClipboardProvider } from '@pilotoo/chat-ui';
import { setStringAsync } from 'expo-clipboard';
<ClipboardProvider setString={setStringAsync}>{children}</ClipboardProvider>

AttachmentPickerProvider and AttachmentImageProvider follow the same pattern.

Import Provides
@pilotoo/chat-ui The components (Message, MessageList, Composer, ToolCall, Markdown, CodeBlock, AgentPicker, …) and the ports (ClipboardProvider, AttachmentPickerProvider, AttachmentImageProvider).
@pilotoo/chat-ui/theme.css The design tokens. Also available as @pilotoo/chat-ui/styles/theme.css.
@pilotoo/chat-ui/package.json The manifest.
  • react >=19
  • react-native >=0.86
  • react-native-reanimated >=4
  • react-native-svg >=15
  • lucide-react-native ^1.34.0
  • uniwind ^1.11.0