Getting Started
This page covers the first few minutes with Luna: signing in, choosing a first form, and finding your way around the app’s single screen.
luna.runink.org exists for debugging only.Before you start
- Your Google account must be on the allowlist. LUNA has no sign-up form.
An operator adds your address to
LUNA_OWNER_EMAIL(see Access and sessions). - Google Sign-In is the only way in. There is no password path.
1. Sign in
The first screen shows Luna and one button, Sign in with Google. Pick the
allowlisted account. The app sends Google’s ID token to
IdentityService.GoogleLogin. The server checks the token against Google’s
published keys, checks the email is verified and on the allowlist, and then
opens a session that lasts 12 hours.
If sign-in fails, the server’s message tells you why:
| Message | What it means |
|---|---|
this account is not on this luna instance's allowlist | The Google account is valid, but it isn’t on the allowlist. Ask the operator to add it. |
google email not verified | Google reports the address as unverified. |
invalid google token | The token from Google failed verification. Try signing in again. |
cannot reach Google to verify this sign-in — this is a server-side connectivity problem, not a problem with your account: … | The server couldn’t reach Google. The problem is on the server side. |
luna has no allowed accounts configured (LUNA_OWNER_EMAIL unset) | The server has an empty allowlist, so it rejects everyone. |
2. Choose Luna’s first form
On first sign-in, needs_onboarding is true and the app opens the Choose
Luna carousel. Swipe through the forms. The name field follows the form in
focus (Archimedes the owl, Salem the cat, and so on) until you type your own.
Tap Bind form to create the avatar and select it.
- The name can’t be empty (“Luna needs a name.”).
- or upload a custom video loop binds a video you pick as Luna’s idle loop instead of a painted form.
Every form is the same Luna, with the same memory and the same coaching. The form is only the image. You can change it later, and some forms only become wearable at higher levels (see The companion).
3. The one screen
LUNA has no tabs and no pages to navigate. After onboarding, the whole app is Luna on the Dreamcore backdrop, with a chat overlay floating above.
- Luna, animated, reacting to listening, thinking and speaking. Luna also responds to touch.
- The daily cards: Training, Meals and Steps. These are where you check in (see Habits and streaks).
- The level ring. The number is Luna’s level and the arc is progress toward the next one. It turns gold and becomes tappable when you can afford a level.
- The composer (“Say anything…”), the mic button, the speaker toggle, and the sparkle button (Show Luna something) that attaches photos.
The small ⋯ menu at the top left leads to everything else:
| Menu item | What it opens |
|---|---|
| Profile & connections | Your profile, data connections (steps, scale, sleep, weather) and the guide to Luna’s aspects |
| Training plan | The plan console, with Overview, Training and Meals views of the week |
| Session history | Past conversations |
| Track an activity | A GPS-tracked walk, run or ride |
| Wear a different form | The form switcher |
| Open-source licences | Third-party notices |
| Sign out | Ends the session on the server (IdentityService.Logout) |
4. First things to try
- Ask for a training plan. Type something like “make me a 4 day workout plan”. A request with a create word, a training word and a plan word goes straight to the plan generator instead of the chat model. Review the draft deck and save it. The Training card then follows that plan.
- Ask for meal targets. Type “meal plan, 82 kg” (with your own body mass). Meal targets are derived from the training week, so make the training plan first.
- Check in. Tap Session done on the Training card after a workout and tick off meals as you eat them. On Android, connect steps through Health Connect on the profile page.
- Just talk. Ask anything. Luna picks the aspect that fits, and the colour of the glow tells you which one is answering.
During the first week, a daily tip introduces one aspect each day. The full guide stays on the profile page.