Skip to content
Documentation

LUNA Documentation

LUNA — Lifestyle Understanding & Navigation Assistant — is a personal spirit-companion app. Luna is one named spirit that wears fifteen forms, lives on a single screen, keeps your habit streaks, coaches your training and meals, and talks with you by voice or text. All of Luna’s thinking runs on Runink’s own inference servers; no third-party AI API is ever called.

Nothing has shipped yet. Google Play and the App Store are the targets, and both store builds come from one Flutter tree (app id org.runink.luna). The web app at luna.runink.org is debug-only and is not a distribution channel. Sign-in works only for Google accounts on an operator-managed allowlist. There is no public sign-up and no billing.

Using Luna

Running and building LUNA

The ideas behind LUNA

One Luna per account. Everyone on the allowlist gets their own Luna, with their own journal, memory, plans, avatar, streaks and level. Storage is keyed by account, and a request with no account is refused rather than sent to a shared bucket.

One spirit, many aspects. Luna answers as one of six aspects: counsel, trainer, nutritionist, keeper, muse or naturalist. It is still one Luna with one memory. The aspect only says which expertise is in front, and the glow colour shows which one is speaking.

Numbers come from code, not from the model. Streaks, points, levels, nutrition targets and weekly set counts are computed in Go from what you actually logged. The model proposes exercises (only real catalogue entries) and foods. It never supplies a number that you then have to trust.

Honest about gaps. If a turn can’t be saved, it is marked “not saved”. If a proposal couldn’t be checked, it says “not verified”. A reading Luna doesn’t have shows as missing, never as zero.