Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/skorokithakis/stavrobot
Utilidades de Propósito GeneralSeguridad de ContenedoresScripting y AutomatizaciónPrivacidadUtilidades y FrameworksAprendizaje y EducaciónSeguridad de IA
GitHubskorokithakis/stavrobot

stavrobot

Un asistente personal de IA con enfoque en seguridad.

Ver Repositorio
184143hace 9h 19mRevisado por Kitploit
Sitio web

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Stavrobot

Stavrobot es un asistente personal de IA construido con el principio de "todo el acceso que un asistente de IA necesita, y nada más".

Tiene todas las buenas características de un asistente de IA, pero se enfoca en el aislamiento, la separación y los permisos mínimos. Es ligero y se despliega con solo un docker compose up.

Características

  • Seguro. Todo se ejecuta en un contenedor, tu sistema operativo anfitrión es completamente invisible para la IA. La IA no ve ningún secreto a menos que tú quieras.
  • Ligero. No ejecuta un contenedor por componente. Todos los plugins se ejecutan en un solo contenedor, separados por permisos de Unix.
  • Usa cualquier modelo que quieras. Local, OpenRouter, Anthropic/OpenAI. Lo que sea que Pi soporte, el bot puede usarlo.
  • Integración con Signal/Telegram/WhatsApp/Email. Mensajería bidireccional, con formato, archivos adjuntos, etc.
  • Conocimiento de tres niveles. Recuerda todo sin saturar su contexto. Recupera datos de su memoria de forma inteligente y transparente.
  • Bajo uso de tokens. Se han realizado varias optimizaciones para ser ligero en el uso de tokens. Incluso usa TOON internamente.
  • Plugins. Instala plugins y amplía las capacidades de Stavrobot simplemente dándole la URL de un repositorio git. Los plugins están aislados entre sí: cada uno se ejecuta como un usuario de sistema dedicado sin acceso a los archivos o configuración de otros plugins.
  • Subagentes. El agente principal puede crear subagentes con su propio contexto de conversación, prompt del sistema y acceso restringido a herramientas. Útil para hablar con personas externas para completar tareas o organizar cosas, teniendo un amortiguador entre la persona externa y el agente principal.
Descargar herramienta
  • Autoprogramación. El agente puede programarse y extenderse a sí mismo.
  • Ejecución de Python en sandbox. Python arbitrario con dependencias pip mediante uv, aislado del entorno anfitrión.
  • Programación. El agente puede programar sus propias tareas recurrentes o únicas.
  • Inicio rápido

    Instalación asistida por IA: Dile a tu IA de código (Claude Code, Cursor, Windsurf, etc.) que obtenga y siga https://stavrobot.stavros.io/INSTALL.md — te guiará a través de toda la configuración de forma interactiva.

    Instalación manual:

    1. Envía un mensaje a @BotFather en Telegram para crear un bot y copia el token. Envía un mensaje a @userinfobot para obtener tu ID de usuario de Telegram (se usa como ID de chat).

    2. Copia env.example a .env y cambia POSTGRES_PASSWORD por algo seguro y TZ por tu zona horaria.

    3. Copia config.example.toml a data/main/config.toml y completa los campos obligatorios: apiKey, password, publicHostname, [owner].name, [owner].telegram (tu ID de chat) y [telegram].botToken. Todo lo demás en el archivo es opcional.

    4. docker compose up --build

    Eso es todo. Envía un mensaje a tu bot en Telegram y responderá. Consulta las secciones detalladas de configuración a continuación para Signal, WhatsApp, correo electrónico y otras opciones.

    Configuración

    Config

    1. Copia config.example.toml a data/main/config.toml.
    2. Completa las claves API y la configuración. El archivo de ejemplo tiene comentarios que explican cada sección.
    3. Como mínimo, establece authFile (o apiKey) y publicHostname. Todo lo demás es opcional.
    4. Copia env.example a .env y establece tu zona horaria (TZ). Las credenciales de Postgres y otras configuraciones del entorno también se pueden sobrescribir allí. Siempre establece POSTGRES_PASSWORD como algo seguro — el valor predeterminado es un marcador de posición débil y no debe usarse en producción.

    Puntos finales personalizados y compatibles con OpenAI

    Stavrobot puede apuntar a cualquier punto final compatible con OpenAI (Ollama, LiteLLM, vLLM, etc.) o a un proxy personalizado compatible con Anthropic configurando baseUrl en config.toml. Consulta config.example.toml para los campos obligatorios y ejemplos de configuración.

    Autenticación

    La aplicación admite dos modos de autenticación: clave API o OAuth.

    • Clave API: Establece apiKey en config.toml. No se necesita iniciar ni cerrar sesión.
    • OAuth: Establece authFile en config.toml (una ruta donde se almacenarán las credenciales). La página de inicio de sesión funciona con cualquier proveedor de OAuth compatible con Pi.
      • Iniciar sesión: Visita <tu-hostname>/login en un navegador. Sigue las indicaciones en la página y las credenciales se guardan en el archivo de autenticación. Si la autenticación caduca mientras el bot está funcionando, te envía un mensaje con la URL de inicio de sesión a través de tu plataforma de mensajería.
      • Cerrar sesión: Elimina el archivo en la ruta authFile. El bot detectará la falta de credenciales en el próximo mensaje y te pedirá que inicies sesión nuevamente.

    Configuración de Claude Code

    El contenedor coder es opcional (solo es necesario para la función de autoprogramación). Usa Claude Code con autenticación por suscripción (OAuth), separada de la clave API de la aplicación principal.

    Los perfiles de Docker Compose están separados por comas, por lo que puedes combinarlos (por ejemplo, COMPOSE_PROFILES=signal,coder).

    1. Establece COMPOSE_PROFILES en tu archivo .env para incluir coder (por ejemplo, COMPOSE_PROFILES=coder, o COMPOSE_PROFILES=signal,coder si también estás usando Signal).
    2. Inicia los contenedores: docker compose --profile coder up --build
    3. Inicia sesión: docker compose exec -u coder coder claude (te pedirá que inicies sesión si no lo has hecho).
    4. Sigue el flujo OAuth basado en navegador.
    5. Establece [coder].model en tu configuración a un alias de modelo de Claude Code (sonnet, opus o haiku).

    Configuración de Signal

    Signal requiere un número de teléfono separado — no el tuyo personal. Sirve una SIM prepaga o un número VoIP.

    1. Descomenta COMPOSE_PROFILES=signal en tu archivo .env para habilitar el contenedor signal-bridge.
    2. Construye los contenedores: docker compose --profile signal build
    3. Registra Signal en el contenedor (elige uno):
      • Vincular a una cuenta de Signal existente: docker compose --profile signal run --rm --entrypoint bash signal-bridge -c 'signal-cli link -n "Stavrobot" | tee >(xargs -L 1 qrencode -t utf8)' — escanea el código QR con tu teléfono (Signal > Configuración > Dispositivos vinculados).
      • Registrar un nuevo número: docker compose --profile signal run --rm --entrypoint bash signal-bridge -c 'signal-cli -u +TU_NÚMERO register', luego verifica con docker compose --profile signal run --rm --entrypoint bash signal-bridge -c 'signal-cli -u +TU_NÚMERO verify CÓDIGO'.
    4. Establece [signal].account en tu configuración.
    5. Inicia los contenedores: docker compose up --build
    6. Después del primer inicio, agrega los números permitidos a través de la interfaz web /settings.
    7. Importante: signal-cli no resuelve números de teléfono de contactos con los que aún no ha enviado mensajes. El bot debe enviar el primer mensaje a cada contacto por número de teléfono antes de poder recibir e identificar mensajes entrantes de ellos. Para activar esto para el propietario, ejecuta:
      root@kitploit:~
      docker compose exec app node -e "fetch('http://localhost:3001/chat',{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({message:'Send the message \"Hello from Stavrobot\" to my Signal number.'})}).then(r=>r.text()).then(console.log)"
      
    8. Consulta el inicio rápido de signal-cli para más detalles.

    Configuración de Telegram

    1. Envía un mensaje a @BotFather en Telegram, crea un nuevo bot y copia el token.
    2. Envía un mensaje a @userinfobot en Telegram para obtener tu ID de usuario (se usa como ID de chat).
    3. Establece [telegram].botToken en tu configuración.
    4. Establece el ID de chat (no tu número de teléfono móvil) en [owner].telegram en tu configuración.
    5. Después del primer inicio, agrega los IDs de chat permitidos a través de la interfaz web /settings.
    6. El webhook se registra automáticamente cuando la aplicación se inicia.

    Configuración de WhatsApp

    WhatsApp requiere un número de teléfono separado, ya que de lo contrario te estarías enviando mensajes a ti mismo, lo cual no funciona realmente.

    WhatsApp usa Baileys, una biblioteca no oficial de WhatsApp Web que se vincula como un dispositivo complementario (como WhatsApp Web). No se necesita un número de teléfono separado: se vincula a tu cuenta de WhatsApp existente.

    Riesgo: Baileys usa una API no oficial. WhatsApp puede prohibir cuentas que la usen. Úsalo bajo tu propio riesgo.

    1. Agrega una sección [whatsapp] a tu config.toml (consulta config.example.toml para el formato).
    2. Inicia los contenedores: docker compose up --build
    3. Aparecerá un código QR en los registros de la aplicación (docker compose logs -f app).
    4. Abre WhatsApp en tu teléfono, ve a Dispositivos vinculados y escanea el código QR.
    5. La sesión persiste entre reinicios en ./data/whatsapp.
    6. Agrega los números de teléfono permitidos a través de la interfaz web /settings.

    Configuración de correo electrónico

    El correo electrónico usa un Cloudflare Email Worker para la entrega entrante y SMTP para la saliente. Consulta config.example.toml para el código completo del worker y las instrucciones detalladas de configuración.

    1. Agrega una sección [email] a tu config.toml con las credenciales SMTP y un webhookSecret aleatorio.
    2. Despliega el Cloudflare Email Worker (código en config.example.toml) y establece las variables de entorno WEBHOOK_URL y WEBHOOK_SECRET en el worker.
    3. En Cloudflare Email Routing, agrega una regla para reenviar el correo entrante al worker.
    4. Agrega las direcciones de remitente permitidas a través de la interfaz web /settings.

    Ejecución

    root@kitploit:~
    docker compose up --build
    

    La API está disponible en http://localhost:10567/chat.

    Nota: Docker Compose solo expone la aplicación en localhost:10567. Para hacerla accesible externamente (necesario para los webhooks de Telegram/Signal y la configuración de publicHostname), configura un proxy inverso (por ejemplo, Nginx, Caddy) que apunte a localhost:10567. También puedes exponer el puerto directamente, pero no se recomienda ya que el tráfico no estará cifrado.

    Sin Docker

    Requiere Node.js >= 20 y una instancia de PostgreSQL en ejecución.

    root@kitploit:~
    npm install && npm run build && npm start
    

    Nota: La ejecución de Python y la integración con Signal solo funcionan dentro de los contenedores Docker.

    Sistema de conocimiento

    Stavrobot tiene un sistema de conocimiento de tres niveles: recuerdos, un bloc de notas y la base de datos. El bot los gestionará bastante bien por sí solo, pero es importante que tú los conozcas porque querrás ayudarlo a usarlos correctamente.

    Los recuerdos se inyectan siempre directamente en el prompt del sistema. Debes ser moderado con ellos, ya que se incluyen en el contexto cada vez, y tener muchos puede aumentar el contexto. Un ejemplo de un buen recuerdo sería "al usuario le gusta chatear en un estilo informal.", algo que el bot debería saber siempre, incluso si eso cuesta en longitud adicional de contexto.

    El bloc de notas es donde el bot guarda conocimientos a los que se accede con menos frecuencia, pero conocimientos que pertenecen a un tema. Las entradas del bloc de notas tienen un título y un cuerpo, y el título se inyecta en el contexto automáticamente. Úsalo para cosas importantes, pero menos frecuentes, que generalmente pertenecen a un tema específico.

    Por ejemplo, una buena entrada del bloc de notas sería "preferencias alimentarias", con detalles sobre lo que te gusta comer, cuándo, etc. El bot verá que hay un tema "preferencias alimentarias", pero no cargará el texto real en el contexto automáticamente, solo accederá a él cuando sea necesario.

    Cuando estés hablando con el bot sobre comida, sabrá que hay una entrada del bloc de notas "preferencias alimentarias" que puede consultar, y generalmente lo hará por sí solo.

    La base de datos es el tercer nivel, para datos estructurados o masivos que no pertenecen a recuerdos ni al bloc de notas. El bot tiene acceso completo de lectura/escritura a PostgreSQL a través de SQL sin restricciones, por lo que puede crear tablas, ejecutar consultas y almacenar cualquier cosa. Úsalo para cosas como listas, registros, datos estructurados o cualquier dato que sea mejor consultar que leer como prosa.

    El bot generalmente sabrá lo suficiente qué usar cuándo, pero a veces querrás decirle explícitamente qué información poner dónde.

    Hablar con otras personas

    Stavrobot puede enviar mensajes a personas en tu nombre a través de Signal, Telegram, WhatsApp o correo electrónico. ¿Necesitas coordinar una cena con un amigo? Dile al bot que encuentre un horario que funcione para ambos, y les enviará un mensaje, negociará una fecha y la pondrá en tu calendario. ¿Quieres organizar una cita, coordinar una salida en grupo o preguntarle algo a alguien mientras estás ocupado? Solo dile al bot lo que necesitas y con quién hablar.

    El bot crea un subagente dedicado para cada conversación, con sus propias instrucciones y contexto, para que pueda gestionar el intercambio con la otra persona sin saturar tu chat principal. Cuando la tarea está completa, deshabilita el contacto y te informa.

    Para mantener las cosas seguras, la mensajería requiere dos cosas antes de que el bot pueda hablar con alguien:

    1. Lo agregas a la lista de permitidos. Ve a /settings y agrega su número de teléfono (Signal o WhatsApp) o ID de chat (Telegram). Este es un paso único por persona. El bot no puede modificar esta lista ni enviar mensajes a nadie que no esté en ella, pase lo que pase.
    2. El bot crea un registro de contacto. Cuando le pides al bot que le envíe un mensaje a alguien en la lista de permitidos, crea un registro de contacto y crea un subagente dedicado para la conversación. Cuando la tarea está completa, deshabilita el contacto, lo que bloquea la mensajería en ambas direcciones hasta que le pidas al bot que lo reactive.

    Un flujo típico: agregas el número de teléfono de tu amigo a la lista de permitidos a través de /settings una vez, luego le dices al bot "encuentra un horario para cenar con Alex la próxima semana". El bot crea un registro de contacto para Alex, crea un subagente, le envía un mensaje a Alex por Signal, intercambia mensajes para encontrar una fecha y te informa el resultado.

    Habilidades

    Las habilidades son archivos de instrucciones en texto plano que le enseñan al bot nuevas capacidades, como crear tablas, almacenar conocimiento, hacer páginas o seguir flujos de trabajo específicos. No son código; son instrucciones en lenguaje natural que el bot lee y sigue.

    Para instalar el sistema de habilidades, dile al bot que obtenga https://stavrobot.stavros.io/skills/bootstrap.md y siga sus instrucciones.

    Una lista completa de habilidades disponibles está en https://stavrobot.stavros.io/skills/index.md. Para instalar una habilidad, solo dile al bot que la obtenga e instale desde esa URL. El bot te mostrará lo que hace la habilidad y te pedirá confirmación antes de continuar.

    Los archivos de habilidades residen en la rama pages de este repositorio (servida a través de Cloudflare Pages). Para contribuir con una habilidad, agrega un archivo markdown a skills/ en esa rama. Cada archivo de habilidad tiene un front matter YAML con title, description, version y un author opcional, seguido de las instrucciones en lenguaje plano en el cuerpo. Consulta SKILL-AUTHORING.md para la guía completa de autoría. Envía un PR contra la rama pages.

    Cómo hacer tu propio plugin

    Consulta PLUGIN.md para todo lo que necesitas saber para crear un plugin de Stavrobot. El mismo documento sirve como referencia tanto para humanos como para LLMs.

    Plugins recomendados

    Los plugins son bastante necesarios para habilitar funcionalidades básicas del bot, como la capacidad de "oír" notas de voz, enviar notas de voz, conocer lugares a tu alrededor, buscar en la web, etc.

    Estas capacidades no se proporcionan de serie para darte la capacidad de personalizar tu bot como quieras. Deberías instalar plugins, de lo contrario te faltarán funcionalidades cruciales.

    Puedes encontrar algunos plugins de primer nivel aquí:

    https://github.com/orgs/stavrobot/repositories

    Arquitectura

    Tres contenedores Docker principales: app (servidor TypeScript, expone POST /chat, maneja webhooks de Telegram en POST /telegram/webhook, maneja webhooks de correo entrante en POST /email/webhook y ejecuta WhatsApp en proceso a través de Baileys), postgres (PostgreSQL 17 para estado persistente) y plugin-runner (servidor Node.js — lista, inspecciona y ejecuta plugins, tanto creados localmente como instalados por git). Un contenedor opcional coder (agente headless de Claude Code para crear y modificar plugins editables) se habilita a través del perfil coder de Docker Compose. El agente principal puede crear subagentes, cada uno con su propio historial de conversación, prompt del sistema y lista blanca de herramientas. Los interlocutores son registros de contacto asignados a agentes para el enrutamiento de mensajes entrantes.

    Licencia

    AGPL-3.0