
MyScript
A desktop teleprompter that listens while you speak and keeps your place in the script, so recording a tutorial stops meaning constant scrolling.
Go, Rust, React, Wails
Recording a tutorial with a script sounds simple until you try it. You are reading, talking, driving the software you are demonstrating, and quietly panicking about which line you were on. Every time you lose your place you stop, scroll, find it again, and start the take over.
MyScript listens while you talk. It transcribes your voice as you go and moves through the script to match, so the right line is always in front of you. You read, it follows.

Where the script comes from
You can connect a Notion account and pull pages in directly, which suits anyone who already drafts there. Or you can write in the editor built into the app, which works in blocks the same way Notion does.

Asking the editor to write
Press slash in the editor and one of the options is Ask AI. It drafts or rewrites where you are standing, comes back as proper headings and lists rather than a wall of text, and then waits. You insert it, ask again, or throw it away. Nothing reaches the script until you say so.

Your provider, your key
OpenAI, OpenRouter and Gemini are built in, and you can add any other endpoint that speaks the same protocol. Each provider keeps its own key and its own model, so switching is a dropdown rather than a reconfiguration.
Keys are encrypted on the machine and never uploaded. They live in a separate local database that is deliberately excluded from the backup, so turning on sync does not quietly ship your credentials to Google Drive.
There is also a switch asking reasoning models to think less. Rewriting one sentence rarely needs a chain of thought, and you are billed for that thinking either way.

Three ways to transcribe, and why that matters
Speech recognition is a trade between accuracy, cost and privacy, and the right answer changes per person. Rather than pick one, MyScript offers three routes.
On this computer runs entirely offline once a model is downloaded, choosing from a catalogue of around seventy across the Whisper, Parakeet, Canary, Sense Voice and Granite families. Because following along live is useless if transcription lags behind speech, the app measures each model on your own hardware and shows its size, languages and real speed before you commit to the download.
A hosted service covers OpenAI, Groq, Gemini or an endpoint of your own, trading that privacy back for accuracy and needing your key. Wit.ai sits in between: free, no key at all, thirty languages, and less accurate than either.
The offline option is the one I cared about most. If you are recording a walkthrough of something confidential, sending the audio to a third party is not a small detail.

Backup to Google Drive
Scripts and settings back up to Google Drive, so the same material is there on another machine. Only the parts worth moving travel; keys stay behind.

The part that fought back
Running speech recognition locally meant reaching out of Go, through Rust, into a C++ library, and that turned out to be most of the work.
Bindings I could rely on did not exist, so I maintain my own. On top of that, calling C from Go means the build stops being simple. Each operating system needs its C dependencies handled differently, and cross-compiling a desktop app that carries a machine learning runtime is considerably harder than shipping one that only makes network calls. Releases fan out to Windows, macOS and five Linux formats, and the app updates itself in place on all of them.
What I took from it: an offline option is worth real effort, and the cost of that effort is almost entirely in the build rather than in the code.
Stack
Go for the application logic, React for the interface, Wails to put the two together as a desktop app on Windows, macOS and Linux. Rust wraps audio capture and the speech runtime. SQLite for local storage, with anything sensitive encrypted in a second database that never syncs. Notion and Google Drive for scripts and backup.
MIT licensed.