Skip to content

LuPaLa-Coder/SwissKnifeBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 SwissKnifeBotalt text

SwissKnifeBot — un ponte tra GitHub Copilot e Telegram. Invia messaggi a Copilot direttamente da Telegram e ricevi risposte in tempo reale.

Requisiti

  • Node.js 18+
  • Un token bot Telegram (da @BotFather)
  • Un account GitHub con accesso a GitHub Copilot

Installazione

git clone <repo-url>
cd SwissKnifeBot
npm install

Configurazione

Crea un file .env nella root del progetto (usa .env.example come riferimento):

TELEGRAM_BOT_TOKEN=il_tuo_token_qui
ALLOWED_CHAT_ID=il_tuo_chat_id_qui
COPILOT_ENABLED=false       # true per abilitare Copilot
CMD_ENABLED=true            # true per abilitare /cmd

TELEGRAM_BOT_TOKEN

Ottieni il token da @BotFather su Telegram:

  1. Apri chat con @BotFather
  2. Invia /newbot e segui le istruzioni
  3. Copia il token ricevuto

ALLOWED_CHAT_ID

ID della chat autorizzata a usare il bot. Puoi ottenerlo in due modi:

Automatico: Avvia il bot, mandagli un messaggio e lui ti comunicherà il tuo Chat ID nel messaggio di "Accesso non configurato".

Manuale: Usa @userinfobot su Telegram per ottenere il tuo ID.

Utilizzo

node bot.js

Il bot partirà e resterà in ascolto su Telegram.

Comandi

Comando Descrizione
/start Messaggio di benvenuto
/help Elenco completo dei comandi
/ipinfo Mostra IP pubblico, posizione, ISP e coordinate
/weather <città> Meteo attuale per una città
/translate <testo> Traduzione italiano → inglese
/shorten <url> Abbrevia un URL con is.gd
/qr <testo> Genera un QR code
/define <parola> Definizione inglese da dizionario
/sys Info sistema (uptime, RAM, CPU, hostname)
/wakeon Mantiene il PC attivo (previene sospensione)
/wakeoff Disattiva il mantenimento PC
/claude Mostra stato Claude Code (in esecuzione / idle / CPU / processi figli)
/cmd <comando> Esegue un comando bash sul server (disabilitabile con CMD_ENABLED=false)
/info Mostra le tue info Telegram (ID, username, chat)
qualunque testo Invia il testo a Copilot e ricevi la risposta (solo se COPILOT_ENABLED=true)

Caratteristiche

  • ✅ Autorizzazione tramite Chat ID (solo utenti autorizzati)
  • ✅ Flag di abilitazione per comandi sensibili (CMD_ENABLED, COPILOT_ENABLED)
  • ✅ Comandi disabilitati nascosti da /help
  • ✅ Risposte lunghe suddivise automaticamente (limite Telegram: 4096 caratteri)
  • ✅ Indicatore "sta scrivendo..." durante l'attesa
  • ✅ Gestione errori di base
  • ✅ Arresto graceful (SIGINT)
  • ✅ Monitoraggio automatico attività Claude (stay‑awake con caffeinate)

Struttura del progetto

SwissKnifeBot/
├── bot.js                 # Entry point — routing comandi e startup
├── commands/              # Comandi Telegram (un file per comando)
│   ├── start.js
│   ├── help.js
│   ├── ipinfo.js
│   ├── weather.js
│   ├── translate.js
│   ├── shorten.js
│   ├── qr.js
│   ├── sys.js
│   ├── define.js
│   ├── wakeon.js
│   ├── wakeoff.js
│   ├── claude.js
│   ├── cmd.js
│   └── info.js
├── services/               # Servizi automatici
│   ├── stayAwake.js        # Monitora Claude e blocca sleep Mac quando lavora
│   └── claudeUtils.js      # Utility per rilevare stato Claude (PID, CPU, processi figli)
├── package.json
├── .env.example
└── README.md

Servizi automatici

Claude Stay‑Awake

All'avvio del bot parte un monitor che controlla ogni 10 secondi se Claude Code sta attivamente lavorando (CPU > 5% o processi figli in esecuzione). Se sì, avvia caffeinate per impedire lo sleep del Mac. Quando Claude torna in idle, caffeinate viene terminato e lo sleep viene ripristinato.

Dipendenze principali

About

Bridge tra GitHub Copilot e Telegram — invia messaggi a Copilot direttamente da Telegram e ricevi le risposte in tempo reale.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors