AI infrastructure

Checking the service
Test runs

Admin access

Locked

The token is sent as a header on each request and kept only in this tab. Anyone with the token can change how every workspace pays for AI, so treat it like a root password. Users never see this screen.

Decision engine

Bounded decisions: intent, routing, risk

If the chosen engine is down, decisions fall back to the language model, then to a heuristic, and the agent panel says which one answered.

Billing mode

Applies to every workspace

Home hero

The default on home.html; a visitor can still override it in Settings

Hermes on the server

Checking

Layan's Hermes runs on this server, not on a PC. Log it into your Nous account here, the same way hermes auth add nous does in a terminal: Nous gives you a link and a code, you sign in there in a new tab, and Hermes on the server receives the login itself. Your password never passes through Layan.

  • StatusUnlock with the admin token to see it.

Harness registry

Layan's AI goes through lumina

Layan sends every AI call to lumina (LUMINA_CLIENT_KEY), which runs Cerebras for fast answers, Hermes for tools and agents, Laya for decisions and Paperclip for companies. Nothing is tried after lumina. Hermes below is used directly only where no lumina key is set.

Credits

Built-in mode only

Users see credits, not tokens. At $99 a month the default of 1,000 credits covers about 1,000 replies or 330 Discover runs.

Model prices

Every model in the registry
ProviderModelBasisProvider cost inProvider cost outlumina price inlumina price outAfter N months inAfter N months outStatus

One row per model this deployment can reach: every configured chat provider's regular and premium model, plus every hosted voice provider. Provider cost is editable and saved as an admin/config pricing entry keyed by the model id; unpriced rows read 0 until set. lumina price is provider cost with the markup above applied (voice rows are already in layan.ai credits, not USD). "After N months" is the lumina price with the continuity discount above applied, for a workspace whose company has been active that long. Token prices are stored per 1,000,000 tokens; the per-1,000 figure shown alongside is the same rate, just divided.

Web search

Checking

WhatsApp

Metered per message

Sending goes through an OpenWA server. Set OPENWA_BASE_URL, OPENWA_API_KEY and OPENWA_WEBHOOK_SECRET in api/.env; META_APP_SECRET verifies Meta webhooks. Every send is a gated action and waits for a person.

Media generation

Checking
Models users may pick. None ticked means the default cheap set. Credits shown are what a user pays per image at the settings above. Key in api/.env as MUAPI_KEY.

Credit wallet

Manual top-ups until checkout exists
  • BalanceEnter a workspace id.

Every top-up is written to the wallet history with your note. The monthly allowance comes from the Credits panel above; top-ups are spent after it.

Homepage

What visitors see at /

Which homepage visitors see at /. Home 2 is the new animated one; Home 1 stays reachable at home-1.html.

Persona demo
Shows the heart button on Home 2 with the family personas: Kareem, Salma, Custom.
No unsaved changes

API clients (lumina)

External apps, like bludesk, calling lumina's OpenAI-compatible API
NameIDKey prefixStatusCreatedLast used

Each client authenticates lumina's OpenAI-compatible API (POST /api/lumina/v1/chat/completions, plus /v1/models and /v1/usage) with Authorization: Bearer lum_.... Rotating or revoking a client invalidates its old key immediately. The CLI at api/scripts/lumina-client.js manages the same accounts from the server shell.

Live status

From /api/health