Best-in-class UI tests
Playwright-style steps run headless and in a real Mac window, with screenshots. They caught most bugs before a click.
Native Shell (NSH) v0.4.0 · tried on Teleprompter, 4 November 2026
Teleprompter was rebuilt with Native Shell (nsh.dev) as a native Mac app and a web app, from one TypeScript codebase. The core ideas held up. But two silent flaws would have shipped broken apps, and three of the web app's features needed workarounds.
NSH ships about a release a week, so a fixed wait of six months would be too cautious. Watch its release notes for three fixes: text outside the window being drawn, file dialogs for TypeScript apps, and the web build accepting the Mac's permissions.
Until then, a rewrite of a mature, carefully tuned web app has to find its small behaviours again one by one: the controls' show and hide rules, the samples, the script screen. Here that cost more than NSH saved.
Only the first step was work. The web build needed no rewrite: it is the Mac app's source, built for a browser.
The web build differs only in opening files, saving and the samples menu.
The same window size, sample and light mode in each. Tap a picture to see it full size.
Each is a styling or wording change in the app's own code, not a limit of NSH.
Playwright-style steps run headless and in a real Mac window, with screenshots. They caught most bugs before a click.
Native menus, text fields, floating windows, and light or dark with one call.
The parser and the Word converter came over unchanged.
The microphone, MP3 and Word code ran inside one, untouched.
NSH skips text whose layout is out of sight and ignores animated transforms. Long scripts scrolled into blank space. Fixed with a scroll view moved each frame.
Its engine refused a permission format the Mac accepts, with no documentation. Fixed by using bare command names.
Neither was caught by tests. Screenshots and hands-on checks found both.
| Need | What NSH lacks | Workaround |
|---|---|---|
| Open and Save panels | File dialogs (Rust apps only) | AppleScript on the Mac; a page script on the web |
| Microphone and recording | Volume levels and audio capture | A hidden web view |
| Saving long recordings | Files over 8 MiB | Streaming through base64 |
| Word import | Libraries that patch built-ins | mammoth in a hidden web view |
| Samples menu on the web | Native menus in browsers | NSH's own drawn menu |
Each workaround is something to keep in step as NSH changes.
Figures are from the experiment itself: the teleprompter-nsh repository, its NOTES.md, its test runs and NSH's own frame-rate monitor. Release dates are from NSH's GitHub releases. NSH itself: nsh.dev.