Skip to content

jaycho1214/openworship

Repository files navigation

OpenWorship

OpenWorship

Free, open-source worship presentation software for churches

Release License Platform

한국어


Support this project — OpenWorship is free and open-source. If it has blessed your ministry, consider supporting continued development.

GitHub Sponsors Buy Me a Coffee


OpenWorship Preview

Download


Features

Dual-Window System Control from your laptop while displaying on the projector. Real-time preview shows exactly what your congregation sees.
Songs & Smart Library Build your permanent song collection. Search, organize, and drag songs into any session instantly.
Bible Verses Display Scripture with built-in translations (KJV, ASV, and more). Search by book, chapter, and verse.
Notes & Announcements Add custom text slides or overlay banners for announcements, liturgy, or any freeform content.
OCR Import Extract lyrics from images and PDFs automatically using AI. No more manual typing from song sheets.
Video & Image Backgrounds Beautiful motion backgrounds and custom images. Adjustable dimming for readability.
Custom Frames Add decorative borders to your slides — image-based (9-slice) or CSS-styled with radius, shadow, and color.
Advertisements Display text or image ads as fullscreen slides or banner overlays with auto-rotation.
Import / Export Share songs, sessions, or your entire library as .oworship files with smart conflict resolution.
Custom Typography Import any font. Fine-tune size, color, shadow, outline, and per-content-type styling.
Slide Animations Smooth transitions between slides — fade, slide up, or slide left.
Keyboard Shortcuts Full keyboard control — navigate slides, jump sections, blank screen, undo/redo, and more.
Multilingual English and Korean interface with full i18n support.

Quick Start

1. Create a Session    →  Your setlist for the service
2. Add Content         →  Songs, Bible verses, or announcements
3. Open Projection     →  Display on your projector/screen
4. Use arrow keys      →  Navigate through slides

Installation

Platform File
macOS .dmg
Windows .exe
Linux .AppImage

Download

Build from source
git clone https://github.com/jaycho1214/openworship.git
cd openworship
npm install
npm start

User Guide

Sessions

A 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.

Adding Content

Click "+ Add" to insert content into your session. Three content types are supported:

Songs

  1. Enter title and lyrics (or search the library)
  2. Separate slides with blank lines:
First verse line one
First verse line two

Second verse line one
Second verse line two
  1. Use section markers like [Verse], [Chorus], [Bridge] for quick navigation

Bible Verses

  1. Select a translation (KJV, ASV, BBE, and more available to download)
  2. Pick book, chapter, and verse range
  3. Choose display mode — one verse per slide or full range on one slide

Notes / Announcements

  1. Enter custom text for announcements, liturgy, or readings
  2. Choose to display as full slides or as an overlay banner (top or bottom)

From Library

  • Open library sidebar (left edge)
  • Search for songs
  • Drag into your session

OCR Import

  1. Click "+ Add""Image Import"
  2. Drop images or PDFs — AI extracts the lyrics
  3. Review, edit, save

Requires OpenAI API key in Settings → API

Import from File

  1. Click "+ Add""Import"
  2. Select a .oworship file
  3. Preview contents and choose how to handle duplicates (skip, overwrite, or create copy)

Keyboard Controls

Key Action
Space or Next slide
Previous slide
Next song / item
Previous song / item
Tab Next section
Shift+Tab Previous section
Home First slide
End Last slide
19 Jump to section (or slide)
B Toggle blank screen
V Toggle verse indicator
. or Esc Toggle blank
Cmd/Ctrl+Z Undo
Cmd/Ctrl+Shift+Z Redo

Customization

Fonts — Settings → Appearance. Supports .ttf .otf .woff .woff2

Video & Image Backgrounds — Settings → Display. Videos (.mp4 .webm .mov) and images (.png .jpg .gif .webp). Adjustable background dimming.

Text Styling — Per-content-type settings for font size, color, shadow, outline, alignment, padding, and line gap. Bible verses have separate reference text styling.

Frames — Settings → Frames. Add decorative borders using 9-slice images or CSS styles (border, radius, shadow, background). Assign different frames per content type.

Slide Animations — Settings → Display. Choose from none, fade, slide up, or slide left transitions.

Theme — Settings → Appearance. Light, dark, or system theme.


Tips

Preparing for Sunday
  1. Create session early in the week
  2. Add songs, Bible readings, and announcements in order
  3. Review slide breaks
  4. Test on actual display
  5. 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)
  • Use section markers ([Verse], [Chorus]) for quick navigation during worship
Multi-Monitor Setup
  1. Connect projector as extended display
  2. Open OpenWorship on main monitor
  3. Click "Open Projection"
  4. Projection goes to secondary display
  5. Control from main, display on projector
Sharing Content
  • Export individual songs, entire sessions, or your full library as .oworship files
  • Share with other worship teams or back up your collection
  • Import with conflict resolution — skip, overwrite, or create copies

Development

Command Description
npm start Development mode
npm run build Production build
npm run package Create installer
npm run lint Lint code
npm test Run tests
Architecture
src/
├── main/              # Electron main process
│   ├── ipc/           # IPC handlers (songs, sessions, bible, frames, etc.)
│   └── services/      # Database, media, export, bible, advertisements
├── renderer/
│   ├── control/       # Control window (editor, library, settings)
│   ├── projection/    # Projection window (fullscreen lyrics display)
│   └── shared/        # i18n, utilities, shared components
└── shared/            # TypeScript types shared across processes

Tech Stack — Electron 35 · React 19 · TypeScript 5.8 · Tailwind CSS 4 · shadcn/ui · better-sqlite3 · OpenAI API


Contributing

Contributions welcome! Fork, create a feature branch, and submit a Pull Request.

License

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

About

Open-source worship lyrics presenter for macOS, Windows, and Linux.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages