Models and keys
A model profile is one saved way of reaching one model. Most stories use two.
The two roles#
Settings names a default for each under Defaults. A scenario may override them, and a story keeps whatever it started with.
- Writing model
- Writes the prose. This is the one worth spending on.
- Utility model
- Does the bookkeeping: closing chapters into summaries, keeping the ledger of facts and open goals, and filing people and places as the story names them. It runs on every turn, sees the same text, and never writes a word you read.
- Image profile
- Optional, and off unless you set one. Illustration is a separate backend — AI Horde, or a ComfyUI on your own machine — and it is off by default because a generation costs something without being asked for.
The fields#
- Profile name
- Yours. It is what the dropdowns show.
- Provider
- Anthropic, OpenAI, OpenRouter, or Local / OpenAI-compatible. The choice decides which sampling fields exist below and what the key is called.
- Model id
- The provider’s own identifier, exactly as they write it. On OpenRouter the dialog can fetch the list for you once a key is set.
- Base URLOPTIONAL
- The field that makes a local model work: point it at Ollama, LM Studio or llama.cpp on your own machine. It also covers a proxy or a self-hosted gateway.
- API key
- Typed here, stored in the Windows credential store, and never held in the database. On a local model, leave it empty — there is an Add a key anyway control for the proxies that want one regardless.
- Key name
- A name for the key, never the key itself. Profiles reference the name, so two profiles on the same provider share one stored key instead of asking you to paste it twice. Left alone it fills itself in per provider —
ANTHROPIC_API_KEY,OPENROUTER_API_KEY, and so on. - Default system promptOPTIONAL
- Prepended to whatever the scenario sends.
- Extra body
- A JSON object, merged into the request. For the provider-specific settings the form does not have a field for.
- Extra headers
- A JSON object. For a proxy that wants one.
Sampling#
The form shows only the fields your provider actually supports, because sending one that a provider rejects fails the whole request rather than being ignored.
- Anthropic
temperature,top_p,top_k. Temperature is capped at 1.0 — the Messages API refuses anything above it, where the others allow 2.0.- OpenAI, and local OpenAI-compatible
temperature,top_p,frequency_penalty,presence_penalty,seed.- OpenRouter
- All of the above plus
top_k,min_pandrepetition_penalty, and a Provider order field: comma-separated upstreams, most wanted first.
Three presets are offered — precise, balanced, creative — and they are ordinary starting points rather than anything clever. Balanced is temperature 1.0, top-p 0.95, min-p 0.05, repetition penalty 1.05. Anything you change afterwards is yours.
Your own key#
Nothing to set up beyond the profile. The application talks to your provider directly, the bill is theirs, and no Orihai server is involved at any point — there is nothing to sign in to and nothing to agree to.
The key is held in the Windows credential store. It is not written to the database, it is not in an export, and it is not in a backup. That also means it does not move with your data: see moving to another machine.
A model on your own machine#
Choose Local / OpenAI-compatible, leave the key empty, and put your server’s address in Base URL. Ollama, LM Studio and llama.cpp all answer on that shape.
Nothing leaves the computer, which makes it the only arrangement in which the maturity setting on a scenario is entirely between you and your own hardware.
Managed AI#
Optional, free while it is being tested, with a monthly allowance and no card. It is the one arrangement in which Orihai’s own servers process anything, and it needs an account at account.orihai.com.
Sign-in is a six-digit code emailed to you — never a link. Corporate mail scanners fetch every URL in a message, which would turn a sign-in link into a free address-validation service for whoever typed your address in.
What the server does and does not keep is set out in the privacy policy: your prompt and the reply pass through in memory for the length of one generation and are not stored, while one metered row per generation — operation, model, token counts, cost, status — is kept for as long as the account is. What managed AI will and will not write is the content policy.
Testing one#
Settings has Test a connection under the keys panel: it takes a profile and tells you whether it answers. Worth doing before starting a story rather than discovering it on the first turn.