With CoScreen 5.0, you can now share your windows from multiple displays at the same time, a long standing request by our most avid users and impossible in other apps. It also has a lightning-fast, Rust-based window compositing, scaling, and streaming engine now.
CoScreen was always meant to be different so that you and your team can share your screens simultaneously and multi-directionally, and to be able to control what is being shared. We saw it as a natural extension and closely coupled with your OS — instant, fast, and seamless. A better way to pair program, debug tough incidents, or jam on great ideas by sharing multi-modal information like code, commands, graphs, or logs.
All that made a lot of sense conceptually but to be frank, it was hard to get it right. Now a part of Datadog and with major parts of our app rewritten in Rust, we feel we’re closer than ever.
Here’s what pair programmers liked about CoScreen, so we made it even better: - High definition code sharing: Windows are video-streamed in real-time at their native resolution whenever possible. You never have to search for your IDE anymore or be anxious to share the wrong window. - Multi-directional collaboration: You can share, while Alice shares, while Bob shares. Side-by-side, across multiple displays. With built-in crisp audio and video chat. - 60FPS+ super smooth mouse pointers. Type, click, and draw on any shared window as if it was your own.
What some of you did NOT like, so we fixed it in CoScreen V5: - CPU utilization and latency have been reduced drastically as various parts of our desktop client are now implemented in Rust, building on crates such as cxx, rust-skia, iced, as well as Neon for our native remote control plugins. - No more accidental clicking into remote windows through the new remote window toggles. - You’re no longer bound by your displays, can share windows from multiple of them at the same time and even move them across displays while sharing without stopping. - You’ll also soon be able to join meetings from your browser from any platform.
CoScreen runs on macOS (x64 and Apple Silicon), Windows, soon also on the web and is currently free. We’re planning to charge for larger teams and enterprise features in the future. Hopefully - finally - we’ll also have a Linux version one day. Tell us if you need it urgently and if you have any other requirements!
Our current plan: https://coscreen.co/pricing (feedback welcome!)
Also, do you have plans to offer a discount or donated version for nonprofits?
Will there be an option for something like floating licenses or being billed after the fact?
So at that point will the application/service only work for 1:1s again?
How specifically would that work, before I go falling in love?
1. My dummy plug "monitor" is to the top right of my main ultra-wide - I do this so it's impossible to get "real" windows into it.
2. I have a scene in OBS that has the display capture of my main desktop as a source, and top/left align it with the window.
3. I set my output to 1920x1080 (1366x768 works too but it's a little too small).
4. I set the resolution of my dummy plug monitor to 1920x1080.
5. I use PowerToys FancyZones to set a 1920x1080 zone on the top left of my ultrawide main monitor that I can snap windows to if I shift+drag windows.
Workflow:
In a meeting I make sure to start OBS, and do a Fullscreen Projector of that scene to my dummy plug monitor. (You can add another scene + display capture of your dummy plug monitor if you want to ensure everything looks identical). I then snap whatever window I want to the 1920x1080 zone. I then share my dummy plug monitor to the meeting.
That way you can share what looks like just a window in your meeting but also have the capability to move other windows into the "view" for others as discussion continues and you need to pull other things up without any awkwardness of re-sharing.
This whole setup would be a shitload easier if I could use some kind of simple "transparent window" app and then share that app to the meeting. Or if Teams had "share a region" functionality.
My side monitors are oriented vertically, so if I put those windows in fullscreen and try to share the whole monitor it doesn't come out correctly proportioned. This also provides a smoother experience without the "flicker" of going fullscreen and back (which can happen when you switch focus between windows).
It's a similar use-case to the one bentcorner described above.
The "share region" solution is admittedly a bit of a hack but it works. Love to find an easier solution to this scenario (especially a way to break out speaker notes into a floating window I could position right under my webcam).
BTW apropos to nothing, I always loved the way the old Spy++ tool let you drag a reticle onto a control hWnd (reminiscent of how "Select an Element" works in Chrome DevTools) - that was a neat mechanism to quickly select a perfectly carved out region of an app without having to draw a box, but alas these days with so many going Electron, and other non-standard presentation surfaces, it wouldn't be as useful anymore.
It's easier to share a portion of the screen, it's what I do in Zoom. A portion of a window would work too.
Not at all hating on this tool. It really looks nice, but I'm just trying to understand if there is a reason to use it instead of / in addition to zoom.
Does this resize the window only locally, like scaling a video? If somebody shared a browser window with me demonstrating a responsive web site, could I drag the bottom right corner of the window around to see how the site reflows?
If pairing is a huge part of your culture at work, the higher resolution screen sharing makes all the difference as you don’t have to squint or strain your eyes while reading code.
Some human issues can't be solved with technology.
Having to share screens occasionally via Zoom feels so slow and clunky by comparison to the single-click ability for multiple people to share and interact with windows concurrently as the conversation flows. Can't imagine going back!
Wish I hadn’t missed Coscreen during the lockdown, and now I don’t really have any need for it, but going to keep the link in my back pocket in case it is ever needed. Looks slick. Sort of like x2x but with a thought out interface…
We are currently working on a headless client that will also work on Linux. We do not have exact dates for a release yet but it (and a full client) is on our roadmap. IT WILL happen. Fingers crossed.
https://flatpak.github.io/xdg-desktop-portal/#gdbus-org.free...
Here is a interview I did of Emil Ivov, the founder of the Jitsi project:
I haven’t delved into what the pricing model is but presumably it won’t be free for 1on1 use forever but I can easily see the business subscription model working perhaps well enough for individuals to have free 1on1.
Like many of us here big appreciation for the write up as opposed to video I think I got a good idea of how it worked and it’s key selling points just from the text and screenshots.
edit: Also, please add Linux support!
How would this fair sharing an IDE and the Unity editor at the same time? Anyone have any experience with that?
Because the sharing approach is video-based, it can stream any kind of content, no matter if text or moving images. That being said, it takes some resources to shovel 4k images with a lot of changes from A to B so it needs some free capacity to run smoothly.
We still aren't using hardware accelerated encoding. It's the last, and biggest contributor to CPU we see after profiling.
Moving to Rust was more of a decision for safety, than for performance, since most of the code we ported to Rust was in C++ already. The good news is we didn't see dramatic differences in performance between C++ and Rust.
Rust has a bunch of highly optimized, fantastic libraries, that helped with testing, profiling, and evaluating hardware acceleration/SIMD.
We will be putting together a blog about our experiences with Rust & C++, that goes into the nitty gritty of the good, the bad, and the ugly of our experiences here.
A great deal of the optimizations came from better profiling, better tooling, and a focus in that area. There is still a ways to go, and we are continuously working on improvements in this area.
Rust has been an incredible tool on reducing the work required to maintain, and change, core components, and we have even been able to have Rust target a static cylib library, and linked it in from a large C++ library.
The really great thing with Rust is it has a very minimal runtime, and integrates well with C++. It's not an all-or-nothing proposition to integrate it into a project. The maturity of the tooling, third party libraries, the build and package system, have been incredibly useful tools.
And now I've seen multiple posts and recommendations in a very short time.
Haven't had the time to test it properly yet, but so far I'm kind of surprised I wasn't recommended or found CoScreen earlier.
Keep up the good work! there needs to be alternatives
That said, why is datadog going this route? Maybe their more recent incident management stuff?
The Audio/Video are using VP9 SVC, and are a pretty typical configuration, using Jitsi as the backend.
The screen sharing is accomplished via a combination of libwebrtc and native Rust.
You can find our current plan here: https://coscreen.co/pricing (feedback welcome!)
I am an avid Synergy user, and what they have accomplished in terms of direct mouse/keyboard input synchronization is very impressive, and I use it on a daily basis.
I can say however, it's very different than CoScreen and what CoScreen seeks to achieve, and is performed in a technically different manner.
CoScreen injects mouse interaction and keyboard presses directly into a window on OSX (if it isn't a weird type of window like an emulator, or something that captures and handles input on a very low level).
Synergy simulates mouse movements/events directly over windows, interfering with the position/location and current state of the remote cursor. It's much more like a remote mouse-driver for a lack of a better comparison.
In many ways this is more performant, simpler, and works on a wider variety of windows right out of the box.
On another level it interferes more with remote users, and prevents multi-player collaboration.
I definitely could see us producing a mode that is LAN focussed and which provides synergy like behavior, but the current remote collaboration is really geared from a UX perspective around multi-player in CoScreen.
I'll take that as a never then... it was "one day" at launch and 3 years later...
IIRC I signed up on a waitlist back then and never heard a peep.
Curious how this compares with Pop (of screenhero lineage)