Soredemo watches your repo, notices a release, and asks for one recording. The video, the written steps and the launch post are derived from what actually happened — and nothing is posted until you approve it.
Two emails, ever: one when the free recorder ships, one when the release loop does. No trial, no demo call, no drip.
Window capture now survives a display change mid-recording.
cites 3 observations · review pending · your edit is never regenerated
Cursor is not baked in — it is drawn at composite timeDelete a word from the transcript and the video is cutAn agent may prepare a post. Only a person may send one
Illustration of the data model, not a screenshot
Not released yet. Soredemo is in active development and there is no download. The waitlist gets one email the day the recorder ships.
The gap
Shipping got faster. Announcing didn’t.
Coding agents made shipping three to five times faster. Marketing did not.
The real competitor is the demo that never got made. It has roughly 90% market share and no product team.
The output
The part after you stop recording
A recorder hands you a file and stops. That gap — file in hand, nothing posted — is where most demos die.
recording stops here · what happens next
A screen recorder
6 steps, all yours
export
crop 9:16
crop 1:1
write the steps
write the post
post it
vs
Soredemo
1 step, and it is review
derive
review
approve
post
Both bars are steps, not seconds. Three of the four on the right are the machine’s; the one that is yours is the one that decides whether anything goes out at all.
Five artefacts — master.mp4, reel.gif, poster.png, steps.md, post.txt — planned from one graph revision, so they cannot disagree with each other.
The loop
Eight steps, one recording
This is the whole product. Everything else in the feature list exists to make one of these eight steps trustworthy.
1
Watch
Polls your repo. No webhook, no server.
2
Propose
A card you can dismiss. It never opens the recorder itself.
3
Record
Screen, audio, pointer, clicks, and the control under each click — one clock.
4
Derive
Evidence becomes a graph, then framing, then a storyboard.
5
Review
Every value shows its origin, its review state, and why.
6
Pack
Five artefacts from one graph revision.
7
Approve
Per post, bound to the content. No off switch.
8
Publish
X, Threads, Instagram.
A GitHub release is evidence, not a trigger. Modelling it that way is why the post cites real PR titles instead of guessing from the video.
The thesis
One recording is evidence. Everything else is derived from it.
Most features in this product exist to make derivation trustworthy, not to make editing powerful. That is why the feature list looks nothing like a screen recorder’s.
Evidence and derivation
The recording is the only thing treated as fact. Every other value — a zoom target, a beat boundary, a sentence in the launch post — is derived, and carries its origin, its review state, and the evidence it came from.
The producer-value rule
An authored override always wins over a derived value, and is never silently replaced. Re-derive as often as you like: your sentence stays your sentence.
Every rejection names its reason
Automatic framing takes its zoom target from the accessibility control under each click. When the control doesn’t pass the gates, it falls back to the pointer and says which gate fired.
confidence-absent
confidence-low
observation-stale
does-not-contain-click
degenerate-rect
partly-offscreen
too-large
on-truncation-boundary
Each one has a name you can read in the review panel, on the beat it fired for. Not silence, and not a shrug.
beat-03.step-textauthored · approved
Drag the window to the second display. The recording keeps going; the geometry revision changes underneath it.
origin
authored — you wrote this
review
approved
derived
superseded, kept for diff
on regen
untouched
Illustration of the data model, not a screenshot.
The edit
Every dial reports where its value came from
An editor decides how the result looks. This one decides how it was framed — and says, underneath, what framed it and whether anyone has signed it off.
launch-post.movReviewExport
Storyboard — beat 03
TakesBeatsExport
RecordAXButton {412,176,96,32}
beat 03AXRow {412,356,468,44}
Illustration of the data model, not a screenshot.
The difference
Where this stops being a screen recorder
Auto-zoom, native macOS capture, text-based editing — those are table stakes in 2026. These are not.
The moat
Every value traces back to the recording
This is the part that is hard to copy, and it is what makes “the agent reviews rather than invents” true rather than claimed. A sentence in the launch post is not a guess about the video — it is a node with parents.
evidenceclick @ 00:04.120
actionAXButton “Record”
beatbeat-03
outputlaunch-post.hook
And the chain runs one way. Rewrite that last line yourself and it becomes authored — re-derive as often as you like, your sentence stays your sentence.
Aspect
Re-framed, not cropped
Each aspect is solved against its own coverage. The subject stays centred; the frame does the moving.
16:9
9:16
1:1
Reels needs 9:16 and 5–90 s. The compiler says so rather than exporting something that will not appear.
The trigger
It starts when you ship
soredemo
v0.4.0 shipped 3 user-visible changes. Record a demo?
RecordNot now
Polled locally. No webhook, no server. Dismissable, and it never opens the recorder on its own.
The output
Five artefacts, one revision
master.mp4
reel.gif
poster.png
steps.md
post.txt
All planned from the same graph revision, so they cannot disagree with each other.
The gate
An agent may prepare a post. Only a person may send one.
Per post, per platform, bound to the content hash. X charges $0.20 for a post with a link, so the cost is shown before you approve and the spend is capped.
no auto-publish
no “approve all”
no CI bypass
An assessment of the category made by the person building this. Judge it against the tools you already use.
The platform
It is a Mac app.
Swift 6 and SwiftUI, first-party frameworks throughout. No Electron, no bundled browser engine, no web view pretending to be a window.
MacBook Pro, Apple Silicon. The app runs here and nowhere else.
Built on
ScreenCaptureKit
AVFoundation
Metal
Core Image
Core Graphics
SpeechAnalyzer
Foundation Models
TextKit 2
Swift Testing
SwiftUI
All first-party Apple frameworks. Nothing on that list is a dependency you would have to trust separately.
System
macOS 26 or later
Chip
Apple Silicon
Capture
Up to 4K, 30 or 60 fps
Export
MP4 · MOV ProRes · GIF · P3
Account
None
Price
Recorder free · the loop is not priced yet
Privacy
It runs on your machine
Recording, derivation, transcription and export are all local. Two steps reach the network, and both are named here rather than left for you to find out.
4 stay on your machine · 2 leave it, and only these
Recording — stays on disk
Framing and derivation — on device
Transcription — on device, no model to download
Rendering and export — on device, on the GPU
Reading your repo — a request to GitHub, token in your Keychain
Publishing a post — only after you approve that exact post
This describes the product. What this websitecollects — one email address, no cookies, no analytics — is in the Privacy Policy.
Who it’s for
Who this is for
DevRel at developer-tool companies
Release coverage is literally the job, and the budget already exists. Shortest path from problem to purchase.
Seed and Series A SaaS with no marketing team
The engineer who shipped it is the one posting about it. This has to be near-zero effort or it gets dropped in week three.
Open-source maintainers
Highest enthusiasm about the problem. Lowest willingness to pay, and that is fine — credibility travels.
Not for anyone who just wants a nicer screen recorder. There are good ones, and they are free.
FAQ
Questions worth asking
Is there anything to download?
Not yet. Soredemo is in active development. The free recorder ships first — record, automatic framing, transcript editing, export — and the release loop follows. Join the waitlist and you get one email the day each lands.
What does it run on?
macOS on Apple Silicon. Swift 6 and SwiftUI, native frameworks throughout: ScreenCaptureKit for capture, Metal for rendering, on-device speech for the transcript. No Electron, no bundled browser engine.
Does anything leave my machine?
Only what you approve. Recording, derivation, transcription and export all run locally. GitHub polling is a request from your machine to GitHub using a token in your Keychain. Publishing is the one outbound step, and it needs a person to press the button.
Is it open source?
Not today. The repository is private and no licence has been chosen, so no licence is granted. If that changes, the waitlist hears first.
Will it edit videos I already have?
No. The recording is evidence. Framing depends on the pointer path, the click positions and the accessibility data captured alongside the frames, and an imported video has none of that.
Will it write the post for me?
It drafts one from facts the graph already established, and marks which evidence each claim came from. It does not supply facts it lacks. Then you edit it, and your edit is never silently regenerated.
Why the name?
それでも — soredemo, “even so.” You shipped it. Now announce it.
Waitlist
Hear when there’s something to use
One email when the free recorder ships. One when the release loop does. Nothing else.
Two emails, ever: one when the free recorder ships, one when the release loop does. No trial, no demo call, no drip.