aimldocs
Integrations

Zed

Add ai.ml to Zed as an OpenAI-compatible LLM provider.

Zed lists OpenAI-compatible providers under language_models.openai_compatible in its settings.json. The provider's name becomes the name of its key variable: a provider called aiml reads AIML_API_KEY. You can also paste the key in Agent Settings → LLM Providers, which keeps it in the system keychain. It never belongs in settings.json.

cookbook/integrations/zed/settings.json
{
  "language_models": {
    "openai_compatible": {
      "aiml": {
        "api_url": "https://api.ai.ml/v1",
        "available_models": [
          {
            "name": "anthropic/claude-sonnet-4.6",
            "display_name": "Claude Sonnet 4.6 (ai.ml)",
            "max_tokens": 200000,
            "max_output_tokens": 64000,
            "capabilities": { "tools": true, "images": true, "parallel_tool_calls": false, "prompt_cache_key": false }
          },
          {
            "name": "openai/gpt-5",
            "display_name": "GPT-5 (ai.ml)",
            "max_tokens": 400000,
            "max_output_tokens": 128000,
            "capabilities": { "tools": true, "images": true, "parallel_tool_calls": false, "prompt_cache_key": false }
          }
        ]
      }
    }
  }
}
  • List every model you want under available_models. Zed does not read the model list from the API. Take max_tokens (the context window) and max_output_tokens from GET /v1/models.
  • Zed sends max_completion_tokens. ai.ml accepts it on every model, whichever provider serves it.
  • For Anthropic's protocol instead, use language_models.anthropic_compatible with api_url set to https://api.ai.ml, without /v1.

Checked against Zed's documentation on 2026-10-02; not run here.