Chi lavora su router e switch Cisco o Huawei via SSH sa che un assistente AI come Claude Code o Codex non può (e non deve) toccare direttamente il dispositivo: nessun accesso, nessun rischio di comandi sbagliati su un apparato in produzione. Ma può essere prezioso come “secondo paio d’occhi” se riesce a vedere quello che scrivi e ti risponde in tempo reale, senza mai eseguire nulla lui stesso.
terminal-router è il pacchetto incluso nel repo di SysLinuxOS che risolve esattamente questo: registra la sessione del terminale in un file che l’assistente AI può leggere in tempo reale, mentre tu resti l’unico a digitare comandi sul dispositivo.
Come funziona
Il flusso è semplice: apri una sessione SSH sul router in un pannello, l’assistente AI segue ~/.claude-logs/latest in un altro. Tu scrivi, lui legge e suggerisce, tu decidi cosa eseguire. Il log non lascia mai la macchina.
Tecnicamente si appoggia a tmux: ogni pannello viene collegato a uno script che scrive un file di log timestampato, con un symlink sempre aggiornato (latest) che punta al pannello più recente.
Due modalità d’uso
Dalla versione 1.0.4, terminal-router offre due modi diversi di attivare la registrazione:
terminal-router install — ogni terminale
Aggiunge un blocco marcato a ~/.bashrc (o ~/.zshrc) e a ~/.tmux.conf: da quel momento ogni terminale interattivo che apri entra automaticamente in una sessione tmux loggata. Comodo se lavori spesso su dispositivi di rete e vuoi che la cosa sia sempre attiva, ma tocca la configurazione della shell — resta attivo anche dopo un riavvio, finché non lo rimuovi esplicitamente con terminal-router remove.
launch — una sessione, zero configurazione
La novità pensata per chi vuole loggare solo quella sessione, senza toccare Terminator, GNOME Terminal o qualsiasi altro terminale già aperto. terminal-router launch apre una sessione tmux autonoma con gli hook di logging impostati solo su quella sessione (senza il flag -g): quando la chiudi, sparisce tutto, e non viene scritta una sola riga in ~/.bashrc, ~/.zshrc o ~/.tmux.conf.
Il dettaglio tecnico interessante: incatenare pipe-pane subito dopo new-session in un’unica invocazione tmux non funziona in modo affidabile (verificato empiricamente su tmux 3.5a). La soluzione adottata crea prima gli hook sulla sessione, poi sostituisce la finestra iniziale (mai loggata) con una nuova finestra creata dopo gli hook, che viene catturata correttamente.
Installazione
terminal-router si distribuisce tramite il repository APT ufficiale SysLinuxOS Tools. Se non l’hai ancora aggiunto:
curl -fsSL https://fconidi.github.io/SysLinuxOS-Tools/client/install-repo.sh | sudo bash
Poi installi il pacchetto come qualunque altro:
sudo apt update sudo apt install terminal-router
L’installazione del pacchetto non attiva nulla automaticamente: ogni utente deve scegliere esplicitamente install o launch e accettare l’avviso di sicurezza la prima volta.
Comandi disponibili
| Comando | Cosa fa |
|---|---|
terminal-router install |
Attiva la registrazione su ogni terminale (hook in bashrc/zshrc + tmux.conf) |
terminal-router launch |
Registra solo una sessione, senza toccare i file di configurazione |
terminal-router status |
Mostra cosa è attivo, spazio occupato dai log, e se un assistente AI è disponibile |
terminal-router tail |
Segue in diretta il log del pannello più recente |
terminal-router remove |
Disinstalla gli hook (con backup automatico) e opzionalmente cancella i log |
terminal-router menu |
Menu interattivo, usato anche dall’icona nel menu applicazioni |
All’interno di un pannello registrato, due funzioni shell aiutano a gestire momenti delicati:
logpause # sospende la registrazione su questo pannello logresume # la riprende, in un nuovo file
Novità v1.0.5: controllo dell’assistente AI
Ha senso registrare una sessione solo se poi qualcuno la legge. Da questa versione, install, launch e status verificano se claude o codex sono disponibili sul PATH, e avvisano (senza bloccare nulla) se non trovano nessuno dei due:
$ terminal-router status ... AI assistant found (claude codex)
Nota per chi usa Codex via nvm: viene rilevato solo se la shell che esegue il controllo ha già caricato nvm nel proprio ambiente.
Sicurezza: cosa finisce nel log (e cosa no)
Il log cattura tutto ciò che appare a schermo. Non cattura le password digitate a un prompt interattivo (sudo, autenticazione SSH via password): il terminale non le mostra a schermo, quindi tmux non le vede.
Quello che può finire nel log, perché visibile a schermo:
- password passate come argomento in chiaro (es.
mysql -pXXX) - token in header HTTP (es.
curl -H "Authorization: Bearer ...") - l’output di
catsu un file.envo una chiave privata
Mitigazioni già in atto: directory dei log a permessi 0700, file 0600, rotazione automatica dopo 30 giorni, e le funzioni logpause/logresume per i momenti in cui serve lavorare “in silenzio”.
Storico versioni
- 1.0.3 — fix di un bug che lasciava APT bloccato durante l’uso del wrapper CLI
- 1.0.4 — nuovo comando
launch: sessione singola non invasiva, senza toccare bashrc/tmux.conf - 1.0.5 — controllo automatico della presenza di claude/codex, con avviso se manca un assistente AI da leggere il log
Link utili
- Repository APT: fconidi.github.io/SysLinuxOS-Tools
man terminal-routerper la documentazione completa dopo l’installazione
Terminal-router assistente AI (Claude Code, Codex) su router Cisco/Huawei

