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