Introduction
Aelio documentation. The open-source conversational runtime for your platform.
Aelio lets any platform offer an agentic interactive experience on your preferred chat interface, powered by your existing backend.
Overview
What Aelio is, why we built it, and who it's for
Installation
Set up the server, SDK, and chat widget
Pipeline YAML
Multi-stage onboarding with a YAML manifest
Platforms
SDK integration guides for every stack
Chat Widget
Deploy @aelio/chat on your website
Three products, one system
| Product | Package | Where it runs |
|---|---|---|
| Aelio SDK | @aelio/sdk / aelio-sdk | Your backend server |
| Chat Widget | @aelio/chat | Your website (browser) |
| Aelio Server | Docker (aelio/server) | Your infrastructure |
Supported platforms
| Platform | SDK status | Guide |
|---|---|---|
| Node.js / Express | Official (@aelio/sdk) | Node.js |
| Next.js | Official SDK + widget | Next.js |
| React (Vite, CRA) | Official SDK + widget | React |
| Python (FastAPI, Django) | Official (aelio-sdk) | Python |
| Go | Wire protocol (community) | Go |
| Ruby | Wire protocol (community) | Ruby |
| Rust | Wire protocol (community) | Rust |
Quick start
# 1. Start Aelio server
export AELIO_SDK_SECRET=change-me-in-production
pnpm --filter @aelio/server dev
# 2. Install SDK in your backend
npm install @aelio/sdk
# 3. Expose a function and connectimport { aelio } from '@aelio/sdk';
aelio.expose('getOrderStatus', async ({ orderId }, ctx) => {
return await db.orders.findOne({ id: orderId, userId: ctx.customerId });
}, { description: 'Get order status', params: { orderId: 'string' }, safety: 'read' });
await aelio.listen({ secret: process.env.AELIO_SDK_SECRET, url: 'ws://127.0.0.1:3010' });See the Installation guide for the full setup, or pick your platform guide.