Ve la página
Lee el DOM, los formularios y lo que el visitante tiene delante. Sin integraciones a medida.
Añade un agente a tu web con una etiqueta HTML. Ve la página, habla con voz y actúa por tu visitante: rellena formularios, navega y avisa a tu equipo cuando hace falta una persona.
$ npm i 7ots
Producto
Todo lo que necesita un buen asistente, en un Web Component que se instala en minutos.
Lee el DOM, los formularios y lo que el visitante tiene delante. Sin integraciones a medida.
Un cursor virtual navega, hace clic, rellena y resalta. Las acciones sensibles piden confirmación.
Detecta dudas, abandonos y errores y ofrece ayuda en el momento justo, con límites que tú fijas.
Usa la voz del navegador o tu cuenta de apuchat, ElevenLabs, Grok o Fish Audio. No alojamos audio: se integra. La boca sigue a la voz.
Personaje 2D editable o avatar 3D realista, diseñado en minutos.
Se integra con tus cuentas de apuchat y apumail: avisa con todo el contexto. Nadie repite nada.
Proxy Node self-hosted: las claves nunca llegan al navegador. MIT y sin lock-in.
Español, inglés y portugués de serie. Responde en el idioma de quien escribe.
Cómo funciona
Una etiqueta script o npm. Arranca el proxy con tu clave de Claude u OpenAI.
Nombre, cara, voz, tono y límites desde el backoffice, sin tocar código.
Tu agente saluda, guía y resuelve. Tú ves qué pregunta la gente.
Desarrolladores
Estándares web, JSON Schema y cero magia. Si sabes escribir un formulario, sabes darle herramientas.
<!-- 1 · el agente, con la configuración del backoffice -->
<script src="https://tu-web.com/api/agent/embed.js" defer></script>
<!-- 2 · un formulario existente se vuelve herramienta -->
<form data-ots-tool="reservar_demo"
data-ots-description="Reserva una demo"
data-ots-confirm="¿Reservar para {email}?">
<input name="email" type="email" required>
</form>
import { init } from '7ots';
const agent = init({ endpoint: '/api/agent', locale: 'es' });
agent.registerAction({
name: 'add_to_cart',
description: 'Adds a product to the cart',
parameters: { type: 'object', properties: { sku: { type: 'string' } } },
confirm: ({ sku }) => `Add ${sku}?`,
handler: ({ sku }, ctx) => ctx.auth.fetch('/api/cart', { method: 'POST', body: sku }),
});
agent.on('action:end', ({ name }) => analytics.track(name));
# proxy self-hosted: las claves se quedan aquí
npm i 7ots
LLM_PROVIDER=anthropic ANTHROPIC_API_KEY=… npx 7ots-server
# → http://localhost:8787/backoffice/ configúralo todo
# → /api/agent/embed.js pégalo en tu web
Identidad
Diseña a tu agente como un personaje: forma, ojos, boca, accesorios, colores y acabado. Pruébalo aquí mismo.
Por qué 7ots
| 7ots | Chatbot SaaS típico | |
|---|---|---|
| Código abierto (MIT) | Sí | No |
| En tu propio servidor | Sí | No |
| Actúa sobre la página | Sí | A veces |
| Cara y voz propias | Sí | A veces |
| Elige tu modelo de IA | Sí | No |
| Pago por asiento | Gratis | Habitual |
Preguntas
Nada: 7ots es MIT. Solo pagas al proveedor de IA que elijas, o nada si usas un modelo local compatible con OpenAI.
En tu proxy. El navegador habla con tu servidor, y tu servidor con el modelo. Las claves nunca se envían al visitante.
Claude y OpenAI de serie, y cualquier API compatible con OpenAI (Groq, Ollama…) cambiando la URL base.
Solo usa las acciones que actives. Las sensibles muestran un diálogo de confirmación y todo lo que hace se ve con el cursor virtual.
Nunca envía contraseñas, datos de tarjeta ni lo que marques con data-ots-private. Tú controlas el servidor y los registros.
No. El personaje 2D es SVG y pesa poco. El avatar 3D es opcional y, si falla, vuelve al 2D.
No. 7ots solo se integra: avisa a tu equipo con tus cuentas de apuchat y apumail, y la voz sale del navegador o de tu cuenta de apuchat, ElevenLabs, Grok o Fish Audio. Nosotros no alojamos mensajes ni audio.