Skip to content

Repository files navigation

ScriptSurgeon Ember Cutwave icon

ScriptSurgeon

Your audio. Under the knife.
Edit audio by editing text. Free, open source, and local on Windows.

Product page  ·  Build for Windows  ·  Buy me a coffee

MIT licensed Windows desktop Local processing No account required

ScriptSurgeon product page showing the local transcript editor and five-step workflow

Edit audio by editing text

ScriptSurgeon turns spoken audio into an editable transcript. Remove a word and its matching audio leaves the timeline. Restore it and the sound comes back. Tighten long pauses, review retakes, add a missing line, and export a clean WAV without sending the project to a cloud service.

It is built for people who want the speed of a document editor without giving up control of the actual recording.

Release 2026.08.11

The current source release makes local editing more deliberate and easier to navigate:

  • Review cleanup suggestions before applying them, retain persistent Keep choices, and restore changes safely.
  • Set pacing and exact gap targets, name speakers, and choose among retake candidates.
  • Add local markers and chapters, then export chapter lists and delivery text.
  • Use dark mode and select a full, compact, or minimized timeline view.

Read the v2026.08.11 release notes.

One local workflow

1. Record 2. Transcribe 3. Cut 4. Restore 5. Export
Import media or begin with your microphone. The bundled speech model runs on your machine. Edit transcript words and the audio follows. Bring back words, pauses, retakes, or inserted audio. Preview the assembled edit and save WAV.

Cut the fluff. Keep the story.

Select transcript words or a whole passage, then ripple-cut the matching audio. Correct transcript text without changing sound. Click words to seek, or use the waveform when you need precise timing.

The automatic cleanup tools stay separate so each decision remains understandable:

  • Remove fillers previews filler words only.
  • Shorten gaps changes long pauses only.
  • Remove retakes reviews repeated phrases only.

Nothing changes until you confirm the preview.

ScriptSurgeon editable transcript with pause markers

Nothing is ever really gone

Removed words remain visible and restorable. Retake groups can be brought back. Inserted passages can be removed, restored, edited, or re-recorded. Multi-step undo covers the editing session.

Right-click transcript words, pause markers, retake groups, or inserted passages for focused actions. Shift+F10 opens the same menus from the keyboard.

Add new audio right in place

Start a new project from your microphone, or record a missing passage inside an existing edit. Place the insert at the selected word or current playhead, update its transcript, and re-record it later without losing the edit point.

ScriptSurgeon playback controls and waveform timeline

No cloud. No compromises.

On your device No accounts No API keys You are in control
Projects, transcription, previews, and exports run locally. No sign-up or login is required. Normal use needs no paid service or secret key. Your project files remain on your computer.

The desktop shell protects its local API with a new random session token, accepts only trusted loopback hosts, and keeps diagnostic logs on the machine. See SECURITY.md for the security model and responsible disclosure.

Important

ScriptSurgeon is currently distributed as source. This public release includes reproducible source and build instructions; a public binary release will follow after redistribution review for the bundled FFmpeg runtime and speech model is complete.

Build on Windows

The packaged desktop app uses Edge WebView2. Once built, it runs without a separate Python or Node.js installation.

git clone https://github.com/ArtMoreno/ScriptSurgeon.git
cd ScriptSurgeon
./scripts/build.ps1
./scripts/install.ps1

The first build reuses an existing Systran/faster-whisper-base snapshot when available. Otherwise, it downloads the public model before packaging. No Hugging Face token or API key is required. Use -ModelSource <directory> to choose a specific local snapshot.

Each packaged build includes a SHA-256 payload manifest. Upgrades validate and stage the application, roll back on failure, and leave project data outside the deployable payload.

For an offline rebuild using an existing packaging environment and frontend output:

./scripts/build.ps1 -SkipDependencies -SkipFrontend

Development

Development requires Python 3.11 or 3.12, Node.js 18 or newer, and FFmpeg.

./start.bat

For macOS or Linux development:

./start.sh

Then open http://127.0.0.1:8000.

The development model defaults to base. Set MODEL_SIZE to tiny, small, medium, or large-v3 before launch to use another public model.

Repository map

Path Purpose
frontend/ React, TypeScript, Zustand, and WaveSurfer transcript editor
backend/ FastAPI project storage, transcription, rendering, and export
desktop.py Native Windows WebView2 shell and local process lifecycle
scripts/ Packaging, icon generation, payload verification, and installation
docs/ Dependency-free GitHub Pages product site

Verification

./.venv/Scripts/python.exe -m unittest discover -s backend/tests -v
npm test --prefix frontend
npm run typecheck --prefix frontend
npm run build --prefix frontend

The static product page can be served directly from docs/ with any local web server.

Contributing

Contributions are welcome. Read CONTRIBUTING.md, then open an issue for a bug or product idea. Keep fixtures, screenshots, logs, and diagnostics free of private recordings, real project names, credentials, tokens, and identifying local paths.

Support independent software

If ScriptSurgeon saves you time, buy me a coffee and help fund the next careful cut.

ScriptSurgeon is available under the MIT License.

About

A local-first, transcript-first audio editor for Windows.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages