Every new model provider looks simple until it reaches your actual coding tools.

Qwen has DashScope's OpenAI-compatible mode. OpenRouter gives you one API for a huge list of models. Both sound like they should be easy to plug into an AI coding workflow.

Then the tools remind you that "OpenAI-compatible" does not mean "compatible with everything I use."

Claude Code expects Anthropic Messages. Codex expects the Responses shape. Other clients speak Chat Completions. A provider can have a perfectly good API and still force you into another round of base URLs, API keys, model aliases, and small wrapper scripts.

That was the part I wanted to avoid.