One base URL, one key, every tool. Pick your client below and follow the steps.
Sign in, open Dashboard → API Keys, create a key and copy it. Keys are shown once, so store them safely.
Open API KeysExport the two environment variables in your shell (add them to ~/.zshrc or ~/.bashrc to persist):
export ANTHROPIC_BASE_URL="https://lucif.ai" export ANTHROPIC_AUTH_TOKEN="sk-your-lucif-key"
Use lucif-claude so the CLI accepts the model id; routing stays fully automatic behind it.
claude --model lucif-claude # or set it as the default for the session claude config set model lucif-claude
In Claude Desktop: Settings → Developer → Edit Config (or the 3rd-party gateway panel on newer builds), then point the inference gateway at LUCIF.
{
"inferenceGatewayBaseUrl": "https://lucif.ai",
"inferenceGatewayApiKey": "sk-your-lucif-key",
"inferenceModels": ["lucif-claude"]
}
Restart Claude Desktop, pick lucif-claude from the model picker, and ship.
Place it in your project root (or ~/.config/opencode/config.json for global use):
{
"provider": {
"lucif": {
"npm": "@ai-sdk/openai-compatible",
"name": "LUCIF API",
"options": {
"baseURL": "https://lucif.ai/v1",
"apiKey": "sk-your-lucif-key"
},
"models": {
"lucif": { "name": "lucif" }
}
}
},
"model": "lucif/lucif"
}
opencode
# then /models → select lucif
Kiro → Settings → AI Model → Add custom model. Choose an OpenAI-compatible provider and fill in:
Base URL : https://lucif.ai/v1 API Key : sk-your-lucif-key Model ID : lucif-claude
Select lucif-claude in the Kiro chat/agent panel. Autopilot & powers specs now run on the lucif routing core.
Set base_url and your key. It works with OpenAI SDKs, LangChain, LlamaIndex, cURL and more.
curl https://lucif.ai/v1/chat/completions \ -H "Authorization: Bearer sk-your-lucif-key" \ -H "Content-Type: application/json" \ -d '{ "model": "lucif", "messages": [{ "role": "user", "content": "Hello, agent." }] }'
from openai import OpenAI client = OpenAI( base_url="https://lucif.ai/v1", api_key="sk-your-lucif-key", ) res = client.chat.completions.create( model="lucif", messages=[{"role": "user", "content": "Hello, agent."}], ) print(res.choices[0].message.content)