- Underlined words in the notes are underlined on every slide type, as the
operator does by hand (Part 8: "saved", "saves"); segments are now
(text, bold, italic, underline); TextEdit edit format uses __word__
- Typo check never changes capitalised words inside scripture, or names
the notes' scripture uses ("Gilead was the father..." became "Gilled")
- Tests: Part 8 + Together Tuesday notes, hand-fixed Part 8 deck
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Message Notes → ProPresenter
Turns the pastor's sermon notes (Slides - <message>.rtf, or a Word file) into the message
presentation in ProPresenter's Messages library, built from the series or generic template.
These are the same slides you'd otherwise make by copy and paste.
Using it (on the ProPresenter Mac)
Double-click Message Notes to ProPresenter.command on the Desktop. It works everything out:
- Notes: the newest
Slides - ….rtf. The email script saves these into Google Drive > My Drive > Message Notes; it also checks Downloads, Desktop and Documents. - Speaker: from the email ("Pastor Mehdi will be preaching live from NA…"), matched to the speakers in your library; otherwise the template's speaker.
- Template: series when the title matches the series template's sample title, else generic.
- Date and playlist: the Planning Center playlist for this message, e.g. "Where is Your Faith? -
Part 8 - October 18, 2026". Its date gives the name:
261018 Where Is Your Faith Part 8. - YouTube: Claude writes the title and description in the house style.
It shows one short summary, plus notes only where something changed or needs a look: a scripture split over two slides, text that is too long somewhere, picture slides, lines left off the slides. Font sizes are never changed; if text is too long, the note says what size would fit.
Enter then does it all:
- Saves the presentation in the Messages library.
- Links it into the playlist's Message section (Planning Center's "Resi Message" item).
ProPresenter only reads playlists when it starts, so the tool quits ProPresenter, adds the link,
and reopens the same version, about 30 s. It won't do that on a Sunday morning or while a slide
is on screen, or while the Message timer runs; it tells you to drag it in instead. If the
playlist isn't imported yet, it asks you to import it from Planning Center first. Each change
backs the playlist file up to
…/MessageNotes/backups(last 20 kept). - Opens the YouTube title and description in TextEdit, ready to paste into Restream. They're
saved as
…/MessageNotes/youtube-<name>.txt.
Typo check: the summary's Spelling line says "no typos found" or how many were fixed, and each fix is listed ("Slide 31: fixed “OBEDIANCE” → “OBEDIENCE”"). It uses macOS's own spelling checker and autocorrect, including ALL-CAPS emphasis words and doubled words ("the the").
- Names it doesn't know (Rahab, Chniouli) are left alone.
- Greek/Hebrew sermon words (dunamis, agape…) and Bible compounds (lampstand, firstfruits) are never changed.
rundoes all fixes or just the ones you pick. An undone word goes into…/MessageNotes/allowed-words.txtand is never changed again.
Keys at the summary: r undo typo fixes · e edit the slides in TextEdit · t s n d f change template /
speaker / name / date / notes file · v view the description · y setup · q quit.
One-time setup (y), done at the ProPresenter Mac:
- Claude API key (console.anthropic.com → API keys). It goes straight into the Keychain.
- Email pickup: paste
apps-script/SaveSermonNotes.gsinto script.google.com as media@waterschurch.org, runinstall, Allow. It checks every 10 minutes and saves the notes and the email text into Drive > Message Notes. - The first restart asks "Terminal wants to control ProPresenter". Click OK.
PICTURE / CLEAR PICTURE slides are always kept. When the notes mark a picture ("[PICTURE: …]", "<pic - ….jpg>"), they go there with the picture named in the slide notes.
Other campuses
tools/make_kit.sh builds dist/Message Notes Kit <version>.zip: an installer, the program, the
Desktop launcher and READ ME FIRST.txt. Send the zip to the campus; on their ProPresenter Mac
they unzip it and double-click Install Message Notes.command (it installs Apple's Command Line
Tools first if Python is missing). The first run asks which campus it is and saves it in
~/Library/Application Support/MessageNotes/settings.json:
- The campus code picks the preacher from the notes email ("Pastor Geyser will be preaching live in AB"); a lone surname matches the most recent speaker with it.
- YouTube text is only written at NA (
"youtube": true);tools/deploy.shwrites NA's settings. - The ProPresenter folder, network port and template library are read from ProPresenter itself.
Templates are any
_TEMPLATE…DO NOT DELETE….pro(with GENERIC in the name = generic). - Without ProPresenter's network on, it never restarts ProPresenter to link the playlist.
How notes become slides
| In the notes | On the slides |
|---|---|
| first line / second line / bare reference | Title slide (title, subtitle, main passage) |
paragraph starting with a reference (John 1:12 ESV …) |
SCRIPTURE. Bold words stay bold. |
| a line on its own | Point |
lead-in (…: / …? / italic) + one line |
one Point, lead-in in the italic style |
| 3+ lines together, a list, or after "(one at a time)" | *STREAM DECK* slide + Build (one step per line) |
Sermon in a Sentence: + sentence |
SERMON IN A SENTENCE |
(…), […], // …, coloured non-scripture notes |
left off, shown in the review |
Formatting always comes from the template's own sample slides. To change how something looks,
change the template in ProPresenter and the tool follows. Templates are found by name: any
_TEMPLATE … DO NOT DELETE … presentation in Messages, with GENERIC marking the generic one.
Fitting. Every text is laid out with macOS's text system (the one ProPresenter uses) in each place it will be seen:
- the slide itself
- each themed screen of the Look the template's SPEAKER NAME slide triggers (today Message: Stream Lower Thirds on the stream, Center LED Wall on the LED wall)
On themed screens ProPresenter uses the theme's font size, and only words styled differently from the rest of their box keep bold/italic.
- Scriptures too long anywhere are split at verse numbers into as few, even slides as possible, all with the same reference.
- Other text too big for the slide is reduced in 1pt steps.
- Text too long for a theme box is flagged, since the theme fixes the size there.
Files
src/: the program (pure Python 3.9, no installs)notes.pyreads the notes and decides the slidesdeck.pycopies template slides and fills them inthemes.pyfinds the stream and LED wall theme boxesmeasure.pydoes the text layoutrtf.py,pbwire.py+schema.jsonread and write the RTF and ProPresenter filesplantext.pyis the TextEdit formatplaylist.py+ppctl.pyhandle the playlist link and the safe ProPresenter restartyoutube.pywrites the YouTube text (Claude API over HTTPS);secrets_store.pykeeps the key in the Keychainspelling.pyis the typo check (macOS spelling checker via JXA)docxnum.pykeeps Word list numbersapp.pyis the Terminal app;settings.pyis the per-Mac campus settings
apps-script/SaveSermonNotes.gsis the Google Apps Script for email pickup.tools/build.shbuildsdist/message-notes.pyzand the launcher.tools/deploy.shbuilds and installs both on the NA ProPresenter Mac, via the ingest Mac's SSH key.tools/make_kit.shbuilds the kit for other campuses (tools/kit/holds its installer and read-me).tools/gen_schema.pyregeneratesschema.jsonfrom the community ProPresenter.protofiles (github.com/greyshirtguy/ProPresenter7-Proto,autogen-proto) after a ProPresenter upgrade.tests/run_tests.pyruns offline checks against real notes and presentations. Last Sunday's notes must rebuild last Sunday's deck.tests/gen.pybuilds a deck from a laptop, measuring on the ProPresenter Mac.
On the ProPresenter Mac: app in ~/Library/Application Support/MessageNotes/, log in
~/Library/Logs/message-notes.log, last preview page in …/MessageNotes/last-run/index.html.