Skip to content
GablasPublic

About

Show what you mean. A native Mac screen and voice recorder with on-device transcription.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Repro. Screen + voice. Transcribed on your Mac. An illustrated recording window, filmstrip, and timestamped transcript.

Build & install · How to use it · Privacy · Troubleshooting

macOS 26 or newer Apple silicon Swift 6.2 or newer MIT license

Repro is a small macOS menu bar app for showing an agent what you mean. Hold a shortcut, walk through the screen, and say what needs to change. Repro records your screen and microphone, transcribes your narration locally, then copies the video and timestamped transcript together.

Use it for a layout that feels wrong, a bug that's easier to reproduce than describe, or a walkthrough with several small changes. You get the visual context and the explanation in one handoff.

Native SwiftUI. On-device transcription. No account, API key, or subscription.

Important

Build Repro yourself. The app is unsigned and not notarized. This repository distributes source code, not a signed installer. The build below needs no signing certificate or paid developer membership.

A little app, one clear job

Repro's menu with the record button, a completed review, and Settings.
Record. Review. Copy.
A small menu bar panel, ready when you need it.
Repro settings for the recording shortcut, automatic paste, and local transcription language.
Your shortcut. Your spoken language.
Automatic paste is optional. Transcription stays local.

Images render the actual application views with sample review data. They contain no personal recordings.

Build and install

1. Get the prerequisites

  • An Apple-silicon Mac running macOS Tahoe 26 or later.
  • Xcode 26 or later, including Swift 6.2+ and the macOS 26+ SDK. Get it from the Mac App Store or Apple Developer Downloads. Choose a version compatible with your macOS version.
  • Internet for the initial Swift package download and, when needed, the first download of a transcription language.

Open Xcode once and let it finish installing its required components. Repro uses Swift Package Manager; you don't need Node.js, npm, Homebrew, or a paid developer account.

2. Build the app

Open Terminal and run:

git clone https://github.com/Gablas/repro.git
cd repro
./native/scripts/build-app.sh

The script downloads the keyboard-shortcut dependency, compiles a release build, and creates release/Repro.app. It does not sign, install, or launch the app, and it does not run the test suite.

3. Install your build

open release

Drag Repro.app into Applications, then open it from there. Look for the recording-circle icon in the macOS menu bar. Repro doesn't need an open Dock window.

Keep one installed copy so macOS permissions apply to the app you actually launch. If macOS blocks opening your locally built copy, see Opening the app.

4. Grant permissions

Open Repro's menu and follow the setup prompts:

Permission Why it is needed
Screen Recording Capture your entire primary display.
Microphone Record your narration alongside the video.
Accessibility Paste the files back into your previous app. Optional when automatic paste is off.

After granting Screen Recording, quit and reopen Repro if prompted. In Settings, choose your spoken language and set a hold-to-record shortcut.

Make your first review

  1. Go to the screen you want to explain. Open the page or app and put it in the state you want to show.
  2. Hold your recording shortcut. Narrate the issue while you point, scroll, or click. You can also use Record screen review in the menu bar and click Stop when finished.
  3. Release the shortcut. The recording saves immediately. Repro transcribes in the background, so you can keep working or start another recording.
  4. Wait for the review to become ready. First use of a language may require a model download. Later transcription works offline while that language's model is installed.
  5. Paste into your agent. With automatic paste enabled, Repro attempts to return the MP4 and TXT to the app where recording started. Otherwise, switch to your destination and press ⌘V.

The destination needs to accept file attachments. Some apps don't accept two files through paste; use Show in Finder and attach them manually. Video support depends on the agent or chat app you use.

What you get

Each recording has an MP4 and a neighboring plain-text transcript in ~/Movies/Repro. Transcript entries contain short spans with video timestamps:

[00:01.2] The button shifts when
[00:02.8] I open the sidebar.
[00:05.1] Keep it aligned with
[00:06.4] the search field above.

From a review's ⋯ menu, you can copy both files, copy only the transcript text, or reveal the video in Finder. Failed transcriptions have a Retry transcript action. Retrying uses the language currently selected in Settings.

What stays on your Mac

Your recordings and transcription stay local. Apple's SpeechTranscriber and SpeechAnalyzer process the audio on device. Repro has no cloud transcription fallback or media-upload client.

  • macOS downloads and manages speech-language models. Initial installation and later model updates can use the network.
  • Repro records the entire primary display and microphone. It does not capture system audio, offer a window picker, or record other displays.
  • The original MP4 and completed TXT stay in ~/Movies/Repro. A temporary audio extract is removed after transcription.
  • Recent-review metadata is stored in the app's local preferences. Unfinished transcriptions resume from the saved video when Repro reopens.
  • Copying or pasting puts the files on the system clipboard. Attaching them to another app shares them with that destination under its own rules.

See Apple's SpeechAnalyzer introduction for the on-device engine and model-download behavior.

Updates

Quit Repro before replacing the installed copy. From your checkout:

git pull --ff-only
./native/scripts/build-app.sh
open release

Replace the copy in Applications with the new build, then reopen it. Your recordings remain in Movies/Repro. Because these are unsigned local builds, macOS may ask you to grant permissions again.

Troubleshooting

The build uses the wrong Xcode

Check the selected developer directory:

xcode-select -p

If it points to Command Line Tools or an older Xcode, select the Xcode you installed. For the standard location:

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

Open Xcode to finish any first-launch setup, then build again. A Swift tools-version error or missing SpeechTranscriber symbol usually means the selected toolchain or SDK is too old.

Opening the app

Repro has no Developer ID signature or notarization. Build it from this checkout and install your own output. If macOS blocks that copy, review the app-specific message under System Settings → Privacy & Security and use Open Anyway if offered. You do not need to disable Gatekeeper or change system-wide security settings.

Permissions are enabled, but recording still fails

Quit other Repro copies and launch the one in Applications. In System Settings → Privacy & Security, check Screen Recording and Microphone for that copy, then quit and reopen it. Rebuilding can invalidate permission grants for a previous executable.

Local transcription fails or stays at preparation

The first model installation needs internet. Let the download finish, then retry the saved review. Choose a supported spoken language in Settings; English is the default. Recognition uses that language, so choose it before recording. Silence or a muted microphone cannot produce a transcript, but the video stays saved.

The files weren't pasted

Enable automatic paste and grant Accessibility, or use Copy video + transcript and paste manually. The original destination must still be open and accept file attachments. Use Finder to attach the MP4 and TXT individually if necessary.

Development

The application lives in native/Sources/Repro. SwiftUI provides the interface, ScreenCaptureKit records the display and microphone, and AVFoundation prepares audio for Apple's local speech engine. KeyboardShortcuts handles the global recording shortcut.

# Build the application
./native/scripts/build-app.sh

# Run the Swift tests when you want to
cd native
swift test --disable-sandbox

The documentation images can be regenerated with ./docs/render.sh after building. It renders the shipping views with isolated sample data.

For a bug report, open an issue with your macOS version, Mac model, spoken language, and what happened. Don't include private recordings unless you intend to share them publicly.

License

MIT. Made by Gabriel Stenbäck.

About

Show what you mean. A native Mac screen and voice recorder with on-device transcription.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages