Using Gray
Providers & models
Connect Gray to any OpenAI-compatible endpoint — OpenRouter, DeepSeek, OpenAI, Anthropic, Cerebras — and switch models mid-session.
Source: crates/gray/src/setup
Gray speaks the OpenAI chat-completions protocol over SSE, so any compatible endpoint works out of the box: OpenAI, Anthropic, Google, OpenRouter, DeepSeek, Groq, Mistral and xAI, plus local models through Ollama, vLLM or LM Studio. Claude models get Anthropic-style prompt caching. The default base URL is OpenRouter.
Account sign-in is separate from providers and entirely optional: `gray login` enrolls this machine with gray.alignment.id using a one-time code from the site. Nothing in gray is gated on it, and no provider needs it.
Keys
Keys are stored per provider in ~/.gray/auth.json with 0600 permissions. Environment variables win over stored keys, so CI and one-off shells stay easy.
/connect # provider menu: free tier · API key · local /login # optional gray.alignment.id account /model # searchable picker from the bundled catalog /thinking # reasoning effort