Status: Official naming record (user decision 2026-08-04)
Audience: Product, design, engineering, and every agent touching V1 copy
Companions: features.md ·
ARCHITECTURE.md ·
OMNIPRESENT_ASSISTANT_DESIGN_2026-08-03.md
The decision#
The V1 consumer product, previously presented as OSHUN, is named Lilith. Lilith is simultaneously:
- The app. The web app and installable PWA the member opens.
- The in-app assistant. The consumer-facing shell assistant speaks as Lilith — first person, host of the house.
- The main persona. Lilith fronts the whole experience: she helps you, checks in on you, and brings in her rooms as her supporting cast.
The customer domains — Tara (breath), Arete (habits), Veritas (what is true), Nyx (the sky tonight), Nisaba (the reading desk), Metis (the schoolroom) — are presented as Lilith's rooms. Copy should read as Lilith orchestrating: "I'll take you to Tara for a short sit", "It's late — shall I ask Nyx what's overhead?"
V1.0 opens four of them: Tara, Nyx, Arete, and Nisaba. Veritas and Metis are deferred to V1.2 (see V1 release scope below), so V1.0 copy says four rooms, never six, and never names Veritas or Metis — not in marketing, not in the manifest, not in an assistant line.
Company#
- Legal entity: Oshun Synthetics LTD — the operator of Lilith, the owner of the Service, and the named data controller/processor in the legal pages.
- Company website:
oshunsynthetics.com— built atapps/oshun/corporate-web(static-export Next app; serve itsdist/) - Product app:
lilith.oshunsynthetics.com(canonicalmetadataBase, sitemap, JSON-LD, and deep-link association hosts all point here) - Support/legal mailboxes:
support@,privacy@,legal@,dpo@,accessibility@— all atoshunsynthetics.com - Status page label:
status.oshunsynthetics.com
Who is called what (do not mix these up)#
| Name | What it names | Where it appears |
|---|---|---|
| Lilith | The V1 consumer app, the consumer-facing assistant persona, and the design language (design-system/lilith) |
Every customer-facing surface: web, PWA, Telegram/Slack channels, email |
| Eve | The builder-side omnipresent assistant — intent-plane assistant actor, builder workbench, codex coding-agent harness |
Builder/operator planes only; never shown to members |
| Oshun Synthetics | The company | Legal pages, footer colophon, JSON-LD Organization, corporate site |
| OSHUN | The internal platform (monorepo, @oshun/* scopes, env vars, operator/studio tooling) |
Code identifiers, staff-facing operator cockpit and studio surfaces |
| Tara … Metis | Lilith's rooms — her supporting cast. V1.0 ships four (Tara, Nyx, Arete, Nisaba); Veritas and Metis open in V1.2 | In-app rooms, marketing "What's inside", manifest shortcuts |
| lilith (domain) | libs/lilith/* — the shared infra spine behind the consumer platform (predates the rebrand; name now aligns) |
Code only |
Rules of thumb:
- Member-visible copy says Lilith (app) and Oshun Synthetics LTD (company). It never says OSHUN, Eve, or Iris/Psyche/other substrate names.
- Identifiers stay:
@oshun/*packages,OSHUN_*env vars and constants,oshun-navigatorpersona id,OshunProviders, database names. A rename of code identifiers is explicitly not part of this rebrand. - Operator cockpit and studio surfaces are staff/creator tools of the platform and keep OSHUN platform branding.
- Platform-shared delivery defaults (e.g.
libs/oshun/messaging-channelspush title fallbacks) stay platform-branded; the V1 deployment overrides them via config (OSHUN_MESSAGING_PUSH_TITLE=Lilith).
The persona in practice#
- System prompt identity
(
libs/oshun/shell-assistant/src/system-prompt.ts): "You are Lilith — the voice, host, and main persona of the Lilith app… You orchestrate; the rooms support." - Default persona label:
Lilith(was "OSHUN Navigator"; stored persona idoshun-navigatoris unchanged). - Check-ins: the proactive help chip is framed as Lilith noticing ("Lilith noticed", "I noticed you bouncing between…", "Ask Lilith").
- Greetings/farewells: Lilith speaks in first person and names the rooms ("Good evening — Lilith here. Shall I have Tara wind you down…").
- Honesty: disclosure copy stays explicit — "Responses come from Lilith, an AI assistant — not a human operator." Lilith never claims to be human.
V1 release scope (2026-08-05)#
The V1 line ships in three releases. Say V1.0 rather than bare "V1" in copy and docs — "V1" alone reads as the whole line and wrongly implies the deferred pieces are gone for good.
| Release | What it adds |
|---|---|
| V1.0 | Web + PWA. Four rooms: Tara, Nyx, Arete, Nisaba. Crypto payments only. |
| V1.1 | Native iOS/Android apps, the watch companions, and the fiat rails. |
| V1.2 | Restores the Veritas and Metis rooms. |
-
V1.0 ships web + PWA only. The Next.js customer web app at
lilith.oshunsynthetics.comand its installable PWA are the launch surfaces. -
V1.0 ships four rooms. Veritas and Metis are deferred to V1.2. Their libraries, contracts, routes, and BFF services all stay in the tree — the deferral is about what a console may show, not about deleting a domain. No console (customer web, PWA, mobile, operator, studio, tenant, marketing) may advertise, link to, count, or compose them.
The cut is declared once, in
libs/oshun/navigation/src/release-scope.ts(V1_DEFERRED_DOMAIN_IDS, re-exported from@oshun/domain-registry), and every surface reads it. Lifting the deferral in V1.2 is one edit there plus the copy that quotes the release name. Enforcement points worth knowing:getShellNavigationDomains()/getAvailableDomains()— scoped selectors every nav surface uses;listDomainMetadata()stays complete for admin.apps/oshun/web/src/middleware.ts— rewrites deferred page paths to the/release-scope/<domain>notice and 404s the app's own API handlers.apps/oshun/bff/src/middleware/release-scope.ts— 404s customer-facing deferred paths; operator/admin/studio paths are exempt so governance can keep stocking the rooms before they open.WALKTHROUGH/matrix/routes.csv— those routes are markedout-of-v1.
-
V1.0 charges through crypto only. The Aje crypto rail (
/billing/crypto) is the single rail V1.0 bills on. Card, bank, wallet, PayPal, mobile-money, and the Apple/Google in-app-purchase rails are deferred to V1.1 — the same release that ships the native apps, which is when the app-store rails become reachable at all.Declared beside the room cut in
libs/oshun/navigation/src/release-scope.ts(V1_SCOPED_PAYMENT_RAIL_IDS,V1_DEFERRED_PAYMENT_RAIL_IDS). Two notes on how it behaves, because money is not a room:isPaymentRailInV1Scopefails closed — an unrecognized rail id is treated as deferred, not chargeable. The domain predicate does the opposite, and deliberately so.- The BFF refuses deferred rails by path prefix, not by a rail field in the request body: a rail that cannot be charged should not have a reachable endpoint. Webhook ingress stays open so settlement callbacks for charges made before the cut still land.
A member who already has a card on file keeps seeing it in
/profile; nothing offers to add one. -
V1.1 ships the native mobile apps (iOS App Store, Google Play, watch companions). Until those store listings exist, no V1.0 surface may link to a store page — install flows route to
/welcome/download#web-install(LILITH_NATIVE_APPS_AVAILABLE = falseinapps/oshun/web/src/lib/mobile-store-links.ts). The smart banner offers the PWA on every platform and says the native app arrives with V1.1. -
The mobile codebase (
apps/oshun/mobile, watch companions) is unchanged and still carries OSHUN-era copy; its Lilith rebrand is a V1.1 work item.