If you installed OpenScreen the way its README told you to, with brew install --cask siddharthvaddem/openscreen/openscreen, your copy is on 1.5.0 and it is staying there. The cask still pins version "1.5.0". The repository it downloads from was archived in June. It sets auto_updates false, so brew upgrade keeps reporting that you’re current, and by its own standards it isn’t wrong.

The project didn’t die. It moved, and nothing in your install path knows that. There’s no forwarding address in a cask file. Package managers point at URLs, not at intentions.

Two repositories, one name

siddharthvaddem/openscreen is the original: an Electron screen recorder pitched as a free alternative to Screen Studio’s $29/month, MIT-licensed, 39,885 stars and 3,041 forks at the point it went read-only. The author’s own banner described it as a side project that blew up and said plainly that it wasn’t production grade. It ends at v1.5.0, and the last push to it was 17 June 2026.

getopenscreen/openscreen is the continuation, carrying the original author’s approval and the same licence. Its README is direct about the lineage: Siddharth Vaddem created the project and archived the original after v1.5.0, and development moved here with his approval, under the same name and the same MIT license. The repo was created on 14 March 2026, three months before the archive, so someone had been living in this codebase a while before it needed rescuing.

I got this one wrong at first. The version of the fork’s README I read had every download link pointing at EtienneLescot/openscreen, a personal account, directly underneath a paragraph telling readers to download only from the official links in this repository. I filed it as a name-squat riding a dead project’s traffic. It was a rename that GitHub had redirected and the README hadn’t caught up with. It has since caught up: the links now point at the getopenscreen organisation, the Microsoft Store, and getopenscreen.com.

What the thing actually does

Point it at a window or a whole display and it records, optionally with microphone and system audio and a draggable webcam overlay. The editing pass afterwards is where the category lives: zooms that follow your cursor or that you place by hand with your own depth and easing, a synthetic cursor with smoothing and click effects, a background that can be a wallpaper or a gradient or your own image, motion blur, per-segment speed, plus text and arrow annotations. Captions are transcribed on-device through whisper.cpp with nothing uploaded. Export is MP4 or GIF at several aspect ratios, and the interface ships in 13 languages including both Chinese scripts.

The continuation has added an editable transcript you can cut video from by deleting words, and an edit-by-chat agent that applies real undoable timeline operations. That one needs your own API key and does nothing until you connect a provider.

Installing the current build means the Microsoft Store on Windows, or a .dmg, .deb, .rpm, .pacman or AppImage from the fork’s releases page. There’s a Nix flake too:

nix run github:getopenscreen/openscreen

The honest objection

Most continuation forks are a CI fix, a dependency bump and a new name in package.json, so the fair question is whether this one does anything the archived repo didn’t. The language breakdown answers it faster than the commit log does. The original was TypeScript at 1.37 MB, C++ at 150 KB, Swift at 29 KB and no Rust at all. The fork today is TypeScript at 5.07 MB and Rust at 1.56 MB, plus separate Metal, WGSL and HLSL shader sources at roughly 29 KB, 28 KB and 26 KB.

The part that earns the fork

The original rendered its preview in the browser layer through PixiJS and produced the exported file some other way. Two renderers, one you watch and one you ship, is a bug generator: what you saw when you placed the zoom isn’t what lands in the MP4.

The continuation put both on a single native compositor written from scratch in Rust. On Windows the path is:

demux → decode D3D11VA (2 sources, NV12 on the GPU) → HLSL compositor
      → RGB→NV12 (2 RTV passes) → encode h264_amf (GPU→GPU) → mux MP4

One ID3D11Device, no CPU readback between stages. Preview and export consume the same scene description, so there’s no second renderer available to drift. The maintainer’s bench puts the all-effects configuration at roughly 126 fps at 1080p60, against 79 for the WebCodecs and WebGPU prototype and 48–68 for the wgpu one. That engine was Direct3D 11 only until 1.8.0; it now has Metal and a wgpu/WGSL Linux backend behind the same contract, plus a CPU fallback that announces itself in the UI instead of quietly degrading.

The internal architecture documents are written in French, which is the most human thing in the repository.

What actually ships, and how often

Twenty-one stable tags exist on the fork, but twelve were backfilled on 18 June to reconstruct the original history — you can see it in the timestamps, where v1.1.0 through v1.4.0 all carry the same afternoon. The real cadence starts after that: v1.6.0 on 5 July, v1.7.0 on 19 July, v1.8.0 and v1.9.0 a day apart in early August, running through to v1.9.6 on 18 August, with twenty-five release candidates in between. macOS builds have been Developer ID signed and notarised since 1.9.0, and Linux gained a PipeWire portal capture path.

There’s also a headless CLI now, explicitly aimed at scripts and coding agents:

# record 30 seconds with no visible window, write a project file
openscreen record --duration 30 --project demo.openscreen --json

# render it through the same export pipeline the GUI uses
openscreen export demo.openscreen -o demo.mp4 --json

Caveats, honestly

Homebrew users are stranded and will never be told. The tap still resolves, still installs, and still pins 1.5.0. The fork dropped Homebrew for direct .dmg downloads, so the upgrade path runs through noticing this article or one like it.

The Windows .exe isn’t code-signed. The README admits it and explains the SmartScreen warning honestly — “verifying the signature isn’t an option here, there is nothing to verify” — which is more than most projects manage. SmartScreen grants trust per file, so every unsigned build starts from zero no matter how many people installed the last one. The Store package is signed during certification and is the safer path.

Release notes are inconsistent rather than absent. The two most recent stable tags are bare compare links: v1.9.6’s body is 87 characters and v1.9.5’s is 92. But v1.8.0 ran to nearly 14,000 characters and v1.9.1 to over 5,000, and the current v1.10.0 candidates are substantive again. So the discipline exists and lapses, which is a different problem from never having it — though for a project that ships breaking changes to its own .openscreen project format, the lapses are the releases you most want documented.

Every performance number comes from one laptop. The roadmap says so itself: the measurements are from a single passive-iGPU machine chosen as the weak case, and nothing has been measured on a discrete GPU or Intel QSV. The 126 fps figure is a floor on unusual hardware, not a typical result.

One maintainer, and an unusually agent-heavy workflow. AGENTS.md runs to 23 KB, and .harness/ holds an orchestrator that routes tasks to specialist sub-agents. Around 1,168 commits have landed since 17 June under a single name. The quality gates are real, but so is the bus factor.

Skip it if you need stability. The README warns that the project format and the CLI can break between versions. If you’re wiring OpenScreen into a documentation pipeline, pin a version and read the diffs yourself.

Where the two repos sit

siddharthvaddem/openscreen (archived)getopenscreen/openscreen
Best atBeing finished. 1.5.0 works, installs via brew, and will never change under youShipping. Native capture on all three platforms, GPU export, a CLI, transcript editing
Falls down on49 open issues nobody can merge against, and no fix is comingBarely any users testing it: 480 downloads on the latest Apple Silicon build, and patchy changelogs

39,885 stars didn’t transfer. 1,878 did, about 4.7% of the audience following the code they claimed to care about. What transferred was the licence, and it turned out to be the only inheritable part of a popular repository. Everything else on that page was attention, and attention doesn’t fork.