-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Current version: v1.12.3 Candela is TechEmpower's accessible resource app. Browse free tech guides, connect with our peer-support Discord, dial 211 for local help — and listen to any of it through a neural-voice audiobook engine that reads everything aloud.
Under the hood: thirty-three fiction backends (Royal Road, GitHub, RSS / Atom feeds, local EPUB folders, local PDF files, on-device OCR, self-hosted Outline wikis, Memory Palace, Project Gutenberg, LibriVox, Archive of Our Own, Standard Ebooks, Wikipedia, Wikisource, Radio with 30k+ stations, Notion, Hacker News, arXiv, PLOS, Discord, Telegram, Palace Project, Slack, Matrix, Readability web articles); three in-process voice families (Piper, Kokoro, KittenTTS) with optional Azure HD cloud voices; AI chat per fiction across seven LLM providers with cross-fiction memory, function calling, and multi-modal image input; built for Android phones, tablets, and Wear OS.
📦 Latest release: v1.12.3 — Lunar Pulsar — Fixes a crash when a sleep timer runs out. Still carries the v1.12.2 sleep diagnostics (reverted in the next release, once shake-to-extend is confirmed on-device).
📖 Source: github.com/techempower-org/candela · License: GPL-3.0 · Site: candela.techempower.org
- Getting started — Install, sign-in, first listen
- Fiction sources — All thirty-three backends and their setup paths
- AI chat — Seven providers, grounding, recaps, sessions
- Voices — Piper, Kokoro, KittenTTS, Azure HD, voice library
- Voice catalog — Flat reference of all catalog entries
- Settings reference — Every knob explained
- Architecture — Forty-eight modules, plugin seam, data flow
- Building from source — Toolchain, gradle, signing
- Troubleshooting — Sideload, voice download, BYOK setup, OAuth flow
Lunar Pulsar. Fixes a crash when a sleep timer runs out. Still carries the v1.12.2 sleep diagnostics (reverted in the next release, once shake-to-extend is confirmed on-device).
-
App crashed every time a sleep timer expired — the timer-expiry pause touched the Media3 player off the main thread, which Media3 forbids (
verifyApplicationThread), so the process died and restarted instead of gently pausing. Pre-existing since #1190; it only started surfacing when #1596 made auto-sleep fire by default on real devices. The pause is now marshalled to the main thread (Dispatchers.Main.immediate— inline for the UI/media-button callers, a hop only for the off-main timer caller), matching the existing #553/#969 fixes. This was the real symptom behind the "auto sleep timer not working" report. (#1606, #1574) - Retains the v1.12.2 sleep-timer
Log.wdiagnostics + shake peak logging (#1604) so shake-to-extend (#1595) can be root-caused on-device in the same build; reverted in the next release.
-
Cold launch 6.7 s → 0.8 s on Galaxy Tab A7 Lite (v0.5.46 — R8 + Baseline Profile +
isDebuggable=false). - Full PCM cache series — streaming-tee, cache-hit playback, background pre-render, Settings UI, status icons (v0.5.47–v0.5.49).
- Twelve a11y findings closed (v0.5.43) — high-contrast brass-on-near-black theme, reduced-motion fold-in, TalkBack pacing.
-
Nav settled — four-tab dock
{Playing · Library · Voices · Settings}(v0.5.50 final, after v0.5.40 restructure). - Cross-device InstantDB sync (v0.5.39+) — library, follows, positions, bookmarks, pronunciation, encrypted secrets.
- KittenTTS lightest-tier voice family (v0.5.36 — #119).
Start here
Using Candela
- Fiction sources
- Reading & library
- Export & extras
- Voices
- Voice catalog
- AI chat
- Cloud sync
- Accessibility
- Settings reference
- Troubleshooting
Developer
Project