Track your cycle without renting your body back from a subscription
AI: publik API or your key
Today
Day 3Period: Day 3
Next period estimated in 27 days · ±5
Prices are for one typical use: one request of about 1,500 words sent and 375 words back. A higher quality score is better.
Lunara has no option to run its AI on your computer.
| Model | Quality | Per 1,000 uses |
|---|---|---|
| On your computer (Ollama, 4-bit download size) | ||
| Granite 4.2 3B2.2 GB | 9 | $0 |
| Phi-4 Mini2.5 GB | 6 | $0 |
| Llama 3.1 8B4.9 GB | 7 | $0 |
| gpt-oss 20B14 GB | 9 | $0 |
| Gemma 4 31B20 GB | 19* | $0 |
| Qwen3.5 35B-A3B24 GB | 19* | $0 |
| publik API | ||
| publik-fastGLM-5.3 Flash | 42 | $1.00 |
| publik-balancedMiMo-V2.6-Pro · Lunara | 46 | $10.00 |
| publik-smartGPT-6 Sol | 48 | $18.00 |
Quality: Artificial Analysis Intelligence Index v4.3.2, read 2026-09-22 (publik API models 2026-09-25); * = estimated by Artificial Analysis. Sizes: the Ollama library, read 2026-09-22.
Every step written out. No terminal experience needed. Pick your setup.
⚠️ Unfinished — this is a work in progress. Lunara is not on the App Store or Google Play, and there is no installer to double-click. You build it from this repository and run it on your own phone. Features are landing continuously and things will break. Do not rely on it as your only record of your health data.
An open-source, local-first cycle, fertility, pregnancy, and perimenopause companion.
Lunara ships through native iOS and Android shells powered by Capacitor. Core tracking works without an account or Lunara-hosted user database. Optional backup and AI features transmit data only after you enable them; their scope and security boundaries are documented in the repository.
Lunara is an open-source alternative to Flo®. It is not affiliated with, endorsed by, or connected to Flo Health Inc.
app/ — React/Vite product layer plus Capacitor iOS and Android projectsworkers/backup/ — stateless zero-knowledge backup relay (Cloudflare Worker + R2)workers/reminders/ — opt-in generic email reminders (no health terms, ever)docs/NATIVE_ARCHITECTURE.md — current runtime and platform designdocs/FEATURE_PARITY.md — honest implementation and release-readiness mappnpm install
pnpm dev # run the app in a browser
pnpm test # engine unit tests
pnpm --filter @lunara/app native:sync
The cycle engine is covered by a seeded fuzz audit
(app/src/engine/estimateAudit.test.ts) that exercises every user-facing
estimate across 360 generated histories. It must stay at zero violations —
run pnpm test before touching any prediction math.
Lunara works fully without AI, and the companion is never offered under 18. When it is on, answers come from one of three places:
claude setup-token to
bill answers to a Claude subscription.Choosing publik never touches a key you pasted, and choosing your own key never revokes the publik one. Credentials are stored in the Keychain / Keystore, never in the cycle database and never in a backup. Nothing from your tracker is sent unless you tick the specific categories for that message.
For maintainers — the app token. app/src/lib/publikBuild.ts carries the
build's public app token. In git it is the placeholder pat_lunara_REPLACE_ME,
which compiles and tests but hides the publik option; the publik-side mint
script (scripts/mint-app-token.mts in the publik repo) mints
pat_lunara_<32 base36> and writes it into that file in the same commit the
publik install guide then pins. The token is public by design: it can only
mint rate-limited anonymous installs; it holds no balance and reads nothing.
Lunara is not a medical device and does not diagnose, treat, cure, or prevent any condition. Predictions are estimates for informational purposes only and must not be used to prevent pregnancy.
AGPL-3.0 — see LICENSE.