Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
stavrobot — Un assistant personnel IA axé sur la sécurité. | Kitploit
Outils/GitHubGitHub/skorokithakis/stavrobot
Utilitaires GénérauxSécurité des ConteneursScripting et AutomatisationProtection de la Vie PrivéeUtilitaires et FrameworksApprentissage et ÉducationSécurité de l'IA
GitHubskorokithakis/stavrobot

stavrobot

Un assistant personnel IA axé sur la sécurité.

Voir le dépôt
184143il y a 9h 19mVérifié par Kitploit
Site web

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Stavrobot

Stavrobot est un assistant IA personnel construit avec le principe de « tout l'accès dont un assistant IA a besoin, et rien de plus ».

Il possède toutes les fonctionnalités agréables d'un assistant IA, mais se concentre sur le sandboxing, l'isolation et les permissions minimales. Il est léger et se déploie avec seulement un docker compose up.

Fonctionnalités

  • Sécurisé. Tout s'exécute dans un conteneur, votre OS hôte est complètement invisible pour l'IA. L'IA ne voit aucun secret sauf si vous le souhaitez.
  • Léger. N'exécute pas un conteneur par composant. Tous les plugins s'exécutent dans un seul conteneur, séparés par les permissions Unix.
  • Utilisez n'importe quel modèle que vous voulez. Local, OpenRouter, Anthropic/OpenAI. Tout ce que Pi supporte, le bot peut l'utiliser.
  • Intégration Signal/Telegram/WhatsApp/Email. Messagerie bidirectionnelle, avec formatage, pièces jointes, etc.
  • Connaissances à trois niveaux. Se souvient de tout sans exploser son contexte. Récupère intelligemment et de manière transparente les données de sa mémoire.
  • Faible utilisation de tokens. Diverses optimisations ont été faites pour être léger en utilisation de tokens. Il utilise même TOON en interne.
  • Plugins. Installez des plugins et étendez les capacités de Stavrobot en lui donnant simplement une URL de dépôt git. Les plugins sont isolés les uns des autres — chacun s'exécute en tant qu'utilisateur système dédié sans accès aux fichiers ou à la configuration des autres plugins.
  • Sous-agents. L'agent principal peut créer des sous-agents avec leur propre contexte de conversation, invite système et accès restreint aux outils. Utile pour parler à des personnes extérieures pour accomplir des tâches ou organiser des choses, tout en ayant un tampon entre la personne extérieure et l'agent principal.
Télécharger l’outil
  • Auto-programmation. L'agent peut se programmer et s'étendre lui-même.
  • Exécution Python en sandbox. Python arbitraire avec dépendances pip via uv, isolé de l'environnement hôte.
  • Planification. L'agent peut planifier ses propres tâches récurrentes ou ponctuelles.
  • Démarrage rapide

    Installation assistée par IA : Dites à votre IA de codage (Claude Code, Cursor, Windsurf, etc.) de récupérer et de suivre https://stavrobot.stavros.io/INSTALL.md — elle vous guidera tout au long de la configuration de manière interactive.

    Installation manuelle :

    1. Envoyez un message à @BotFather sur Telegram pour créer un bot et copier le token. Envoyez un message à @userinfobot pour obtenir votre ID utilisateur Telegram (cet ID est utilisé comme chat ID).

    2. Copiez env.example vers .env et changez POSTGRES_PASSWORD en quelque chose de sécurisé et TZ pour votre fuseau horaire.

    3. Copiez config.example.toml vers data/main/config.toml et remplissez les champs obligatoires : apiKey, password, publicHostname, [owner].name, [owner].telegram (votre chat ID), et [telegram].botToken. Tout le reste dans le fichier est facultatif.

    4. docker compose up --build

    C'est tout. Envoyez un message à votre bot sur Telegram et il répondra. Voir les sections de configuration détaillées ci-dessous pour Signal, WhatsApp, email et autres options.

    Configuration

    Configuration

    1. Copiez config.example.toml vers data/main/config.toml.
    2. Remplissez les clés API et les paramètres. Le fichier d'exemple contient des commentaires expliquant chaque section.
    3. Au minimum, définissez authFile (ou apiKey) et publicHostname. Tout le reste est facultatif.
    4. Copiez env.example vers .env et définissez votre fuseau horaire (TZ). Les identifiants PostgreSQL et autres paramètres d'environnement peuvent également être remplacés ici. Définissez toujours POSTGRES_PASSWORD sur quelque chose de sécurisé — la valeur par défaut est un espace réservé faible et ne doit pas être utilisée en production.

    Points de terminaison personnalisés et compatibles OpenAI

    Stavrobot peut être pointé vers n'importe quel point de terminaison compatible OpenAI (Ollama, LiteLLM, vLLM, etc.) ou un proxy compatible Anthropic personnalisé en définissant baseUrl dans config.toml. Voir config.example.toml pour les champs obligatoires et les exemples de configuration.

    Authentification

    L'application supporte deux modes d'authentification : clé API ou OAuth.

    • Clé API : Définissez apiKey dans config.toml. Pas besoin de connexion ou déconnexion.
    • OAuth : Définissez authFile dans config.toml (un chemin où les identifiants seront stockés). La page de connexion fonctionne avec n'importe quel fournisseur OAuth supporté par Pi.
      • Connexion : Visitez <votre-hôte>/login dans un navigateur. Suivez les instructions sur la page, et les identifiants sont sauvegardés dans le fichier d'authentification. Si l'authentification expire pendant que le bot est en cours d'exécution, il vous envoie un message avec l'URL de connexion via votre plateforme de messagerie.
      • Déconnexion : Supprimez le fichier au chemin authFile. Le bot détectera l'absence d'identifiants au prochain message et vous invitera à vous connecter à nouveau.

    Configuration de Claude Code

    Le conteneur coder est optionnel (nécessaire uniquement pour la fonction d'auto-programmation). Il utilise Claude Code avec une authentification par abonnement (OAuth), séparée de la clé API de l'application principale.

    Les profils Docker Compose sont séparés par des virgules, vous pouvez donc les combiner (par ex. COMPOSE_PROFILES=signal,coder).

    1. Définissez COMPOSE_PROFILES dans votre fichier .env pour inclure coder (par ex. COMPOSE_PROFILES=coder, ou COMPOSE_PROFILES=signal,coder si vous utilisez également Signal).
    2. Démarrez les conteneurs : docker compose --profile coder up --build
    3. Connectez-vous : docker compose exec -u coder coder claude (il vous demandera de vous connecter si ce n'est pas déjà fait).
    4. Suivez le flux OAuth basé sur le navigateur.
    5. Définissez [coder].model dans votre config sur un alias de modèle Claude Code (sonnet, opus, ou haiku).

    Configuration de Signal

    Signal nécessite un numéro de téléphone séparé — pas votre numéro personnel. Une carte SIM prépayée ou un numéro VoIP fonctionne.

    1. Décommentez COMPOSE_PROFILES=signal dans votre fichier .env pour activer le conteneur signal-bridge.
    2. Construisez les conteneurs : docker compose --profile signal build
    3. Enregistrez Signal sur le conteneur (choisissez une option) :
      • Lier à un compte Signal existant : docker compose --profile signal run --rm --entrypoint bash signal-bridge -c 'signal-cli link -n "Stavrobot" | tee >(xargs -L 1 qrencode -t utf8)' — scannez le code QR avec votre téléphone (Signal > Paramètres > Appareils liés).
      • Enregistrer un nouveau numéro : docker compose --profile signal run --rm --entrypoint bash signal-bridge -c 'signal-cli -u +VOTRE_NUMERO register', puis vérifiez avec docker compose --profile signal run --rm --entrypoint bash signal-bridge -c 'signal-cli -u +VOTRE_NUMERO verify CODE'.
    4. Définissez [signal].account dans votre config.
    5. Démarrez les conteneurs : docker compose up --build
    6. Après le premier démarrage, ajoutez les numéros autorisés via l'interface web /settings.
    7. Important : signal-cli ne résout pas les numéros de téléphone pour les contacts auxquels il n'a pas encore envoyé de message. Le bot doit envoyer le premier message à chaque contact par numéro de téléphone avant de pouvoir recevoir et identifier les messages entrants de leur part. Pour déclencher ceci pour le propriétaire, exécutez :
      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. Voir le guide de démarrage rapide de signal-cli pour plus de détails.

    Configuration de Telegram

    1. Envoyez un message à @BotFather sur Telegram, créez un nouveau bot et copiez le token.
    2. Envoyez un message à @userinfobot sur Telegram pour obtenir votre ID utilisateur (cet ID est utilisé comme chat ID).
    3. Définissez [telegram].botToken dans votre config.
    4. Définissez le chat ID (pas votre numéro de téléphone mobile) dans [owner].telegram dans votre config.
    5. Après le premier démarrage, ajoutez les chat IDs autorisés via l'interface web /settings.
    6. Le webhook est enregistré automatiquement au démarrage de l'application.

    Configuration de WhatsApp

    WhatsApp nécessite un numéro de téléphone séparé, car sinon vous vous enverriez des messages à vous-même, ce qui ne fonctionne pas vraiment.

    WhatsApp utilise Baileys, une bibliothèque WhatsApp Web non officielle qui se lie en tant qu'appareil compagnon (comme WhatsApp Web). Aucun numéro de téléphone séparé n'est nécessaire — il se lie à votre compte WhatsApp existant.

    Risque : Baileys utilise une API non officielle. WhatsApp peut bannir les comptes qui l'utilisent. Utilisez à vos propres risques.

    1. Ajoutez une section [whatsapp] à votre config.toml (voir config.example.toml pour le format).
    2. Démarrez les conteneurs : docker compose up --build
    3. Un code QR apparaîtra dans les logs de l'application (docker compose logs -f app).
    4. Ouvrez WhatsApp sur votre téléphone, allez dans Appareils liés, et scannez le code QR.
    5. La session persiste entre les redémarrages dans ./data/whatsapp.
    6. Ajoutez les numéros de téléphone autorisés via l'interface web /settings.

    Configuration de l'email

    L'email utilise un Worker Cloudflare Email pour la livraison entrante et SMTP pour la sortie. Voir config.example.toml pour le code complet du worker et les instructions détaillées de configuration.

    1. Ajoutez une section [email] à votre config.toml avec les identifiants SMTP et un webhookSecret aléatoire.
    2. Déployez le Worker Cloudflare Email (code dans config.example.toml) et définissez les variables d'environnement WEBHOOK_URL et WEBHOOK_SECRET sur le worker.
    3. Dans Cloudflare Email Routing, ajoutez une règle pour transférer les emails entrants vers le worker.
    4. Ajoutez les adresses d'expéditeurs autorisés via l'interface web /settings.

    Exécution

    root@kitploit:~
    docker compose up --build
    

    L'API est disponible à http://localhost:10567/chat.

    Remarque : Docker Compose expose l'application uniquement sur localhost:10567. Pour la rendre accessible de l'extérieur (nécessaire pour les webhooks Telegram/Signal et le paramètre publicHostname), mettez en place un proxy inverse (par ex. Nginx, Caddy) pointant vers localhost:10567. Vous pouvez également exposer le port directement, mais cela n'est pas recommandé car le trafic ne sera pas chiffré.

    Sans Docker

    Nécessite Node.js >= 20 et une instance PostgreSQL en cours d'exécution.

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

    Remarque : L'exécution Python et l'intégration Signal fonctionnent uniquement à l'intérieur des conteneurs Docker.

    Système de connaissances

    Stavrobot dispose d'un système de connaissances à trois niveaux : les souvenirs, un bloc-notes et la base de données. Il les gérera assez bien tout seul, mais il est important que vous les connaissiez car vous voudrez aider le bot à les utiliser correctement.

    Les souvenirs sont toujours injectés en bloc dans l'invite système. Vous devez être économe avec eux, car ils sont inclus dans le contexte à chaque fois, et en avoir beaucoup peut augmenter le contexte. Un exemple de bon souvenir serait « l'utilisateur préfère discuter dans un style informel. », quelque chose que le bot doit savoir à chaque fois, même si cela coûte en longueur de contexte supplémentaire.

    Le bloc-notes est l'endroit où le bot garde les connaissances moins fréquemment consultées, mais qui concernent un sujet. Les entrées du bloc-notes ont un titre et un corps, et le titre est injecté automatiquement dans le contexte. Utilisez-le pour des choses importantes, mais moins souvent nécessaires, des choses qui se rapportent généralement à un sujet spécifique.

    Par exemple, une bonne entrée de bloc-notes serait « préférences alimentaires », avec des détails sur ce que vous aimez manger, quand, etc. Le bot verra qu'il y a un sujet « préférences alimentaires », mais ne chargera pas le texte lui-même dans le contexte automatiquement, n'y accédant qu'à la demande.

    Lorsque vous parlez au bot de nourriture, il saura qu'il y a une entrée de bloc-notes « préférences alimentaires » qu'il peut consulter, et le fera généralement tout seul.

    La base de données est le troisième niveau, pour les données structurées ou en vrac qui n'ont pas leur place dans les souvenirs ou le bloc-notes. Le bot a un accès complet en lecture/écriture à PostgreSQL via SQL sans restriction, il peut donc créer des tables, exécuter des requêtes et stocker n'importe quoi. Utilisez-la pour des listes, des journaux, des enregistrements structurés, ou toute donnée qu'il est préférable de requêter que de lire en prose.

    Le bot saura généralement assez bien quoi utiliser quand, mais parfois vous voudrez lui dire explicitement quelles informations mettre où.

    Parler à d'autres personnes

    Stavrobot peut envoyer des messages à des personnes en votre nom via Signal, Telegram, WhatsApp ou email. Besoin de planifier un dîner avec un ami ? Dites au bot de trouver un créneau qui convienne à vous deux, et il lui enverra un message, négociera une date et la mettra sur votre calendrier. Vous voulez organiser un rendez-vous, coordonner une sortie en groupe ou poser une question à quelqu'un pendant que vous êtes occupé ? Dites simplement au bot ce dont vous avez besoin et à qui parler.

    Le bot lance un sous-agent dédié pour chaque conversation, avec ses propres instructions et contexte, afin de gérer les échanges avec l'autre personne sans encombrer votre chat principal. Lorsque la tâche est terminée, il désactive le contact et vous fait un rapport.

    Pour garantir la sécurité, la messagerie nécessite deux choses avant que le bot puisse parler à quelqu'un :

    1. Vous l'ajoutez à la liste blanche. Allez dans /settings et ajoutez son numéro de téléphone (Signal ou WhatsApp) ou son chat ID (Telegram). C'est une étape unique par personne. Le bot ne peut pas modifier cette liste ni envoyer de message à quiconque n'y figure pas, quoi qu'il arrive.
    2. Le bot crée un enregistrement de contact. Lorsque vous demandez au bot d'envoyer un message à une personne de la liste blanche, il crée un enregistrement de contact et lance un sous-agent dédié pour la conversation. Lorsque la tâche est terminée, il désactive le contact, ce qui bloque la messagerie dans les deux sens jusqu'à ce que vous demandiez au bot de le réactiver.

    Un flux typique : vous ajoutez le numéro de téléphone de votre ami à la liste blanche via /settings une fois, puis dites au bot « trouve un créneau pour dîner avec Alex la semaine prochaine ». Le bot crée un enregistrement de contact pour Alex, lance un sous-agent, envoie un message à Alex sur Signal, fait des allers-retours pour trouver une date, et vous rapporte le résultat.

    Compétences

    Les compétences sont des fichiers d'instructions en texte brut qui enseignent au bot de nouvelles capacités — des choses comme créer des tables, stocker des connaissances, créer des pages, ou suivre des flux de travail spécifiques. Ce ne sont pas du code ; ce sont des instructions en langage naturel que le bot lit et suit.

    Pour installer le système de compétences, dites au bot de récupérer https://stavrobot.stavros.io/skills/bootstrap.md et de suivre ses instructions.

    Une liste complète des compétences disponibles se trouve à https://stavrobot.stavros.io/skills/index.md. Pour installer une compétence, dites simplement au bot de la récupérer et de l'installer à partir de cette URL. Le bot vous montrera ce que fait la compétence et demandera confirmation avant de procéder.

    Les fichiers de compétences se trouvent sur la branche pages de ce dépôt (servie via Cloudflare Pages). Pour contribuer une compétence, ajoutez un fichier Markdown dans skills/ sur cette branche. Chaque fichier de compétence comporte un en-tête YAML avec title, description, version, et un author optionnel, suivi des instructions en langage clair dans le corps. Voir SKILL-AUTHORING.md pour le guide complet de création. Soumettez une PR sur la branche pages.

    Comment créer votre propre plugin

    Voir PLUGIN.md pour tout ce que vous devez savoir pour créer un plugin Stavrobot. Ce même document sert de référence pour les humains et les LLM.

    Plugins recommandés

    Les plugins sont assez nécessaires pour activer les fonctionnalités de base du bot, comme la capacité d'« entendre » des notes vocales, d'envoyer des notes vocales, de connaître les lieux autour de vous, de rechercher sur le web, etc.

    Ces capacités ne sont pas fournies d'emblée pour vous donner la possibilité de personnaliser votre bot comme vous le souhaitez. Vous devriez installer des plugins, sinon il vous manquera des fonctionnalités cruciales.

    Vous pouvez trouver quelques plugins officiels ici :

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

    Architecture

    Trois conteneurs Docker principaux : app (serveur TypeScript, expose POST /chat, gère les webhooks Telegram sur POST /telegram/webhook, gère les webhooks d'email entrants sur POST /email/webhook, et exécute WhatsApp en processus via Baileys), postgres (PostgreSQL 17 pour l'état persistant), et plugin-runner (serveur Node.js — liste, inspecte et exécute les plugins, qu'ils soient créés localement ou installés via git). Un conteneur optionnel coder (agent headless Claude Code pour créer et modifier des plugins modifiables) est activé via le profil Docker Compose coder. L'agent principal peut créer des sous-agents, chacun avec son propre historique de conversation, invite système et liste blanche d'outils. Les interlocuteurs sont des enregistrements de contact assignés aux agents pour le routage des messages entrants.

    Licence

    AGPL-3.0