Claude è una chat in più.
aipager mette le tue sessioni di Claude Code su Telegram, tra la tua famiglia, i tuoi amici e il tuo team. Gira sul tuo computer.
Una sessione di Claude Code pronta sul tuo portatile, in modalità «Automatico», da cui parte ogni sessione nuova.
curl -fsSL aipager.run/install | shLinux e macOS · MIT · circa un minuto
Tre modalità. Si parte dalla modalità «Automatico».
Ogni sessione sta in una delle tre, si sceglie per sessione e si cambia quando vuoi con /mode. La modalità «Chiedi» si ferma prima di ogni azione. La modalità «Automatico», da cui parte ogni sessione nuova, lascia che il controllo di sicurezza di Claude Code esegua da solo le azioni sicure e fermi per te quelle rischiose. La modalità «Completo» esegue tutto senza alcun controllo. Una modalità vale per le richieste di permesso di Claude Code e per nient'altro: in un gruppo, uno strumento che il ruolo di un membro non può usare viene rifiutato lo stesso, qualunque cosa dica la modalità.
- ✅ Consenti · solo questa azione
- ❌ Nega · Claude blocca l'azione
- 🟢 Consenti sempre · aggiunge la regola che Claude propone, quando ne propone una
- ⏹ Ferma · interrompe l'attività invece di rispondere
Mostra un pulsante per ognuna delle altre modalità; /mode ask, /mode auto e /mode full cambiano subito. Le sessioni nuove partono in modalità «Automatico», a meno che la chat non abbia scelto altro in /settings → Nuove sessioni.
Niente riavvio, nemmeno mentre Claude lavora: aipager preme Shift+Tab nella sessione, e la scheda dice che sta cambiando finché Claude Code non conferma la nuova modalità.
Passare alla modalità «Completo», o uscirne, riavvia la sessione e la conversazione resta. Solo un admin può avviare una sessione in questa modalità, o farci passare una sessione già aperta (o tu, nella tua chat privata con il bot).
Una modalità vale per le richieste di permesso, non per le decisioni: quando Claude ti chiede qualcosa, i pulsanti arrivano nella tua chat in qualunque modalità.
Tre chat. Tutto il resto è la tua vita.
- aipagerbot⏳ api · Al lavoro · 3:14 · Read ×2 · Bash ×2La tua chat con Claude
Una sola chat per tutte le sessioni. Per ogni attività una scheda in diretta che si aggiorna da sola, richieste a cui rispondi con un tocco, e una barra fissata che dice cosa ha bisogno di te. Un messaggio normale va alla sessione indicata nella barra; /web manda il prossimo a un'altra sessione, e da lì in poi parli con quella.
/status/new/mode/stop/app/<sessione> <messaggio> - BTbackend-teamgruppo · uso in teamSara: @aipagerbot /web esegui l'e2e del login su stagingIl gruppo del tuo team
Metti il bot in un gruppo e chiunque sia tra le persone consentite può menzionarlo. Ogni messaggio gira con il ruolo di chi lo manda; uno strumento che quel ruolo non può usare viene rifiutato prima di partire, e ogni decisione finisce nel log di audit con il nome di chi ha toccato il pulsante.
owneradminuserread_only - JJimla sua chat con il bot🔐 web · Serve il tuo permessoUn'altra persona, nella sua chat
Aggiungi la chat privata che una persona del tuo team ha con il bot e guiderà le proprie sessioni, con il suo ruolo e la sua cartella radice: le attività di Claude partono lì dentro e non leggono niente della tua cartella home fuori da lì. Chi deve solo guardare riceve read_only nel tuo gruppo.
cartella radice dei membri~/aipager-users/<label>read_only/new
Quattro ruoli, e una regola sugli strumenti per ogni ruolo.
Il ruolo che conta è quello che hai nella chat in cui stai scrivendo, e uno strumento che un ruolo non può usare viene rifiutato prima di partire, non ti viene chiesto. Niente su Telegram e niente nella Mini App cambia chi è tra le persone consentite: solo aipager config, sul computer.
| Può | owner | admin | user | read_only |
|---|---|---|---|---|
| Mandare messaggi a una sessione | ✓ | ✓ | ✓ | ✕ |
| «Consenti», «Nega», rispondere alle domande di Claude | ✓ | ✓ | ✓ | ✕ |
| Bash, e tutto quello che esegue codice | ✓ | ✓ | ✕ | ✕ |
| La modalità «Completo», le /settings di un gruppo, /update | ✓ | ✓ | chat privata | ✕ |
| Dove possono lavorare le loro sessioni | ovunque | ovunque | cartella radice | cartella radice |
| Leggere i file delle credenziali (~/.ssh, …) | ✓ | ✓ | ✕ | ✕ |
Usalo come una chat.
Non è una console travestita da chat: tutto quello che già fai su Telegram funziona qui. Parlaci mentre torni a casa, buttagli lo screenshot, manda il pensiero successivo prima che il precedente sia finito.
- 🎙️Dillo a voce
Manda un vocale: viene trascritto sul tuo computer (mai nel cloud di nessuno), ti torna indietro scritto così vedi cosa ha sentito, e finisce nella sessione come se l'avessi scritto tu.
0:07🎙️ Ho sentito: sistema il test e2e del login che fallisce a caso - 📎Uno screenshot del bug
Foto e file finiscono in una cartella sul tuo computer e Claude riceve il percorso, con la tua didascalia come messaggio, o un «check this: …» quando non ce n'è una. Mandane diversi insieme e partono come un messaggio solo.
- 📤Ti manda file
Chiediglielo con parole tue, «mandami lo screenshot», e il file arriva nella chat di quella sessione subito dopo la risposta: le immagini come foto, video e audio così come sono, tutto il resto come file, e più di uno insieme come un unico album. Mai le impostazioni di aipager, le credenziali di Claude o le tue chiavi: vengono rifiutate prima che parta qualsiasi cosa.
mandami lo screenshot - 👀Manda subito il prossimo
Il tuo messaggio arriva a Claude nel momento in cui lo mandi, anche a metà attività: 👀 mentre la coda di Claude lo tiene, 👍 quando Claude lo prende. «⚡ Invia ora» glielo passa senza aspettare la fine del passaggio.
- ⏸Mai letto come la risposta
Un messaggio che mandi mentre c'è una richiesta di permesso aperta resta da parte, non finisce dentro la risposta, e va alla sessione appena hai risposto.
- 🤖Agenti e comandi in background, contati
Ogni agente in background che Claude avvia ha la sua riga sulla scheda con quello che sta facendo, e un comando lasciato in background tiene il suo orologio finché non finisce.
- 🔔Te lo dice per primo
Un avviso sul contesto, una compattazione, una sessione terminata o rimasta in silenzio, un'attività andata per le lunghe: la chat te lo dice senza che tu vada a guardare.
- ⌨️I pulsanti sono già lì
Sotto la casella del messaggio c'è una tastiera: un pulsante per ogni sessione in esecuzione, poi «status», «stop» e «new», poi «Template» per i messaggi che riscrivi sempre e «Comandi» per quelli che gestisce Claude Code.
- 📋/status, tutta la chat insieme
Tutte le sessioni in una lista su cui puoi agire: cosa fa ognuna, il suo modello, il contesto che resta, quanto è costata, cosa ha in coda, con «Ferma», «Rispondi» e il resto del menu su ognuna.
Una dashboard, sempre dentro Telegram.
/app apre tutte le sessioni in una volta sola: un riquadro per ognuna, con l'anello del contesto, la cartella, il modello e quanto ha speso. La chat resta il posto dove rispondi; l'app serve per vederle tutte insieme e per le cose che in chat sono scomode, come leggere un diff o cambiare un'impostazione.
Un riquadro per ognuna, con l'anello del contesto, di chi è, il modello e quanto ha speso, e sopra una riga che dice come va la chat: quali sono al lavoro, quali sono pronte, quanto è costata la giornata, quante sono terminate. Il + ne avvia un'altra: un nome, una cartella fra quelle che usi già, un modello.
Una sessione che aspetta la tua risposta a una richiesta di permesso o a una domanda sta in cima, con quello che sta chiedendo. «Rispondi nella chat» rimanda quella richiesta in fondo alla chat, pulsanti compresi, e lì rispondi.
Lo stato - «Al lavoro (3:12)» o «Pronta, ultima attività 5 min fa» - e un tocco per «Ferma» o «Riprendi». Sotto, gli ultimi strumenti usati, l'ultima risposta, il controllo del modello, i file che l'attività ha cambiato come diff, e le impostazioni di quella sessione.
È attiva di default, ogni richiesta viene controllata con la firma di Telegram, e la pagina non carica niente da fuori: niente font, niente script. aipager miniapp disable la spegne.
Nella tua lingua, fino alle cifre.
Cambiano solo le parole di aipager: le schede, le richieste, i pulsanti, la barra fissata, /status, la Mini App, la documentazione. Le tue sessioni no: Claude risponde nella lingua in cui gli scrivi, e quello che aipager manda a Claude resta com'è. Scegline una con /language, o lascia che segua il tuo Telegram.
Il persiano e l'arabo si leggono da destra a sinistra, con le cifre persiane (۰-۹) o arabo-indiane (٠-٩) e i loro separatori, su Telegram e nella Mini App. I nomi delle sessioni, i percorsi, i comandi e il codice tengono la loro direzione.
Ogni lingua è stata scritta come parla davvero chi usa le app in quella lingua, prestiti dall'inglese compresi, con le forme plurali di ciascuna (l'arabo ne ha sei).
Una chat privata può seguire il tuo Telegram. Un gruppo ha una lingua sola, scelta da un admin, e il messaggio che compare dopo un tocco è nella lingua di chi ha toccato.
Il README e tutte le pagine sotto docs/ sono tradotti. Quando una traduzione e la pagina inglese non vanno d'accordo, ha ragione la pagina inglese.
pnpm test e2e/login --trace onLa verità resta nel terminale.
Claude Code gira in un terminale vero, dentro dtach, così nessuno deve tenere una finestra aperta. Ogni passaggio fa partire un hook che manda un datagramma ad aipager su un socket locale, e aipager modifica un messaggio nella tua chat. Le tue risposte tornano indietro per la stessa strada: un verdetto all'hook che tiene ferma l'azione, oppure tasti battuti nella sessione.
- Claude Codedentro dtach, senza finestra
- hookparte a ogni passaggio
- aipagerun processo, il tuo utente
- Telegramil token del tuo bot
- le tue chatla tua chat privata, il gruppo del tuo team
aipager session api ti collega alla sessione in esecuzione da qualsiasi terminale. Scrivi lì, scrivi in chat: è la stessa sessione. Chiudi la finestra e la sessione va avanti, e il collegamento la segue anche quando si riavvia.
aipager scrive nella sessione e ascolta gli eventi di Claude Code. Quello che vedi in chat viene dagli hook e dalla conversazione salvata, non dallo schermo di un terminale.
Un hook manda un datagramma e torna: circa 20 ms del tempo di Claude Code. Se aipager non sta ascoltando, l'evento viene semplicemente scartato e Claude va avanti; aipager poi si rimette in pari dai file della sessione.
Niente in mezzo.
aipager non parla mai con Anthropic. L'unico che lo fa è Claude Code, con il tuo login, sul tuo computer. aipager lo avvia in un terminale e ascolta gli hook che Claude Code pubblica. Nessun endpoint ricavato per reverse engineering, nessun proxy, nessun account che non sia il tuo: la sessione che guidi dal telefono è la stessa che guideresti dalla tastiera.
aipager parla con la Bot API di Telegram usando il token del tuo bot. Non esiste un account aipager né un servizio aipager, e fra il tuo telefono e il tuo computer non c'è il computer di nessun altro.
aipager risponde solo nelle chat elencate nella tua configurazione. Chi trova il bot per caso riceve una riga sola, «Questo bot non è configurato per parlare con te», e niente di quello che manda arriva a una sessione.
Ascolta solo su loopback. La Mini App esce da un tunnel Cloudflare dove ogni richiesta deve portare la firma di Telegram, e aipager miniapp disable la spegne.
Il token del bot e gli id delle chat stanno in ~/.config/aipager/aipager.yaml con permessi 600. Restano fuori dal log di aipager, e dove potrebbero finirci vengono oscurati.
Niente sudo, niente setuid. Tutto quello che scrive sta nella tua cartella home, in /tmp o nella sua cartella dei socket, e ogni processo che avvia (claude, dtach, gli installer) gira come te.
È il tuo settings.json a dire cosa va chiesto. aipager gira la domanda; non decide mai cosa può partire, e un pulsante rimasto da un'attività finita rifiuta invece di toccare il lavoro in corso.
Membri e ruoli cambiano solo con aipager config, sul computer. Niente su Telegram e niente nella Mini App può aggiungere una persona o allargare un ruolo.
Ogni «Consenti», ogni «Nega» e ogni risposta finisce in ~/.claude/aipager-audit.jsonl, che si può solo allungare, con il nome di chi ha toccato il pulsante in un gruppo.
Quattro righe. Tienile nei Messaggi salvati.
Tocca una riga per copiarla. Prima due cose: un bot tuo da @BotFather (premi «Avvia» nella sua chat), e Claude Code con il login fatto su questo computer. La procedura guidata della seconda riga ti chiede il resto.
Metti il token del bot in un file che l'agente non deve mai leggere, poi dai questo a Claude Code:
Install aipager for me by following https://aipager.run/agent.md. My Telegram bot token is in ~/.config/aipager/bot-token and my Telegram user id is <your id>.
Preferisci il tuo package manager? uv, pipx, Homebrew, Docker, Nix, l'AUR e Snap. tutti i modi per installarlo →
Chiedi pure.
Aggiungi Claude alle tue chat.
Poi chiudi il terminale e vai a vivere la tua serata.