| title | Choose an AI provider |
|---|---|
| description | Configure one supported model provider before creating workflows, post-scripts, or scans. |
open·kritt needs one AI access method. You can configure more than one and choose between them per run, but a single working provider is enough to start.
| Provider | Access method | Model input |
|---|---|---|
| Codex | ChatGPT/Codex login or an OpenAI Platform key | Account-specific picker |
| Claude | Claude subscription login or ANTHROPIC_API_KEY |
Subscription aliases or account-specific picker |
| OpenRouter | OPENROUTER_API_KEY |
Searchable authenticated catalog, with an exact-ID fallback |
| xAI | Grok device login or XAI_API_KEY |
Searchable authenticated catalog (with key), with an exact-ID fallback |
```bash
./kritt setup
```
If open·kritt is already running, stop the attached stack with Ctrl+C first. Existing
containers do not receive a newly changed `.env` value until Compose recreates them.
API keys configured by the CLI are written to the repository's .env file. Codex logins
are stored under ENGINE_CODEX_ACCOUNTS_HOST, which defaults to
./.data/codex-accounts; a Claude login is stored under ENGINE_CLAUDE_HOME, which
defaults to ./.data/claude; a Grok/xAI login is stored under
ENGINE_GROK_HOME_HOST / ENGINE_GROK_ACCOUNTS_HOST, which default to ./.data/grok
and ./.data/grok-accounts. The Accounts page keeps Codex/Claude/xAI account paths and
its OpenRouter and xAI keys synchronized with .env, and mirrors those keys under
.data/engine/credentials so running services see changes immediately. .env and
.data/ are ignored by Git.
The backend has private write access to .env and the provider stores so Accounts can
persist additions and removals, but secret values are never returned by the API. The
engine receives the actual credential when it starts a model harness.
Next: configure the recommended Codex provider, Claude Code, or OpenRouter, or xAI.