Overview

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.
Option 1 — export in your shell (persists per session)
export TYPESAFE_API_KEY="tsk_..."
mlola browser doctor
Option 2 — make it permanent (zsh)
echo 'export TYPESAFE_API_KEY="tsk_..."' >> ~/.zshrc
source ~/.zshrc
Option 3 — inline for a single run (CI friendly)
TYPESAFE_API_KEY="tsk_..." npx @mlola/browser-cli browser run \
  --goal "Download my latest invoice" \
  --url https://billing.example.com/invoices
Option 4 — .env file (your runner must load it)
# .env
echo 'TYPESAFE_API_KEY=tsk_...' > .env
node --env-file=.env ./node_modules/.bin/mlola browser run --goal "..."
Option 5 — config file (recommended, nothing to export)
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#

VariableDefaultPurpose
TYPESAFE_API_KEY—Jev credential (required for the fast path)
MLOLA_JEV_BASE_URLhttps://api.typesafe.aiAPI base URL
MLOLA_JEV_MODELjev-latestModel id sent in the request
MLOLA_JEV_TIMEOUT_MS20000Per-request timeout

Choosing the decision provider#

Provider selection
mlola browser run --provider typesafe …   # fast path (needs a key)
mlola browser run --provider keyword  …   # offline baseline, no key required