Pair programming often relies on video conferencing tools that lock shared screens into rigid grids or single-stream tiles [S2, S4]. This creates friction when developers need to keep a partner’s code visible while maintaining their own workspace [2].
Petal is an open-source collaboration tool designed to solve this by treating shared content as native desktop elements [S1, S4]. Developed by former founders of CoScreen, the project aims to provide a permanent, community-driven alternative to proprietary tools that are frequently sunset after acquisition [S4, S7].
How Native Window Sharing Works
Unlike traditional screen sharing, Petal does not use a meeting grid [S1, S2]. When a user shares a window, it appears on every participant’s desktop as a real, borderless native window [S2, S4].
These windows are independent, meaning users can move, resize, and stack them freely [2]. This allows a developer to dock a teammate’s shared editor directly next to their own local IDE while the call continues [2].
To support this, Petal uses hardware-encoded H.264 streams for each window shared [2]. This architecture enables several users to share multiple windows simultaneously without the constraints of a single shared screen [S1, S2].
Interactive Controls and Collaboration
Petal focuses on reducing the “single-player” feel of remote work through high-resolution, low-latency interaction [S1, S3]. Every participant sees labeled cursors for all users over the shared windows [S1, S4].
Beyond viewing, the tool includes several interactive mechanisms:
- Remote Control: Users can hand over control of a shared window, allowing teammates to type, scroll, and click as if the window were their own [S1, S2].
- Telepointers and Drawing: Users can sketch directly on a shared window, with strokes that automatically fade after ten seconds [2].
- Persistent Rooms: Teams can create named rooms, such as “eng-sync,” allowing members to join with one click rather than exchanging meeting links [S1, S4].
Remote control requires Accessibility permissions on the host machine [2]. By default, the system prompts the host for consent each time control is requested, though this can be adjusted in settings [2].
Deployment and Data Control
Because Petal is open source, teams can choose how they handle their media traffic and infrastructure [S1, S4]. The tool is built on LiveKit video infrastructure [S1, S3].
Users have three primary deployment options:
- Petal Cloud: A zero-config option using the hosted LiveKit infrastructure [1].
- Self-Hosted: Teams can point the app at their own LiveKit server using a single docker-compose file, ensuring traffic stays within their own network [S1, S4].
- Fork and Build: Developers can fork the GitHub repository to customize the app or bring their own stack [1].
Current Platform Support and Status
Petal is currently in a pre-1.0 state, with varying levels of stability across operating systems [2]. The macOS client is the most mature, being signed and notarized for macOS 13 (Ventura) or later [2].
Windows support is available but considered early and under active development [2]. The Windows installer is currently unsigned, which may trigger SmartScreen warnings [2]. Support for Linux is planned for future releases [S1, S4].
If you are looking for a low-friction way to pair program, you can explore the source code or download the client at petal.live [S1, S4].
Sources
- 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