Condividere lo schermo durante una sessione di sviluppo software è semplice; lavorare davvero sullo stesso programma, con più persone che possono utilizzare mouse e tastiera senza interrompersi a vicenda, è un problema decisamente più complesso. Petal (download) prova a risolverlo con un’applicazione gratuita e open source per Windows e macOS che permette di condividere singole finestre, controllarle a distanza e collaborare in tempo reale. Nel caso di Petal, le finestre degli altri partecipanti compaiono sul proprio desktop come se fossero applicazioni locali, liberamente spostabili e ridimensionabili.
Il progetto nasce dall’esperienza degli sviluppatori di CoScreen, uno strumento per la programmazione collaborativa acquisito da Datadog nel 2022 e successivamente dismesso a fine luglio 2026. A promuovere l’idea e lo sviluppo di Petal ci sono Jason Thomas, Till Pieper, Darren Guo e Max Andaker, che hanno deciso di ricostruire le funzionalità più apprezzate del precedente prodotto, adottando però una filosofia diversa: codice sorgente pubblico, possibilità di installare autonomamente l’infrastruttura e nessuna dipendenza obbligatoria da un servizio commerciale.
Nel 2015 Slack acquisì Screenhero, un’applicazione che aveva introdotto un modo particolarmente efficace di programmare insieme grazie alla presenza di più cursori e al controllo remoto immediato; il servizio autonomo chiuse a dicembre 2017. CoScreen raccolse parte di quell’eredità, ma anche la sua vicenda si è conclusa con la dismissione del prodotto. Petal vuole farla finita con l’interminabile successione di acquisizioni e chiusure.
Petal trasforma lo schermo condiviso in finestre indipendenti
La differenza più evidente rispetto a Microsoft Teams, Zoom e alle comuni applicazioni di videoconferenza riguarda il modo in cui Petal presenta i contenuti remoti.
Quando qualcuno condivide lo schermo, gli altri partecipanti si trovano dinanzi a un flusso video all’interno della finestra della riunione. Anche quando è possibile scegliere una singola applicazione, la visualizzazione rimane generalmente legata all’interfaccia del programma di comunicazione.
Con Petal ogni finestra condivisa appare sul computer del destinatario come una finestra nativa indipendente, senza essere necessariamente confinata in una griglia di video. La si può trascinare, ridimensionare, affiancare al proprio editor oppure mantenere visibile mentre si lavora su altre applicazioni.
Immaginiamo due programmatori impegnati a correggere un problema in un’applicazione web. Il primo condivide Visual Studio Code, il secondo una finestra del browser con gli strumenti di sviluppo aperti. Entrambi possono osservare il codice e il risultato delle modifiche mantenendo una disposizione personalizzata delle finestre sul proprio desktop.
Non occorre cambiare schermata di continuo o chiedere all’altro partecipante di interrompere una condivisione per mostrarne un’altra. Più utenti possono trasmettere contemporaneamente finestre differenti e ciascun partecipante organizza il proprio spazio di lavoro secondo le esigenze del momento.
Petal riceve il contenuto video della finestra condivisa e lo presenta attraverso un contenitore locale: l’esecuzione dell’applicazione, l’accesso ai file e le operazioni sul sistema continuano ad avvenire sul dispositivo originale.

Come funziona la condivisione: H.264, WebRTC e finestre native
In Petal, ogni finestra condivisa dispone di un proprio flusso video H.264 con codifica hardware. Su macOS l’acquisizione delle immagini sfrutta ScreenCaptureKit, il framework Apple che permette alle applicazioni autorizzate di catturare contenuti dello schermo e delle finestre. Per la codifica video interviene VideoToolbox, che può utilizzare i componenti hardware del dispositivo anziché affidare tutta l’elaborazione alla CPU.
Su Windows la cattura delle finestre si appoggia a Windows.Graphics.Capture, mentre la composizione dei contenuti ricevuti utilizza Direct3D 11. Il client Windows integra inoltre Media Foundation per la videocamera e WASAPI per la gestione dell’audio.
Le comunicazioni audiovisive passano attraverso WebRTC, tecnologia progettata per il trasferimento in tempo reale di audio, video e dati.
La separazione dei flussi offre flessibilità, ma non elimina i costi tecnici: condividere cinque finestre anziché una significa, almeno potenzialmente, acquisire e codificare cinque sorgenti video. Il consumo effettivo di banda, CPU, GPU e memoria dipende dalla risoluzione, dal movimento delle immagini, dalle prestazioni dei dispositivi e dalle condizioni della rete.
Più cursori e controllo remoto: si può scrivere direttamente nel programma di un collega
Ogni partecipante dispone di un cursore riconoscibile, accompagnato da un’etichetta identificativa: i movimenti del mouse diventano visibili agli altri utenti, permettendo di indicare un elemento dell’interfaccia o una riga di codice senza descriverne verbalmente la posizione.
È disponibile anche una funzione di disegno temporaneo sulle finestre condivise: i tratti scompaiono automaticamente dopo circa 10 secondi: è uno strumento comodo quando il team si cimenta con una revisione del codice o quando bisogna richiamare l’attenzione su un messaggio di errore.
Con l’autorizzazione del proprietario della finestra, un altro partecipante può fare clic, scorrere i contenuti e utilizzare la tastiera: uno sviluppatore può mostrare un problema e lasciare che l’altro intervenga direttamente nell’editor. Il passaggio dalla spiegazione all’azione diventa molto più rapido.
Gli sviluppatori hanno affrontato anche un problema tecnico delicato: iniettare input in una finestra remota senza sottrarre continuamente il focus all’utente che sta lavorando sul computer a cui quella finestra appartiene davvero.

Come funziona interazione con le finestre remote su macOS e Windows
Su macOS, Petal utilizza meccanismi collegati ai servizi di accessibilità e alle interfacce native di gestione delle finestre.
Su Windows, Petal combina diverse interfacce del sistema operativo per consentire a un partecipante remoto di interagire con le applicazioni condivise. Le API Win32 permettono di individuare le finestre, identificarle attraverso i rispettivi handle (HWND) e inviare determinati messaggi direttamente alla finestra interessata. UI Automation, l’interfaccia Microsoft progettata principalmente per le tecnologie assistive, consente invece di riconoscere e interagire con elementi dell’interfaccia come pulsanti, caselle di testo e menu. Quando queste modalità non sono sufficienti, entra in gioco SendInput, una funzione di Windows che simula la pressione dei tasti, i clic e i movimenti del mouse, inserendoli nel normale flusso di input del sistema.
Mentre alcuni messaggi Win32 e le operazioni supportate da UI Automation possono agire su una specifica finestra senza portarla in primo piano, SendInput indirizza gli eventi all’applicazione che possiede il focus.
Le stanze permanenti rendono Petal più simile a uno spazio di lavoro
Il programma consente di utilizzare stanze permanenti con un nome riconoscibile, nelle quali i membri del gruppo possono entrare con un clic. Le stanze supportano collegamenti di invito e informazioni sulla presenza degli utenti.
L’idea è rendere la collaborazione un’attività immediata: un gruppo che lavora sullo stesso progetto può utilizzare sempre la medesima stanza anziché organizzare una nuova videoconferenza per ogni dubbio tecnico.
L’interfaccia della riunione può ridursi a un piccolo elemento flottante, evitando di occupare spazio inutilmente sul desktop. Sono previste anche procedure di riconnessione in caso di cambiamento della rete, con ripubblicazione automatica delle condivisioni.
Chi non dispone dell’applicazione desktop può utilizzare il client Web di Petal, che permette di partecipare attraverso il browser usando un codice o un collegamento di invito.
Petal può funzionare senza utilizzare i server degli sviluppatori
La caratteristica che potrebbe garantire a Petal una vita più lunga rispetto ai suoi predecessori è la possibilità di gestire autonomamente l’infrastruttura.
Il sito propone tre modalità: utilizzare Petal Cloud, installare il servizio sui propri server oppure modificare e compilare il codice sorgente. La prima è la soluzione più immediata: si scarica il client e si utilizza l’infrastruttura LiveKit messa a disposizione dal progetto.
Per le organizzazioni che desiderano maggiore controllo esiste invece una configurazione self-hosted. La guida ufficiale all’installazione autonoma descrive tre componenti principali: un server LiveKit raggiungibile dai client, un backend incaricato di generare i token e gestire le informazioni sulle stanze, un’applicazione desktop compilata con l’indirizzo del proprio backend.
L’integrazione con Gemini: l’AI può osservare la finestra condivisa
Tra le funzionalità documentate compare un’integrazione sperimentale con Gemini Live, utilizzabile durante una sessione collaborativa.
La funzione permette ai partecipanti di aprire una conversazione con l’assistente AI riferita a una finestra condivisa: il modello può ricevere informazioni visive su ciò che compare nell’applicazione e interagire vocalmente con gli utenti tramite una modalità push-to-talk.
Un possibile impiego consiste nel mostrare all’assistente Google un errore nell’editor oppure una pagina web che non si comporta come previsto. Anziché copiare continuamente schermate e frammenti di codice in una chat separata, gli sviluppatori possono discutere il problema mentre l’AI “osserva” il contenuto condiviso.
Dal punto di vista tecnico, il server può generare token temporanei per l’accesso a Gemini, senza esporre direttamente ai client la chiave API principale; nella configurazione self-hosted, è impostato come modello predefinito models/gemini-3.1-flash-live-preview, ma c’è la possibilità di intervenirvi tramite variabili d’ambiente.
Perché Petal è interessante, ma non sostituisce ancora ogni programma di accesso remoto
Come già osservato in precedenza, Petal non tenta di competere con TeamViewer, AnyDesk o con il Desktop remoto di Windows sul terreno dell’amministrazione a distanza.
I programmi tradizionali di accesso remoto puntano soprattutto a utilizzare un altro computer, spesso per svolgere interventi di assistenza o gestire sistemi senza una persona fisicamente presente davanti allo schermo: Petal mette invece al centro la collaborazione simultanea tra persone che lavorano su applicazioni condivise.
Un normale collegamento remoto tende a riprodurre l’intera sessione di un altro computer; Petal prova a integrare elementi del desktop remoto all’interno dell’ambiente di lavoro locale di ciascun partecipante.
Il modello può risultare utile anche fuori dallo sviluppo software: assistenza tecnica interattiva, revisione di documenti, formazione su applicazioni complesse, analisi condivisa di strumenti amministrativi e supporto alla configurazione dei programmi.
Restano però alcune limitazioni importanti: il client Windows necessita ancora di lavoro, il supporto Linux non è disponibile, il controllo remoto presenta aspetti sperimentali e l’installazione autonoma richiede competenze tecniche specifiche.
A parte questo, Petal è prezioso perché promuove il concetto di una programmazione a distanza che dovrebbe essere semplice quanto lavorare davanti allo stesso computer, senza essere costretti a rinunciare al controllo dei propri strumenti e dell’infrastruttura utilizzata.