La programación en pareja suele depender de herramientas de videoconferencia que bloquean las pantallas compartidas en cuadrículas rígidas o mosaicos de flujo único [S2, S4]. Esto genera fricción cuando los desarrolladores necesitan mantener visible el código del compañero mientras conservan su propio espacio de trabajo [2].
Petal es una herramienta de colaboración de código abierto diseñada para resolver esto tratando el contenido compartido como elementos nativos del escritorio [S1, S4]. Desarrollado por los antiguos fundadores de CoScreen, el proyecto busca ofrecer una alternativa permanente y impulsada por la comunidad a las herramientas propietarias que a menudo se descontinúan tras una adquisición [S4, S7].
Cómo funciona el uso compartido de ventanas nativas
A diferencia del uso compartido de pantalla tradicional, Petal no utiliza una cuadrícula de reunión [S1, S2]. Cuando un usuario comparte una ventana, esta aparece en el escritorio de cada participante como una ventana nativa real y sin bordes [S2, S4].
Estas ventanas son independientes, lo que significa que los usuarios pueden moverlas, redimensionarlas y apilarlas libremente [2]. Esto permite a un desarrollador acoplar el editor compartido de un compañero directamente al lado de su propio IDE local mientras la llamada continúa [2].
Para soportar esto, Petal utiliza flujos H.264 codificados por hardware para cada ventana compartida [2]. Esta arquitectura permite que varios usuarios compartan múltiples ventanas simultáneamente sin las limitaciones de una única pantalla compartida [S1, S2].
Controles interactivos y colaboración
Petal se centra en reducir la sensación de “juego individual” del trabajo remoto mediante interacciones de alta resolución y baja latencia [S1, S3]. Cada participante ve cursores etiquetados para todos los usuarios sobre las ventanas compartidas [S1, S4].
Más allá de la visualización, la herramienta incluye varios mecanismos interactivos:
- Control remoto: Los usuarios pueden ceder el control de una ventana compartida, permitiendo a los compañeros escribir, desplazarse y hacer clic como si la ventana fuera suya [S1, S2].
- Telepunteros y dibujo: Los usuarios pueden esbozar directamente sobre una ventana compartida, con trazos que se desvanecen automáticamente después de diez segundos [2].
- Salas persistentes: Los equipos pueden crear salas con nombre, como “eng-sync”, permitiendo a los miembros unirse con un clic en lugar de intercambiar enlaces de reunión [S1, S4].
El control remoto requiere permisos de Accesibilidad en la máquina anfitriona [2]. Por defecto, el sistema solicita al anfitrión su consentimiento cada vez que se pide el control, aunque esto puede ajustarse en la configuración [2].
Implementación y control de datos
Dado que Petal es de código abierto, los equipos pueden decidir cómo manejan su tráfico multimedia e infraestructura [S1, S4]. La herramienta está construida sobre la infraestructura de video LiveKit [S1, S3].
Los usuarios tienen tres opciones principales de implementación:
- Petal Cloud: Una opción sin configuración que utiliza la infraestructura LiveKit alojada [1].
- Autoalojado: Los equipos pueden apuntar la aplicación a su propio servidor LiveKit usando un único archivo docker-compose, asegurando que el tráfico permanezca dentro de su propia red [S1, S4].
- Fork y compilación: Los desarrolladores pueden bifurcar el repositorio de GitHub para personalizar la aplicación o aportar su propia pila tecnológica [1].
Soporte de plataformas actual y estado
Petal se encuentra actualmente en un estado pre-1.0, con niveles de estabilidad variables entre los sistemas operativos [2]. El cliente macOS es el más maduro, estando firmado y notariado para macOS 13 (Ventura) o posterior [2].
El soporte para Windows está disponible pero se considera temprano y en desarrollo activo [2]. El instalador de Windows actualmente no está firmado, lo que puede generar advertencias de SmartScreen [2]. El soporte para Linux está planeado para futuras versiones [S1, S4].
Si buscas una forma de bajo roce para programar en pareja, puedes explorar el código fuente o descargar el cliente en petal.live [S1, S4].
Fuentes
- Petal — Open Source Pair Programming
- Show HN: Petal, open-source CoScreen/ScreenHero finally free
- Show HN: Petal, open-source CoScreen/ScreenHero finally free | Hacker News
- GitHub - kiruna-labs/petal: Petal: low-latency, multi-window …
- Show HN: Petal, open-source CoScreen/ScreenHero finally free
- GitHub - shreyagarwal72/petal
- Petal - EpicSaaS
- We’re back. Meet Petal, an open source collaboration app … - LinkedIn