Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
stavrobot — Un assistente personale AI incentrato sulla sicurezza. | Kitploit
Strumenti/GitHubGitHub/skorokithakis/stavrobot
Utilità GenericheSicurezza dei ContenitoriScripting e AutomazionePrivacyUtilità e FrameworkApprendimento e FormazioneSicurezza dell'IA
GitHubskorokithakis/stavrobot

stavrobot

Un assistente personale AI incentrato sulla sicurezza.

Vedi Repository
1841439h 19m faRevisionato da Kitploit
Sito web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Stavrobot

Stavrobot è un assistente AI personale costruito con il principio di "tutto l'accesso di cui un assistente AI ha bisogno, e niente di più".

Ha tutte le belle funzionalità di un assistente AI, ma si concentra su sandboxing, isolamento e permessi minimi. È leggero e si distribuisce con un semplice docker compose up.

Caratteristiche

  • Sicuro. Tutto viene eseguito in un container, il sistema operativo host è completamente invisibile all'AI. L'AI non vede alcun segreto a meno che tu non voglia.
  • Leggero. Non esegue un container per componente. I plugin vengono eseguiti tutti in un singolo container, separati da permessi Unix.
  • Usa qualsiasi modello desideri. Locale, OpenRouter, Anthropic/OpenAI. Qualunque cosa Pi supporti, il bot può usarla.
  • Integrazione con Signal/Telegram/WhatsApp/Email. Messaggistica bidirezionale, con formattazione, allegati, ecc.
  • Conoscenza a tre livelli. Ricorda tutto senza esplodere il contesto. Recupera i dati dalla sua memoria in modo intelligente e trasparente.
  • Basso utilizzo di token. Sono state fatte varie ottimizzazioni per essere leggero sull'uso dei token. Usa persino TOON internamente.
  • Plugin. Installa plugin ed estendi le capacità di Stavrobot semplicemente fornendo un URL di repository git. I plugin sono isolati tra loro — ciascuno viene eseguito come utente di sistema dedicato senza accesso ai file o alla configurazione di altri plugin.
  • Subagenti. L'agente principale può creare subagenti con il proprio contesto di conversazione, prompt di sistema e accesso limitato agli strumenti. Utile per parlare con persone esterne per completare attività o organizzare cose, pur avendo un buffer tra la persona esterna e l'agente principale.
Scarica lo strumento
  • Autoprogrammazione. L'agente può programmare ed estendere se stesso.
  • Esecuzione Python in sandbox. Python arbitrario con dipendenze pip tramite uv, isolato dall'ambiente host.
  • Pianificazione. L'agente può pianificare propri compiti ricorrenti o una tantum.
  • Avvio rapido

    Installazione assistita dall'AI: Dì al tuo coding AI (Claude Code, Cursor, Windsurf, ecc.) di recuperare e seguire https://stavrobot.stavros.io/INSTALL.md — ti guiderà attraverso l'intera configurazione in modo interattivo.

    Installazione manuale:

    1. Invia un messaggio a @BotFather su Telegram per creare un bot e copia il token. Invia un messaggio a @userinfobot per ottenere il tuo ID utente Telegram (questo viene usato come chat ID).
    2. Copia env.example in .env e cambia POSTGRES_PASSWORD con qualcosa di sicuro e TZ con il tuo fuso orario.
    3. Copia config.example.toml in data/main/config.toml e compila i campi obbligatori: apiKey, password, publicHostname, [owner].name, [owner].telegram (il tuo chat ID) e [telegram].botToken. Tutto il resto nel file è opzionale.
    4. docker compose up --build

    Questo è tutto. Invia un messaggio al tuo bot su Telegram e risponderà. Vedi le sezioni di configurazione dettagliate qui sotto per Signal, WhatsApp, email e altre opzioni.

    Configurazione

    Configurazione

    1. Copia config.example.toml in data/main/config.toml.
    2. Inserisci le chiavi API e le impostazioni. Il file di esempio ha commenti che spiegano ogni sezione.
    3. Come minimo, imposta authFile (o apiKey) e publicHostname. Tutto il resto è opzionale.
    4. Copia env.example in .env e imposta il tuo fuso orario (TZ). Le credenziali di Postgres e altre impostazioni di ambiente possono essere sovrascritte lì. Imposta sempre POSTGRES_PASSWORD come qualcosa di sicuro — il valore predefinito è un segnaposto debole e non deve essere usato in produzione.

    Endpoint personalizzati e compatibili con OpenAI

    Stavrobot può essere puntato a qualsiasi endpoint compatibile con OpenAI (Ollama, LiteLLM, vLLM, ecc.) o a un proxy personalizzato compatibile con Anthropic impostando baseUrl in config.toml. Vedi config.example.toml per i campi richiesti e configurazioni di esempio.

    Autenticazione

    L'app supporta due modalità di autenticazione: chiave API o OAuth.

    • Chiave API: Imposta apiKey in config.toml. Nessun login o logout necessario.
    • OAuth: Imposta authFile in config.toml (un percorso in cui verranno memorizzate le credenziali). La pagina di login funziona con qualsiasi provider OAuth supportato da Pi.
      • Login: Visita <il-tuo-hostname>/login in un browser. Segui le istruzioni sulla pagina e le credenziali vengono salvate nel file di autenticazione. Se l'autenticazione scade mentre il bot è in esecuzione, ti invia un messaggio con l'URL di login tramite la tua piattaforma di messaggistica.
      • Logout: Elimina il file al percorso authFile. Il bot rileverà le credenziali mancanti al prossimo messaggio e ti chiederà di effettuare di nuovo il login.

    Configurazione di Claude Code

    Il container coder è opzionale (necessario solo per la funzionalità di autoprogrammazione). Usa Claude Code con autenticazione tramite abbonamento (OAuth), separata dalla chiave API dell'app principale.

    I profili di Docker Compose sono separati da virgole, quindi puoi combinarli (ad es. COMPOSE_PROFILES=signal,coder).

    1. Imposta COMPOSE_PROFILES nel tuo file .env per includere coder (ad es. COMPOSE_PROFILES=coder, o COMPOSE_PROFILES=signal,coder se stai usando anche Signal).
    2. Avvia i container: docker compose --profile coder up --build
    3. Effettua il login: docker compose exec -u coder coder claude (ti chiederà di fare login se non l'hai ancora fatto).
    4. Segui il flusso OAuth basato su browser.
    5. Imposta [coder].model nella tua configurazione su un alias di modello Claude Code (sonnet, opus o haiku).

    Configurazione di Signal

    Signal richiede un numero di telefono separato — non il tuo personale. Una SIM prepagata o un numero VoIP funzionano.

    1. Rimuovi il commento da COMPOSE_PROFILES=signal nel tuo file .env per abilitare il container signal-bridge.
    2. Costruisci i container: docker compose --profile signal build
    3. Registra Signal sul container (scegli una opzione):
      • Collega a un account Signal esistente: docker compose --profile signal run --rm --entrypoint bash signal-bridge -c 'signal-cli link -n "Stavrobot" | tee >(xargs -L 1 qrencode -t utf8)' — scansiona il codice QR con il tuo telefono (Signal > Impostazioni > Dispositivi collegati).
      • Registra un nuovo numero: docker compose --profile signal run --rm --entrypoint bash signal-bridge -c 'signal-cli -u +TuoNumero register', poi verifica con docker compose --profile signal run --rm --entrypoint bash signal-bridge -c 'signal-cli -u +TuoNumero verify CODICE'.
    4. Imposta [signal].account nella tua configurazione.
    5. Avvia i container: docker compose up --build
    6. Dopo il primo avvio, aggiungi i numeri consentiti tramite l'interfaccia web /settings.
    7. Importante: signal-cli non risolve i numeri di telefono per i contatti a cui non ha ancora inviato messaggi. Il bot deve inviare il primo messaggio a ciascun contatto tramite numero di telefono prima di poter ricevere e identificare i messaggi in arrivo da loro. Per attivare questo per il proprietario, esegui:
      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. Vedi la guida rapida di signal-cli per i dettagli.

    Configurazione di Telegram

    1. Invia un messaggio a @BotFather su Telegram, crea un nuovo bot e copia il token.
    2. Invia un messaggio a @userinfobot su Telegram per ottenere il tuo ID utente (questo viene usato come chat ID).
    3. Imposta [telegram].botToken nella tua configurazione.
    4. Imposta il chat ID (non il tuo numero di telefono mobile) in [owner].telegram nella tua configurazione.
    5. Dopo il primo avvio, aggiungi gli ID chat consentiti tramite l'interfaccia web /settings.
    6. Il webhook viene registrato automaticamente all'avvio dell'app.

    Configurazione di WhatsApp

    WhatsApp richiede un numero di telefono separato, altrimenti ti invieresti messaggi da solo, il che non funziona.

    WhatsApp usa Baileys, una libreria WhatsApp Web non ufficiale che si collega come dispositivo compagno (come WhatsApp Web). Non è necessario un numero di telefono separato — si collega al tuo account WhatsApp esistente.

    Rischio: Baileys utilizza un'API non ufficiale. WhatsApp potrebbe bannare gli account che la usano. Usa a tuo rischio.

    1. Aggiungi una sezione [whatsapp] al tuo config.toml (vedi config.example.toml per il formato).
    2. Avvia i container: docker compose up --build
    3. Un codice QR apparirà nei log dell'app (docker compose logs -f app).
    4. Apri WhatsApp sul tuo telefono, vai su Dispositivi collegati e scansiona il codice QR.
    5. La sessione persiste tra i riavvii in ./data/whatsapp.
    6. Aggiungi i numeri di telefono consentiti tramite l'interfaccia web /settings.

    Configurazione email

    L'email utilizza un Cloudflare Email Worker per la consegna in entrata e SMTP per l'uscita. Vedi config.example.toml per il codice worker completo e le istruzioni dettagliate di configurazione.

    1. Aggiungi una sezione [email] al tuo config.toml con le credenziali SMTP e un webhookSecret casuale.
    2. Distribuisci il Cloudflare Email Worker (codice in config.example.toml) e imposta le variabili d'ambiente WEBHOOK_URL e WEBHOOK_SECRET sul worker.
    3. In Cloudflare Email Routing, aggiungi una regola per inoltrare la posta in arrivo al worker.
    4. Aggiungi gli indirizzi mittente consentiti tramite l'interfaccia web /settings.

    Esecuzione

    root@kitploit:~
    docker compose up --build
    

    L'API è disponibile su http://localhost:10567/chat.

    Nota: Docker Compose espone l'app solo su localhost:10567. Per renderla accessibile dall'esterno (necessario per webhook Telegram/Signal e l'impostazione publicHostname), configura un reverse proxy (es. Nginx, Caddy) che punti a localhost:10567. Puoi anche esporre direttamente la porta, ma non è raccomandato poiché il traffico non sarà crittografato.

    Senza Docker

    Richiede Node.js >= 20 e un'istanza PostgreSQL in esecuzione.

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

    Nota: L'esecuzione di Python e l'integrazione con Signal funzionano solo all'interno dei container Docker.

    Sistema di conoscenza

    Stavrobot ha un sistema di conoscenza a tre livelli: memorie, un blocco note e il database. Gestirà questi abbastanza bene da solo, ma è importante che tu li conosca perché vorrai aiutare il bot a usarli correttamente.

    Le memorie vengono sempre iniettate interamente nel prompt di sistema. Dovresti essere parsimonioso con queste, poiché vengono incluse nel contesto ogni volta, e averne molte può aumentare il contesto. Un esempio di buona memoria potrebbe essere "l'utente preferisce chattare in uno stile informale.", qualcosa che il bot dovrebbe sapere ogni volta, anche se ciò costa in lunghezza aggiuntiva del contesto.

    Il blocco note è dove il bot conserva le conoscenze a cui si accede meno frequentemente, ma conoscenze che riguardano un argomento. Le voci del blocco note hanno un titolo e un corpo, e il titolo viene iniettato nel contesto automaticamente. Usalo per cose importanti, ma meno frequentemente necessarie, cose che di solito riguardano un argomento specifico.

    Ad esempio, una buona voce del blocco note potrebbe essere "preferenze alimentari", con dettagli su cosa ti piace mangiare, quando, ecc. Il bot vedrà che c'è un argomento "preferenze alimentari", ma non caricherà il testo effettivo nel contesto automaticamente, accedendovi solo su richiesta.

    Quando parli con il bot di cibo, saprà che c'è una voce del blocco note "preferenze alimentari" a cui può guardare, e di solito lo farà da solo.

    Il database è il terzo livello, per dati strutturati o in blocco che non appartengono a memorie o al blocco note. Il bot ha accesso completo in lettura/scrittura a PostgreSQL tramite SQL senza restrizioni, quindi può creare tabelle, eseguire query e memorizzare qualsiasi cosa. Usalo per cose come elenchi, log, record strutturati o qualsiasi dato che sia meglio interrogato che letto come prosa.

    Il bot di solito saprà abbastanza bene cosa usare quando, ma a volte vorrai dirgli esplicitamente quali informazioni mettere dove.

    Parlare con altre persone

    Stavrobot può inviare messaggi per tuo conto tramite Signal, Telegram, WhatsApp o email. Hai bisogno di organizzare una cena con un amico? Dì al bot di trovare un orario che funzioni per entrambi, e invierà loro un messaggio, negozierà una data e la inserirà nel tuo calendario. Vuoi organizzare un appuntamento, coordinare un'uscita di gruppo o chiedere a qualcuno una domanda mentre sei occupato? Basta dire al bot cosa ti serve e con chi parlare.

    Il bot avvia un subagente dedicato per ogni conversazione, con le proprie istruzioni e contesto, in modo da poter gestire lo scambio con l'altra persona senza ingombrare la tua chat principale. Quando il compito è terminato, disabilita il contatto e ti riferisce i risultati.

    Per mantenere le cose sicure, la messaggistica richiede due cose prima che il bot possa parlare con qualcuno:

    1. Lo aggiungi alla lista consentita. Vai su /settings e aggiungi il suo numero di telefono (Signal o WhatsApp) o chat ID (Telegram). Questo è un passaggio una tantum per persona. Il bot non può modificare questa lista né inviare messaggi a chi non è presente, indipendentemente da ciò che gli viene detto.
    2. Il bot crea un record di contatto. Quando chiedi al bot di inviare un messaggio a qualcuno nella lista consentita, crea un record di contatto e avvia un subagente dedicato per la conversazione. Quando il compito è terminato, disabilita il contatto, il che blocca la messaggistica in entrambe le direzioni fino a quando non chiedi al bot di riattivarlo.

    Un flusso tipico: aggiungi il numero di telefono del tuo amico alla lista consentita tramite /settings una volta, poi dici al bot "trova un orario per cena con Alex la prossima settimana". Il bot crea un record di contatto per Alex, avvia un subagente, invia un messaggio ad Alex su Signal, va avanti e indietro per trovare una data e ti riporta il risultato.

    Abilità

    Le abilità sono file di istruzioni in testo semplice che insegnano al bot nuove capacità — cose come creare tabelle, memorizzare conoscenze, creare pagine o seguire flussi di lavoro specifici. Non sono codice; sono istruzioni in linguaggio naturale che il bot legge e segue.

    Per installare il sistema di abilità, dì al bot di recuperare https://stavrobot.stavros.io/skills/bootstrap.md e di seguirne le istruzioni.

    Un elenco completo delle abilità disponibili si trova su https://stavrobot.stavros.io/skills/index.md. Per installare un'abilità, basta dire al bot di recuperarla e installarla da quell'URL. Il bot ti mostrerà cosa fa l'abilità e chiederà conferma prima di procedere.

    I file delle abilità risiedono nel branch pages di questo repository (servito tramite Cloudflare Pages). Per contribuire con un'abilità, aggiungi un file Markdown in skills/ su quel branch. Ogni file di abilità ha intestazione YAML con title, description, version e un author opzionale, seguito dalle istruzioni in linguaggio semplice nel corpo. Vedi SKILL-AUTHORING.md per la guida completa alla scrittura. Invia una PR sul branch pages.

    Come creare il proprio plugin

    Vedi PLUGIN.md per tutto ciò che devi sapere per creare un plugin per Stavrobot. Lo stesso documento funge da riferimento sia per umani che per LLM.

    Plugin consigliati

    I plugin sono abbastanza necessari per abilitare funzionalità core del bot, come la capacità di "sentire" note vocali, inviare note vocali di ritorno, essere consapevole dei luoghi intorno a te, cercare sul web, ecc.

    Queste capacità non sono fornite pronte all'uso per darti la possibilità di personalizzare il tuo bot come preferisci. Dovresti comunque installare plugin, altrimenti ti mancheranno funzionalità cruciali.

    Puoi trovare alcuni plugin di prima parte qui:

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

    Architettura

    Tre container Docker core: app (server TypeScript, espone POST /chat, gestisce webhook Telegram su POST /telegram/webhook, gestisce webhook email in entrata su POST /email/webhook ed esegue WhatsApp in-process tramite Baileys), postgres (PostgreSQL 17 per lo stato persistente) e plugin-runner (server Node.js — elenca, ispeziona ed esegue plugin, sia creati localmente che installati tramite git). Un container opzionale coder (agente headless di Claude Code per creare e modificare plugin modificabili) è abilitato tramite il profilo Docker Compose coder. L'agente principale può creare subagenti, ciascuno con la propria cronologia di conversazione, prompt di sistema e whitelist di strumenti. Gli interlocutori sono record di contatto assegnati agli agenti per il routing dei messaggi in arrivo.

    Licenza

    AGPL-3.0