The character appearing in the picture is Takashima Zakuro from the game "Wonderful Everyday Down the Rabbit Hole"
Lunar is a lightweight, cross-platform, extensible EPUB reader with native rendering.
- Unified native architecture: powered by Rito, Lunar combines a Skia rendering pipeline with a native C++ compositor to deliver consistent visuals across platforms, polished page-turn animations, and high-performance native rendering.
- Everything you want can be a plugin: AI explanations of selected text, online book sources, or a feature nobody has thought of yet. You can build a plugin with your favorite coding assistant through a typed SDK: install the skill, describe the feature, then run lunar-plugin dev, which reloads it in the app on every save. Your reader becomes the one you want.
Go to the Releases page and download the latest installer.
You can also download the latest prerelease from Releases to try the latest features. Each nightly provides a standalone Nightly APK and a Develop APK that requires an Expo development server.
Plugins run inside Lunar and extend it through a typed SDK.
Plugins are distributed as signed .lunar-plugin packages through catalogs.
npx @umbrae-labs/lunar-plugin-cli init my-plugin --id org.example.my-plugin --name "My plugin"
cd my-plugin && npm install
npx lunar-plugin dev # rebuild on save and reload in Lunar
npx lunar-plugin pack # write dist/<id>-<version>.lunar-pluginTo connect a running dev server, turn on Developer mode in Settings → Plugin settings and enter the address it prints. See the SDK README and the plugin SDK design for the API, permissions and limits.
This repository uses pnpm workspaces. The Expo application lives in apps/mobile. Shared SDK packages belong in packages/*, and independently packaged reading plugins belong in plugins/* as they are developed. Expo config plugins remain in apps/mobile/plugins.
Install dependencies and run commands from the repository root:
pnpm install --frozen-lockfile
pnpm start
pnpm check
pnpm check:expoUse pnpm --filter @lunar/mobile <command> for application-specific commands. EAS commands run from apps/mobile; repository release scripts remain in scripts. See release instructions and the plugin SDK design.
Issues and Pull Requests are welcome.
Inspiration:
- Readest - Readest is a modern, feature-rich ebook reader designed for avid readers offering seamless cross-platform access, powerful tools, and an intuitive interface to elevate your reading experience.
- Persimmon - A lightweight, native-rendered cross-platform EPUB reader.
- mihon - Free and open source manga reader for Android
- cordis - Meta-Framework of Spatiotemporal Composability
- DeepSeek Harness - DeepSeek Harness: Everything is a Plugin.
This project is licensed under AGPL v3.
