openjutsu
영상에서 원클릭으로 인물 교체, ComfyUI·MiniMax H3 기반 오픈소스 로컬 힉스필드 겐주츠 대안, FLUX.3 Klein 재조명 지원
저장소 정보는 아직 수집하지 않았습니다.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Electron desktop app for church presentation: live transcription, scripture detection and lookup, lyrics, documents and backgrounds — drawn full screen on a projector connected to the computer, no other software required.
Kairo runs connected screens and video devices directly and can send its rendered slides as independent NDI feeds for livestreaming and recording.
The next release retires the ProPresenter integration. Saved ProPresenter library, message and stage destinations are removed during startup; existing Kairo screen, video-device and NDI configurations remain. Previously imported songs remain in your library. If ProPresenter was your only destination, configure a Kairo screen, device or NDI feed before running your next service. Kairo does not automatically choose a display.
bun install # install deps (Bun 1.4.2)
bun run dev # dev mode with hot reload
bun run build # production build → out/
bun run lint # ESLint on .ts/.tsx
bun run typecheck # tsc check (node + web)
bun run test # renderer/shared tests (plain Node)
bun run test:main # main-process tests (run under Electron's Node ABI)
bun run test:main runs through the Electron binary because better-sqlite3 is
rebuilt for Electron's ABI; the same files fail to load under plain node.
Bundled public-domain translations (KJV, WEB, ASV, …) ship in resources/bible.db
and never expire. Copyrighted translations (NKJV, NIV, NLT, …) come from API.Bible.
The key is stored by the main process and is never exposed to the renderer.
safeStorage; if the OS offers no encryption, nothing is cached and the app
stays online-only.userData directory, separate
from the bundled bible.db. Its path, key, and ciphertext never reach the
renderer, and there is no export, bulk copy, or print path for licensed text.API.Bible requires cached content to be refreshed at least every 30 days. Cached verses at or past that age are not displayed; the app asks for a refresh instead of showing expired text. Refreshing replaces a chapter only after the new response parses successfully — a failed refresh never extends the expiry.
Settings → Scripture → Offline Bibles lists every API translation the cache knows about, with its status (not downloaded, partial, downloading, paused, downloaded, refresh required, no longer licensed, failed), chapter and verse counts, expiry date, and the publisher's copyright statement.
Whole-translation download stays disabled until the translation's API.Bible plan and publisher licence are confirmed to permit offline storage in this app. Until then the panel explains that the licence is unconfirmed and offers no download button. Passage-level caching (30 days) still applies either way.
There is deliberately no in-app toggle — an operator cannot grant the app a right the publisher has not. Approved Bible ids are provisioned one of two ways:
scripture.offlineDownloadBibleIds array in the
electron-store settings file (its path is logged at startup as
electron-store initialized). Add the API.Bible ids and restart.KAIRO_OFFLINE_BIBLE_IDS to a
comma-separated list of API.Bible ids before launching the app. Use this when
a build ships with rights already confirmed.Both sources are merged. Public-domain translations need no approval: any translation whose API.Bible copyright statement says "public domain" can be downloaded without being listed.
Refresh is gated on the same confirmed licence as download, since it re-fetches the whole cached translation.
Whenever cached text is served, the app re-checks once per app session that the key still grants that translation. If API.Bible refuses (401/403), the translation is marked no longer licensed, its cached text is deleted immediately, and it can no longer be searched. A network failure never revokes anything, so a fully offline service keeps working.
| OS | Arch | Minimum | Artifacts | Status |
|---|---|---|---|---|
| macOS | arm64 | macOS 11 | DMG + ZIP (ZIP feeds auto-update) | Existing target; final NDI 6 acceptance pending |
| macOS | x64 | macOS 11 | DMG + ZIP | Experimental; native acceptance pending |
| Windows | x64 | Windows 10 | signed NSIS installer | Experimental; native acceptance pending |
| Ubuntu | x64 | 22.04 | AppImage + deb | Experimental; native acceptance pending |
Windows ARM64, Linux ARM64, Flatpak/Snap, and a universal macOS build are not supported. The planned Linux support contract means Ubuntu 22.04/24.04 x64; AppImage may work elsewhere but that is best-effort and untested.
KAIRO_ENABLE_DECKLINK=1 bun run dev after building the
helper; see native/decklink/README.md). Physical picture and release packaging
qualification remain pending in Plan 007..desktop launcher. Without a supported app, PowerPoint import
reports “unavailable” — export the deck to PDF and import that instead.electron-store initialized lives in the same directory). Never paste API keys or tokens
from logs when reporting issues.Cloudflare website and API deployment: see CLOUDFLARE.md.