Skip to main content

Remote Sessions

Abilitando le Remote Sessions, puoi accedere alla stessa sessione da web e mobile tramite Mission Control di GitHub. Una volta abilitate, ogni sessione si connette a Mission Control e viene emesso un URL condivisibile come link o codice QR. Se vuoi che la sessione stessa venga eseguita nell’ambiente hostato da GitHub anziché in locale o su un tuo server, usa le Cloud Sessions.

Prerequisiti

  • L’utente deve essere autenticato (token GitHub o utente loggato)
  • La workingDirectory deve essere un repository GitHub

Attivazione a livello di client (sempre ON)

Abilitando remote: true, per tutte le sessioni all’interno di un repository GitHub viene automaticamente emesso un URL remoto. Piuttosto che aggiungerla in modo fisso a config/copilot.php, è più pratico abilitare remote: true con useStdio() solo dove serve.
L’opzione remote è valida solo quando è l’SDK ad avviare il processo CLI. In altre parole, è esclusiva della modalità stdio. In caso di connessione a server esterni come useTcp(), viene ignorata.

Attivazione per sessione (on-demand)

Se vuoi iniziare la condivisione remota in corso di sessione, usa l’RPC. È equivalente ai comandi /remote on e /remote off della CLI.

Remote Control a livello di runtime (modalità TCP)

L’opzione remote: true si applica quando l’SDK avvia il processo CLI, quindi funziona solo in modalità stdio. Quando ti connetti a un server CLI esistente in modalità TCP, questa opzione viene ignorata. In modalità TCP, usa $client->rpc()->sessions() per gestire un unico Remote Control per l’intero runtime. A differenza di remote()->enable() per sessione, questi metodi ti permettono di avviare, fermare e trasferire il Remote Control tra sessioni, e di leggerne lo stato attuale.
Lo stato è uno tra off, connecting, active o error. Quando lo stato è active, puoi leggere anche frontendUrl e isSteerable.
Per comunicare al runtime che la controllabilità remota di una sessione è cambiata, usa l’RPC con ambito di sessione.

Generazione codice QR

L’URL remoto ottenuto può essere trasformato in un codice QR da passare al mobile. Puoi usare BaconQrCode, utilizzato anche in Laravel Fortify.

Considerazioni

  • L’opzione remote è valida solo quando è l’SDK ad avviare il processo CLI. Con connessioni a server esterni tramite useTcp() è ignorata.
  • Se workingDirectory non è un repository GitHub, in modalità sempre ON la configurazione remota viene saltata. Con l’attivazione on-demand (remote()->enable()) può generare un errore.
  • Configura correttamente le credenziali di autenticazione (github_token o use_logged_in_user).

Riferimenti

Per le informazioni più recenti fai riferimento al repository GitHub.
Ultima modifica il 19 ottobre 2026