Web
Drop the chat panel into a React app, or mount it on any page with one call.
@pilotoo/ui@pilotoo/chat-core
Pilotoo is a kit for putting an agent behind a conversation in your own app. It ships the agent runtime, the wire protocol, a NestJS server and the chat UI. You keep your login, your API and your data.
NestJS · React · React Native · Tauri · LangGraph
import { Module } from '@nestjs/common';
import { PilotooModule } from '@pilotoo/server';
import { searchOrders } from './tools/search-orders';
@Module({
imports: [
PilotooModule.forRoot({
env: process.env,
tools: (registry) => {
registry.register(searchOrders);
},
}),
],
})
export class AppModule {}id: support
name: Support
description: Answers questions about orders.
profileId: default
runtime:
systemPrompt: >
You help customers with their orders.
tools:
- search_ordersimport { ChatPanel, ChatProvider } from '@pilotoo/ui/chat';
import { session } from './session';
export function Assistant() {
return (
<ChatProvider
baseUrl={import.meta.env.VITE_API_URL}
getToken={() => session.accessToken}
>
<ChatPanel />
</ChatProvider>
);
}A server with one tool, an agent that may use it, and a chat that signs in with your app’s session.
The kit runs the conversation end to end. Everything that belongs to your product plugs in through a port, so you upgrade the kit without merging it.
Your login stays yours. The server asks your own endpoint who the caller is.
identityResolver: createHttpIdentityResolver({ url, map })Agents act through tools you register as code, calling your API as the user.
tools: (registry) => registry.register(searchOrders)PostgreSQL by default, SQLite on the desktop, or your own stores behind the same ports.
conversationStore, runEventStorage, checkpointerAgents name a profile; profiles name a provider and a key you keep in your environment.
profileId: defaultThe same server and protocol behind a web app, a desktop app and a mobile app.
Drop the chat panel into a React app, or mount it on any page with one call.
@pilotoo/ui@pilotoo/chat-coreShip the agent with your Tauri app. The backend runs on the user’s machine, on SQLite.
@pilotoo/local-server@pilotoo/uiReact Native components for Expo, talking to the same server as your web app.
@pilotoo/chat-ui@pilotoo/chat-coreEvery example is a complete recipe taken from the kit’s demo apps and from a production SaaS integration.