The annoying part of remote pair programming usually isn’t image quality. It’s that the shared screen is stuck inside a meeting tile. You want to drag your teammate’s editor next to your own IDE and compare, and Zoom or Google Meet simply won’t let you. Tools that got this right, like CoScreen and Screenhero, were either pricey or have quietly disappeared.
Petal is a new open-source take on the idea that showed up on Hacker News today: low-latency, multi-window screen sharing with remote mouse and keyboard control, where every shared window lands on your desktop as a real native window. You can move it, stack it and park it right beside your editor. (Details checked on October 15, 2026.)
What Petal is
Petal is open-sourced by Kiruna Labs. The repo is kiruna-labs/petal, which had about 98 stars when I wrote this (it’s brand new, so that number will move fast), and it’s licensed under Apache-2.0. The website is petal.live, the docs live at petal.live/docs, and the launch thread is Show HN: open-source CoScreen/Screenhero, finally free.
The media layer runs on LiveKit, an open-source real-time video and audio stack, which gives you three ways to run it:
- Use Petal Cloud: download the app and start a session, with nothing to operate yourself.
- Self-host LiveKit with docker-compose so the media traffic stays on your own machines.
- Fork the whole stack and customize it as deeply as you like.
The desktop clients focus on macOS (signed and notarized, fine for daily use) and Windows (early: basic sharing works, but the platform is still incomplete and the installer isn’t Authenticode-signed yet, so SmartScreen may complain). There’s also a browser client at meet.petal.live, so the other person can join without installing anything.
What makes it different
The README is clear that this isn’t “a screen embedded in a meeting app”. Here’s what you get:
- Real windows, not tiles: each shared window becomes its own desktop window you can move and resize.
- Several windows at once: share from a floating bar, a picker or a global hotkey, with each stream hardware-encoded in H.264 on its own.
- Cursors and quick sketches: everyone’s cursor is labeled, and you can scribble on a shared window; the ink fades after about ten seconds.
- Remote control: hand control to the other person, and their clicks and keystrokes are injected while trying not to steal your focus. By default it asks for consent every time (you can switch to auto-allow or turn it off). It needs the Accessibility permission.
- Persistent rooms: named rooms like
eng-syncyou join with one click, pluspetal://join/<code>invite links. - Optional AI chat about a window: open a Gemini session on a shared window (off by default; bring your own key or use the hosted option). It can see the window and hear the room, but any action on the window needs the sharer’s approval.
It needs macOS 13 or later. After installing, the setup guide walks you through Screen Recording and Microphone permissions (the camera is optional, and Accessibility is only needed for remote control).
How to run it
For most people: download the macOS DMG or the Windows installer from the website and pick Cloud.
To self-host, you use the same desktop app and point it at your own LiveKit server. Build and self-hosting details are in docs/SELF_HOSTING.md in the repo. Building from source is pickier (the README asks for a recent Xcode and macOS SDK), so stick with the official builds for everyday use.
The README is honest about where things stand: it’s pre-1.0. macOS is the most mature, remote control is still early, and Windows clearly lags in features and stability. The author also said on HN that LiveKit was chosen to ship quickly, latency isn’t yet at the level of the old CoScreen, and a dedicated low-latency mode is on the roadmap.
What I like
- It solves a real pairing pain point: being able to drag the shared window next to your own workspace.
- Apache-2.0 plus self-hosting gives compliance-minded teams a way out of someone else’s cloud.
- The notarized macOS app feels polished, and the browser client means your partner doesn’t have to install anything.
- Remote control asks for confirmation by default, and there’s a separate trust-model doc. That’s a more honest stance than “one click and I own your machine”.
- It complements your meeting app instead of replacing it: no full-screen sharing, no cramming your IDE into a 16-person grid.
What’s missing
- It’s very new: few stars, APIs will change, and depending on it for production work is your own risk.
- Windows support is early and unsigned, so it may simply be blocked on locked-down corporate machines.
- Even the author doesn’t claim CoScreen-level latency yet; test it on weak or intercontinental connections before committing.
- Remote control and some advanced features are still early, so don’t treat it as a mature remote-support tool.
- The cloud option is convenient, but your audio and video go through their infrastructure. For sensitive code, self-host.
Who it’s for
- Small, mostly-Mac teams doing short pairing sessions with two to five people, design walkthroughs or shared debugging.
- Anyone who hates meeting tiles and misses the feel of Screenhero or CoScreen.
- People willing to self-host LiveKit and keep screen traffic on their own network.
If you only need to glance at someone’s screen now and then, your OS’s built-in sharing or a regular meeting app is enough. If you pair every week, Petal is worth an afternoon with the DMG. Just remember it’s still growing up.
Related reading
Links
- Repo: https://github.com/kiruna-labs/petal
- Website: https://petal.live
- Docs: https://petal.live/docs/
- Show HN: https://news.ycombinator.com/item?id=50092470


