You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Differentiate soft and hard returns; add tabbed usage section
Import now treats a blank line as a hard return (new chapter / Camera Hub
scroll-save point) and a single newline as a soft return kept as an embedded
line break inside the chapter, matching how Camera Hub stores text. Export and
edit use the same convention so scripts round-trip. Adds group_into_chapters
and chapters_to_text as the shared source of truth.
Site: Instructions, CLI commands, and Troubleshooting are now one tabbed Usage
section styled like Quick setup; canonical date bumped.
Docs: README script-format, ARCHITECTURE data model, and llms.txt updated;
CHANGELOG 0.6.0.
Co-Authored-By: Claude Opus 4.8 <[email protected]>
@@ -535,7 +577,7 @@ <h2>Everything Camera Hub is missing</h2>
535
577
<divclass="pillar">
536
578
<spanclass="icon" aria-hidden="true">📄</span>
537
579
<h3>Import any text file</h3>
538
-
<p>Drop a .txt or Markdown file onto the page. PrompterKit converts each line into a chapter and registers it with Camera Hub instantly — no copy-paste required.</p>
580
+
<p>Drop a .txt or Markdown file onto the page. PrompterKit groups it into chapters (a blank line starts a new scroll point, a single line break stays inside one) and registers it with Camera Hub instantly. No copy-paste required.</p>
539
581
</div>
540
582
<divclass="pillar">
541
583
<spanclass="icon" aria-hidden="true">🗄️</span>
@@ -625,23 +667,100 @@ <h2>Quick setup</h2>
625
667
</div>
626
668
</section>
627
669
628
-
<sectionid="cli">
670
+
<sectionclass="alt" id="usage">
629
671
<divclass="container">
630
-
<h2>CLI commands (optional)</h2>
631
-
<p>Prefer the terminal? Every action is also a one-liner.</p>
632
-
<ulclass="cmd-list">
633
-
<li><code>import script.txt --name "Episode 42"</code><spanclass="desc">Import a text file as a new script</span></li>
634
-
<li><code>export --list</code><spanclass="desc">See all registered scripts</span></li>
635
-
<li><code>backup</code><spanclass="desc">Archive your whole library to a zip</span></li>
636
-
<li><code>restore backup.zip</code><spanclass="desc">Restore from a backup archive</span></li>
637
-
<li><code>delete "Old Draft"</code><spanclass="desc">Remove a script by name</span></li>
638
-
<li><code>rename "Draft" "Episode 42 Final"</code><spanclass="desc">Rename a script</span></li>
639
-
<li><code>import --restart script.txt --name "Live"</code><spanclass="desc">Auto-stop Camera Hub, import, restart after success or failure</span></li>
<p>Once PrompterKit is installed, here is how to start it and manage your library day to day.</p>
685
+
<olclass="steps">
686
+
<li>
687
+
<div>
688
+
<strong>Quit Camera Hub first</strong>
689
+
PrompterKit and Camera Hub share the same local script files. Close Camera Hub before launching so the two never write at the same time.
690
+
</div>
691
+
</li>
692
+
<li>
693
+
<div>
694
+
<strong>Start the app</strong>
695
+
Activate your environment, then run the GUI. Your browser opens automatically at <code>http://127.0.0.1:5000</code>.
696
+
<pre>source .venv/bin/activate
697
+
python3 prompter_kit_gui.py</pre>
698
+
<pstyle="margin-top:0.5rem">On Windows, activate with <code>.venv\Scripts\activate</code></p>
699
+
</div>
700
+
</li>
701
+
<li>
702
+
<div>
703
+
<strong>Import and organize your scripts</strong>
704
+
Drop in any <code>.txt</code> or Markdown file to add a script, then rename, reorder, or delete entries from the library list. The index stays normalized so Camera Hub reads the library cleanly.
705
+
</div>
706
+
</li>
707
+
<li>
708
+
<div>
709
+
<strong>Back up your library</strong>
710
+
Run a backup to archive every script to a zip. Keep it somewhere safe so a Camera Hub reinstall or a new computer never costs you your scripts.
711
+
</div>
712
+
</li>
713
+
<li>
714
+
<div>
715
+
<strong>Stop the server and reopen Camera Hub</strong>
716
+
When you are done, press <code>Ctrl+C</code> in the terminal to stop PrompterKit, then reopen Camera Hub to record with your updated library.
717
+
</div>
718
+
</li>
719
+
</ol>
720
+
</div>
721
+
<divclass="tab-panel" id="panel-cli">
722
+
<p>Prefer the terminal? Every action is also a one-liner. The CLI is optional; the GUI covers daily use.</p>
723
+
<ulclass="cmd-list">
724
+
<li><code>import script.txt --name "Episode 42"</code><spanclass="desc">Import a text file as a new script</span></li>
725
+
<li><code>export --list</code><spanclass="desc">See all registered scripts</span></li>
726
+
<li><code>backup</code><spanclass="desc">Archive your whole library to a zip</span></li>
727
+
<li><code>restore backup.zip</code><spanclass="desc">Restore from a backup archive</span></li>
728
+
<li><code>delete "Old Draft"</code><spanclass="desc">Remove a script by name</span></li>
729
+
<li><code>rename "Draft" "Episode 42 Final"</code><spanclass="desc">Rename a script</span></li>
730
+
<li><code>import --restart script.txt --name "Live"</code><spanclass="desc">Auto-stop Camera Hub, import, restart after success or failure</span></li>
731
+
</ul>
732
+
</div>
733
+
<divclass="tab-panel" id="panel-trouble">
734
+
<p>If the launch command does not work, one of these is usually why.</p>
735
+
<ulclass="trouble">
736
+
<li>
737
+
<strong>"can't open file '.../prompter_kit_gui.py': No such file or directory"</strong>
738
+
You are not inside the project folder. The clone created a <code>prompter-kit</code> directory; move into it before launching: <code>cd prompter-kit</code>, then run <code>python3 prompter_kit_gui.py</code>. Run <code>ls</code> first and confirm you see <code>prompter_kit_gui.py</code> in the listing.
739
+
</li>
740
+
<li>
741
+
<strong>"No module named 'flask'"</strong>
742
+
The virtual environment is not active, or dependencies were never installed. Activate it with <code>source .venv/bin/activate</code> (<code>.venv\Scripts\activate</code> on Windows), then run <code>python3 -m pip install -r requirements-gui.txt</code>.
743
+
</li>
744
+
<li>
745
+
<strong>"command not found: python3" or a version below 3.10</strong>
746
+
PrompterKit needs Python 3.10 or later. Check with <code>python3 --version</code> and install from <ahref="https://python.org" target="_blank" rel="noopener">python.org</a> if it is missing or too old.
747
+
</li>
748
+
<li>
749
+
<strong>"Address already in use" on port 5000</strong>
750
+
PrompterKit is probably already running in another terminal or browser tab. Close the other instance, or stop it with <code>Ctrl+C</code>, then launch again. On macOS, AirPlay Receiver can also hold port 5000, so disable it in System Settings if needed.
751
+
</li>
752
+
<li>
753
+
<strong>Changes do not show up in Camera Hub</strong>
754
+
Camera Hub reads the library only at startup. Quit Camera Hub before editing in PrompterKit, and reopen it afterward so it picks up the updated scripts.
Copy file name to clipboardExpand all lines: docs/llms.txt
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -6,8 +6,8 @@ PrompterKit wraps the Elgato Camera Hub data format (AppSettings.json + Texts/*.
6
6
7
7
## Key concepts
8
8
9
-
- **Import**: reads any .txt or .md file, strips Markdown formatting, converts each line to a Camera Hub chapter, registers the script in AppSettings.json
10
-
- **Export**: writes chapter content back to a plain text file (one chapter per line)
9
+
- **Import**: reads any .txt or .md file, strips Markdown formatting, groups it into Camera Hub chapters (a blank line is a hard return that starts a new chapter/scroll point; a single newline is a soft return kept as a line break inside the chapter), registers the script in AppSettings.json
10
+
- **Export**: writes chapter content back to a plain text file, chapters separated by a blank line and soft breaks preserved, so a script round-trips
11
11
- **Backup**: archives all registered script JSON files plus AppSettings.json to a timestamped zip
12
12
- **Restore**: validates a backup zip, then restores it in merge or replace mode; replace mode stages replacement files first and rolls back the live library if the final swap fails
13
13
- **CRUD**: delete, rename, and reindex scripts without opening Camera Hub
0 commit comments