Fast path: Jev API key
Routine decisions are made by the fast path — TypeSafe Jev — which needs an API key.
Overview#
Routine decisions are made by the fast path — TypeSafe Jev — which needs an API key. Without a key you can still run everything with the offline baseline (--provider keyword), but that is a deterministic demo baseline, not the decision model.
- Create a key at https://typesafe.ai (TypeSafe account → API keys).
- Store it in the environment — pick one of the options below.
- Verify with doctor until the "Jev fast path" line is green.
export TYPESAFE_API_KEY="tsk_..."
mlola browser doctor
echo 'export TYPESAFE_API_KEY="tsk_..."' >> ~/.zshrc
source ~/.zshrc
TYPESAFE_API_KEY="tsk_..." npx @mlola/browser-cli browser run \
--goal "Download my latest invoice" \
--url https://billing.example.com/invoices
# .env
echo 'TYPESAFE_API_KEY=tsk_...' > .env
node --env-file=.env ./node_modules/.bin/mlola browser run --goal "..."
mlola browser config init # writes mlola.config.json
mlola browser config show # what the file says + what actually resolved
# and if you only have an OpenRouter key, the fast path runs on it too:
export OPENROUTER_API_KEY=...
mlola browser run --fast openrouter --goal "Download my latest invoice" --url https://...
Overriding the endpoint or model#
| Variable | Default | Purpose |
|---|---|---|
| TYPESAFE_API_KEY | — | Jev credential (required for the fast path) |
| MLOLA_JEV_BASE_URL | https://api.typesafe.ai | API base URL |
| MLOLA_JEV_MODEL | jev-latest | Model id sent in the request |
| MLOLA_JEV_TIMEOUT_MS | 20000 | Per-request timeout |
Choosing the decision provider#
mlola browser run --provider typesafe … # fast path (needs a key)
mlola browser run --provider keyword … # offline baseline, no key required