Free, open-source worship presentation software for churches
Support this project — OpenWorship is free and open-source. If it has blessed your ministry, consider supporting continued development.
| Dual-Window System | Control from your laptop while displaying on the projector. Real-time preview shows exactly what your congregation sees. |
| Smart Library | Build your permanent song collection. Search, organize, and drag songs into any session instantly. |
| OCR Import | Extract lyrics from images automatically using AI. No more manual typing from song sheets. |
| Video Backgrounds | Beautiful motion backgrounds included. Add your own videos for a professional worship atmosphere. |
| Custom Typography | Import any font. Fine-tune size, weight, shadow, and positioning to match your church's style. |
| Keyboard Shortcuts | Navigate with arrow keys, blank with B, and control everything without touching the mouse. |
1. Create a Session → Your setlist for the service
2. Add Songs → From library, manual entry, or OCR import
3. Open Projection → Display on your projector/screen
4. Use arrow keys → Navigate through slides
| Platform | File |
|---|---|
| macOS | .dmg |
| Windows | .exe |
| Linux | .AppImage |
Build from source
git clone https://github.com/jaycho1214/openworship.git
cd openworship
npm install
npm startA session is your worship setlist. Create one for each service.
| Action | How |
|---|---|
| Create session | Click "New Session" in header |
| Switch session | Use dropdown in header |
| Rename session | Right-click session name |
| Delete session | Right-click → Delete |
Sessions save automatically.
Manual Entry
- Click "+ Add"
- Type title and lyrics
- Save
Format your lyrics with blank lines to create new slides:
First verse line one
First verse line two
Second verse line one
Second verse line two
From Library
- Open library sidebar (left edge)
- Search for songs
- Drag into your session
OCR Import
- Click "+ Add" → "Image Import"
- Drop files or click to select
- AI extracts the lyrics
- Review, edit, save
Requires OpenAI API key in Settings → API
| Key | Action |
|---|---|
← → |
Previous / Next slide |
↑ ↓ |
Previous / Next slide |
Page Up Page Down |
Previous / Next song |
Home End |
First / Last slide |
B |
Blank screen |
V |
Toggle verse indicator |
Esc |
Close projection |
Fonts — Settings → Appearance. Supports .ttf .otf .woff .woff2
Video Backgrounds — Settings → Display. Supports .mp4 .webm .mov
Text Styling — Adjust font size, weight, shadow, position, and line height.
Preparing for Sunday
- Create session early in the week
- Add songs in worship order
- Review slide breaks
- Test on actual display
- Ready before service starts
Optimal Slides
- 2-4 lines per slide
- Match natural song phrases
- Avoid single-line slides (too fast)
- Avoid 6+ lines (too crowded)
Multi-Monitor Setup
- Connect projector as extended display
- Open OpenWorship on main monitor
- Click "Open Projection"
- Projection goes to secondary display
- Control from main, display on projector
| Command | Description |
|---|---|
npm start |
Development mode |
npm run build |
Production build |
npm run package |
Create installer |
npm run lint |
Lint code |
Architecture
src/
├── main/ # Electron main process
├── renderer/ # React UI (control + projection windows)
└── shared/ # Shared types
Tech Stack — Electron 35 · React 19 · TypeScript 5.8 · Tailwind CSS 4 · shadcn/ui · better-sqlite3 · OpenAI API
Contributions welcome! Fork, create a feature branch, and submit a Pull Request.
MIT License — free to use for your church or ministry.
"Let everything that has breath praise the Lord."
Psalm 150:6
Made with faith for churches worldwide
