Bring your own model: OpenRouter, DeepSeek, and Z.AI for Atmos AI
The AI model landscape moves faster than any single vendor's roadmap. A model that was the obvious choice last quarter is often outclassed - or undercut on price by an order of magnitude - by one you hadn't heard of this quarter. Locking your infrastructure assistant to one vendor's API means you either overpay or miss out, and for teams outside the US, a US-only provider list can be a non-starter entirely.
The Problem
Atmos AI let you talk to your infrastructure through a fixed set of API providers. If you wanted to try a cheaper or non-US model - route through an aggregator, run DeepSeek directly, or use a GLM model from Z.AI - you were out of luck unless you were willing to point the generic OpenAI provider at a hand-copied base URL and hope the defaults lined up. There was no first-class way to say "use OpenRouter" and get a sensible model, API-key variable, and endpoint out of the box.
The Fix
Atmos AI adds three OpenAI-compatible API providers you can select by name:
- OpenRouter (
openrouter) - a router that fronts hundreds of models behind one API key. Switch models by changing themodelslug (anthropic/claude-sonnet-4-5,openai/gpt-4o,deepseek/deepseek-chat, ...) without touching anything else. - DeepSeek (
deepseek) - the DeepSeek API directly, includingdeepseek-reasonerfor the reasoning model. Low cost for a lot of everyday infrastructure questions. - Z.AI (
zai) - Zhipu's GLM models over their OpenAI-compatible endpoint.
Each one behaves like every other Atmos AI provider: set an API key with the !env function, and
optionally override the model, base_url, or token limits. Because they are OpenAI-compatible, they
work everywhere the existing providers do - atmos ai ask, atmos ai chat, and the --ai flag.
How to Use It
Add the provider under ai.providers in atmos.yaml and select it as the default:
ai:
enabled: true
default_provider: openrouter
providers:
openrouter:
model: "deepseek/deepseek-chat" # any provider-prefixed slug
api_key: !env "OPENROUTER_API_KEY"
deepseek:
model: "deepseek-chat" # or "deepseek-reasoner"
api_key: !env "DEEPSEEK_API_KEY"
zai:
model: "glm-5.3"
api_key: !env "ZAI_API_KEY"
Then ask away:
export OPENROUTER_API_KEY=sk-or-...
atmos ai ask "What stacks and components do we have?"
See the full list of options on the AI providers configuration page.
Get Involved
The provider list will keep growing as the model landscape shifts. If there's an OpenAI-compatible provider you want to see as a first-class name in Atmos, open an issue or a pull request on cloudposse/atmos - adding one is a small, well-templated change.
