Agents

An AI chat UI kit, with the server behind it.

Put an agent behind a conversation in your own product. The kit ships the server that runs it and the chat for web, mobile and desktop. You keep your login, your API and your data.

    Synthetic demo

    Three files and you have a copilot.

    A server with one of your tools, an agent that may use it, and a chat that signs in with your app’s session.

    src/app.module.ts

    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 {}

    .pilotoo/agents/support.yaml

    id: support
    name: Support
    description: Answers questions about orders.
    status: active
    runtime:
      systemPrompt: You help customers with their orders.
      profileId: default
      tools: [search_orders]
      builtinTools: []
      skills: []
      knowledge: []
    presentation: {}

    Assistant.tsx

    import { ChatPanel, ChatProvider } from '@pilotoo/ui/chat';
    
    export function Assistant() {
      return (
        <ChatProvider baseUrl={import.meta.env.VITE_API_URL} getToken={() => session.accessToken}>
          <ChatPanel />
        </ChatProvider>
      );
    }

    Take the parts you need.

    A mobile app needs only client packages. A desktop app adds a backend on the user’s machine.

    What a conversation can do.

    Give the agent the other blocks.

    Turn on a block to see what the agent gets from it.

    WebDesktopMobileYour systems · HTTPAny MCP client

    A running chat in your app is a quickstart away.