Skip to content
Soredemo

In development

You shipped it.
Now announce it.

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.

macOS 26 or later · Apple Silicon · no account

See how the loop works

AXButton{412,176,96,32}AXRow{412,356,468,44}gate ▸{812,676,180,36}
16:9

Windowcapturebasicallysurvivesadisplaychange

  1. Hook
  2. Product-proof
  3. Call to action
  • master.mp4H.264 · P3
  • reel.gif9:16
  • poster.pngsocial card
  • steps.mdfrom what was clicked
  • post.txtper platform

post.txt · awaiting approval

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.mov

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.

  1. evidenceclick @ 00:04.120
  2. actionAXButton “Record”
  3. beatbeat-03
  4. 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.

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.