> ## Documentation Index
> Fetch the complete documentation index at: https://botmesh.afaya.com.co/llms.txt
> Use this file to discover all available pages before exploring further.

# botmesh

> Un framework en TypeScript para bots de mensajería. Escribe handlers y flujos de conversación una vez, ejecútalos en WhatsApp (Baileys o la Cloud API oficial) y Telegram, y pruébalos en tu terminal sin teléfono.

## Un bot, todos los canales de chat

> **[Empezar](https://botmesh.afaya.com.co/es/guide/getting-started.md)**

> **[Tu primer bot](https://botmesh.afaya.com.co/es/guide/first-bot.md)**

> **[Referencia de la API](https://botmesh.afaya.com.co/api/core.md)**

> **[Agnóstico de transporte](https://botmesh.afaya.com.co/es/guide/channels.md)**
>
> Un motor, muchos providers: @botmesh/baileys (WhatsApp Web), @botmesh/meta (Cloud API oficial de WhatsApp), @botmesh/telegram, @botmesh/messenger, @botmesh/instagram, Discord, Twilio, email y más. Cambiar de canal es cambiar una línea.

> **[Flujos de conversación](https://botmesh.afaya.com.co/es/guide/flows.md)**
>
> flow('registro').ask().choose().say() compila a una conversación async real con validación, reintentos, ramas y timeouts. Los flujos persistentes sobreviven a un reinicio.

> **[Pruébalo sin teléfono](https://botmesh.afaya.com.co/es/guide/dev-simulator.md)**
>
> npx botmesh dev bot.js chatea con tu bot en la terminal, con recarga en caliente y sin cuenta, número ni riesgo de baneo.

> **[Fácil de probar](https://botmesh.afaya.com.co/es/guide/testing.md)**
>
> createTestBot y MockProvider ejecutan tus flujos en tests unitarios sin red. Las transcripciones golden detectan regresiones en conversaciones completas.

> **[IA cuando la necesitas](https://botmesh.afaya.com.co/es/guide/ai.md)**
>
> @botmesh/ai responde con Anthropic, OpenAI, Gemini, Ollama o modelos compatibles con OpenAI, llama a tus herramientas con confirmación y recuerda a cada usuario.

> **[Hooks y plugins](https://botmesh.afaya.com.co/es/guide/plugins.md)**
>
> Middleware before / after / onError en cada mensaje y envío, y plugins reutilizables como los comandos slash integrados.

> **[Stores intercambiables](https://botmesh.afaya.com.co/es/guide/store.md)**
>
> MemoryStore por defecto; stores de SQLite, Redis, PostgreSQL, MySQL y MongoDB para persistir, o tu propio IStore.

> **[Listo para producción](https://botmesh.afaya.com.co/es/guide/deploy.md)**
>
> Dedupe de entrada activo por defecto y un rate limiter anti-baneo en Baileys; procesamiento durable, varias réplicas, scheduler durable y trazas OpenTelemetry opcionales.

> **Tipado de punta a punta**
>
> Paquetes ESM escritos en TypeScript: autocompletado y comprobación de tipos en cada handler, estado de flujo y plugin. También funciona con JavaScript.

## Un bot en pocas líneas

```js theme={null}
import { Bot, flow } from '@botmesh/core'
import { BaileysProvider } from '@botmesh/baileys'

const bot = new Bot({ provider: new BaileysProvider({ session: 'my-bot' }), lang: 'es' })

bot.when('hola', (ctx) => ctx.reply('👋 ¡Hola!'))

bot.use(
  flow('registro')
    .ask('¿Cómo te llamas?', 'name')
    .say((_ctx, c) => `¡Encantado, ${c.state.name}!`),
)

await bot.start() // escanea el QR en WhatsApp → Dispositivos vinculados
```

Cambia `BaileysProvider` por `TelegramProvider` o `CloudAPIProvider` y el resto
del código sigue igual.

## Empieza en cinco minutos

```bash theme={null}
npm create botmesh my-bot
cd my-bot && npm install
npm run dev        # chatea con él en la terminal
npm start          # conecta WhatsApp o Telegram
```

botmesh está en beta: una instalación sin tag instala la beta, y `@beta` resuelve siempre a la más reciente (`latest` se mueve a mano tras cada publicación).
[Inicio rápido](https://botmesh.afaya.com.co/es/guide/getting-started.md) explica cada paso,
incluido montar el proyecto a mano.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.