TLDR
Elgato Camera Hub has no export, no backup, and no way to recover scripts once they’re gone. I built PrompterKit to fix this. It’s a CLI and local web GUI that fills every gap. Free and open source. https://prompterkit.app/
Last Friday during a shoot, I opened Camera Hub and my Prompter scripts were gone. All of them.
I don’t still know exactly what happened. A sync hiccup, a setting I touched, a cosmic ray? It doesn’t matter. What matters is that there was no backup, no export, no recovery path. Camera Hub stores everything in opaque JSON with no tools to touch it. The scripts just weren’t there anymore.
I love my Elgato Prompter, but that was the tipping point. It wasn’t the first time the Camera Hub software had frustrated me.
The real workflow problem
Here’s how I actually use the Elgato Prompter: I write a script, load it in, read it on camera. Two or three takes in, I’ve changed some of the wording. Lines that sounded good in my head land flat when spoken aloud. If I stumble more than once, I fix it on the fly. By take three the script on the teleprompter is the actual script, not the version I started with.
Then I want to export that final version. For YouTube, for transcripts, for reference. And by default there’s just no way to do it. Camera Hub gives you a text box to type into and absolutely nothing else. What goes in doesn’t come back out. Boo!
I’d been living with this since I bought the Prompter. Friday made it non-negotiable.
What I found – and what was missing
I went looking on GitHub. Found elgato_prompter_text_importer by spieldbergo. It’s a solid start for getting scripts in, MIT licensed. But import-only wasn’t enough. I needed the full picture: export, rename, reorder, backup, restore.
So I rebuilt it from the ground up and added everything Camera Hub should have shipped with.
Introducing PrompterKit
PrompterKit is a CLI + local web GUI for managing your Elgato Prompter script library. It reads and writes the same files Camera Hub uses, so there’s no sync step and no format conversion.
https://github.com/snapsynapse/prompter-kit

What it does
🔁 Import and export
Load any .txt or .md file as a Prompter script. Export any script (or your entire library!) back to plain text. One command, done.
python3 prompter_kit.py import script.md --name "Episode 42 Intro"
python3 prompter_kit.py export --name "Episode 42 Intro" --output ep42.txt
📦 Backup and restore Zip your entire script library – scripts plus settings – into a timestamped archive. Restore selectively or wholesale.
python3 prompter_kit.py backup --output backup.zip
python3 prompter_kit.py restore backup.zip --merge
✏️ Rename, reorder, delete Camera Hub shows scripts in the order you added them with no way to rearrange. PrompterKit lets you rename, delete, and reindex in whatever order you want.
python3 prompter_kit.py rename "Draft v1" "Final Cut"
python3 prompter_kit.py reindex "Intro" "Act One" "Act Two" "Outro"
🌐 Web GUI
The CLI is fast but I didn’t want to live in it. Running python3 prompter_kit_gui.py opens a local web app in your browser with drag-and-drop import, one-click export, and full library management. No server, no account, no cloud. Just Flask running on localhost.
Tech stack
- Python 3.10+
- Flask for the GUI (optional, CLI works standalone)
- No database. PrompterKit reads and writes Camera Hub’s own files directly
One non-obvious decision: Camera Hub has to be closed before any write operation, or it silently overwrites your changes when it exits. PrompterKithandles this with a –restart flag that quits Camera Hub, makes the change, and relaunches it. The GUI surfaces this too.
Try it
git clone https://github.com/snapsynapse/prompter-kit
cd prompter-kit
pip install flask # GUI only
python3 prompter_kit_gui.py
Or use the CLI directly. No install required beyond Python 3.10.
Full docs at https://prompterkit.app/
One thing
As you may know, we’re in a moment in history where you can just build the thing that’s been annoying you for two years. Last weekend I went from frustrated to shipping in a fewhours. I love that! Don’t you?
If you use an Elgato Prompter, or if you’ve ever been burned by any app storing your data in a format you can’t touch, I’d love to hear how you handle it. What’s your current workaround for getting text out of tools that trap it?