--- 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 | Use the recommended ChatGPT device login or an OpenAI Platform API key. Sign in with an eligible Claude subscription, or use an Anthropic API key. Use one key to access compatible models through OpenRouter. ## Common setup flow From the repository root, run: ```bash ./kritt setup ``` Select **Codex login**, **OpenAI API key**, **Codex API key**, **Anthropic API key**, or **OpenRouter API key**. Follow the provider guide above to obtain the correct credential. The CLI configures keys and Codex login; Claude subscription login is available from the running application's **Accounts** page. ```bash ./kritt start ``` 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. Run `./kritt setup` again and confirm the selected method is marked as present. The workflow generator, post-script generator, and new-scan form will list only providers that open·kritt detects as configured. ## Credential handling 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`. The Accounts page keeps Codex account paths and its OpenRouter key synchronized with `.env`, and mirrors the OpenRouter key under `.data/engine/credentials` so running services see changes immediately. `.env` and `.data/` are ignored by Git. Treat `.env`, `./.data/codex`, `./.data/codex-accounts`, `./.data/claude`, and the engine credential store as secrets. Never commit them, paste them into an issue, or share them with another user. Revoke and replace a credential immediately if it is exposed. 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. `GITHUB_TOKEN` is not an AI provider credential. It is optional and is only needed to clone private GitHub repositories or dependencies. Next: configure the recommended [Codex provider](/ai-provider-setup/codex), [Claude Code](/ai-provider-setup/claude-code), or [OpenRouter](/ai-provider-setup/openrouter).