Without AI the CRM works as a normal CRM. The agent needs one of these:
OpenRouter
OpenRouter is one key for every model vendor and the default for a self-hosted install.
- Create an account at openrouter.ai and buy credits. Credits are prepaid, there is no subscription.
- Create a key at openrouter.ai/keys.
- Open Settings, General, choose OpenRouter, paste the key and save.
The agent starts on openai/gpt-5.6-luna. At the time of writing OpenRouter lists it at 0.20 USD per million input tokens and 1.20 USD per million output tokens. Pick another model in the same panel, any id from openrouter.ai/models that supports tools works.
To keep the key out of the database, set OPENROUTER_API_KEY in deploy/.env instead and run docker compose up -d. A key pasted in the settings page wins over the variable.
Your own API key
Open Settings, General and add an OpenAI or Anthropic API key. The agent uses it from the next task on.
ChatGPT subscription (experimental)
The agent can use a ChatGPT subscription through the Codex login. This path is experimental and can stop working when OpenAI changes it.
Open Settings, General and start the ChatGPT sign-in. The page shows a link and a code. Open the link and enter the code.
The agent image does not contain the Codex command line. The first sign-in downloads it from npm into the codex volume. The download is about 280 MB. The agent needs internet access at that moment. The settings page shows "Starting the ChatGPT sign-in" while the download runs. When the download fails, the page shows the reason. Start the sign-in again when the agent is online.
The login and the Codex command line are kept in the codex volume, so they survive restarts and updates. After the first sign-in, the command line is also available in the container:
docker compose exec agent /data/codex/cli/node_modules/.bin/codex login status