Zed with a custom LLM provider

Add this provider to your Zed settings.json and paste your key when Zed asks, and Zed runs on Claude, GPT and Grok models through your AIGROW key.

Already have a code? Redeem it on API access, then create a key.

Your Zed settings.json

"language_models": {
  "anthropic_compatible": {
    "aigrow": {
      "api_url": "https://aigrow.gg",
      "available_models": [
        { "name": "claude-opus-5.5", "max_tokens": 1000000,
          "capabilities": { "tools": true, "images": false, "prompt_caching": true } }
      ]
    }
  }
}

Swap ag_your_key_here for a key from API access.

Where the setting lives

macOS and Linux
~/.config/zed/settings.json
Or add it from the settingsRun agent: open settings, find Add Provider under LLM Providers, choose Anthropic, and fill in the name, the API URL https://aigrow.gg, the model id and the context window.
Give it the keyPaste the key in the provider settings, which keep it in the system keychain, or set AIGROW_API_KEY in the environment. Never put the key in settings.json.

Claude, GPT and Grok together

Claude models go on the Anthropic compatible provider, without /v1, with prompt caching on. GPT and Grok go on an OpenAI compatible one, with /v1, and their key goes in AIGROW_OPENAI_API_KEY.

{
  "language_models": {
    "anthropic_compatible": {
      "aigrow": {
        "api_url": "https://aigrow.gg",
        "available_models": [
          {
            "name": "claude-opus-5.5",
            "display_name": "Claude Opus 5.5",
            "max_tokens": 1000000,
            "capabilities": {
              "tools": true,
              "images": false,
              "prompt_caching": true
            }
          },
          {
            "name": "claude-sonnet-5.5",
            "display_name": "Claude Sonnet 5.5",
            "max_tokens": 1000000,
            "capabilities": {
              "tools": true,
              "images": false,
              "prompt_caching": true
            }
          }
        ]
      }
    },
    "openai_compatible": {
      "aigrow-openai": {
        "api_url": "https://aigrow.gg/v1",
        "available_models": [
          {
            "name": "gpt-6-astra",
            "display_name": "GPT-6 Astra",
            "max_tokens": 1050000,
            "capabilities": {
              "tools": true,
              "images": false,
              "chat_completions": true
            }
          },
          {
            "name": "grok-4.7",
            "display_name": "Grok 4.7",
            "max_tokens": 500000,
            "capabilities": {
              "tools": true,
              "images": false,
              "chat_completions": true
            }
          }
        ]
      }
    }
  }
}

Which model to use

Put the id in exactly as it is written here.

Claude Opus 5.5claude-opus-5.5
The default in every block on this page and a good main model for agent work. Context: 1,000,000 tokens.
Claude Sonnet 5.5claude-sonnet-5.5
Costs the least over a long session: most of what an agent sends is read back from the prompt cache, and Sonnet’s cache reads are the cheapest here. Context: 1,000,000 tokens.
Claude Fable 5.1claude-fable-5.1
Costs more per token than Opus. Compare the two on the coding leaderboard before you switch. Context: 1,000,000 tokens.

The price list has every id and its credit rate, Claude API pricing has the list prices, and the coding leaderboard compares the models on coding prompts.

Check that it works

First the key on its own, then Zed with it.

The key

Ask for the model list. It needs a valid key and costs nothing.

curl https://aigrow.gg/v1/models -H "Authorization: Bearer ag_your_key_here"

A working key gets the list back:

{
  "object": "list",
  "data": [
    { "id": "claude-opus-5.5", "object": "model", ... },
    { "id": "claude-fable-5.1", "object": "model", ... },
    { "id": "gpt-6-astra", "object": "model", ... },
    { "id": "claude-sonnet-5.5", "object": "model", ... },
    { "id": "gpt-6.1-sol", "object": "model", ... },
    { "id": "grok-4.7", "object": "model", ... },
    ...
  ],
  "has_more": false
}

Zed

Open the agent panel, pick the model under aigrow and send this prompt.

Reply with the word ready

A working setup answers in the panel:

ready

When it fails

The Zed errors first, then the answers the endpoint gives any tool.

404 on the Claude provider
The api_url ends in /v1. On the Anthropic compatible provider it is https://aigrow.gg.
404 on a GPT model
capabilities.chat_completions is false, which sends the model to the Responses API. Set it to true.
My tool says 401 or authentication error
The key is missing or mistyped. Copy it again from API access on the dashboard, and make sure it is sent as the key, not as a model name. A revoked key fails the same way: create a new one and swap it in.
I get 402 or a message about credit
Your balance is empty. Open API access on the dashboard, redeem a code or buy another pack, and the next request goes through. Nothing else needs to change.
It says 404 or Unknown model
The model has to be one the endpoint serves, for example claude-opus-5.5. The provider’s own spellings work too (claude-opus-5-5, anthropic/claude-opus-5.5), but a dated id or any model outside the catalogue is rejected before the request is forwarded, and nothing is billed. Request GET /v1/models with your key for the live list, or read the ids on the price list.
Requests are rejected with 429
The endpoint’s capacity is shared by every buyer: about 20 requests a minute and 4 at once. Each 429 carries a retry-after header, and the OpenAI and Anthropic SDKs wait that long and retry on their own. In a loop of your own, wait the seconds it names or lower your concurrency.
The model is unavailable right now
A 404 that says the model is not available right now means it is briefly down at the upstream provider, not a problem with your key or balance. Retry in a moment or send the request to another model.
I get a 502 or 503
A transient upstream or configuration hiccup, not a charge against your balance. Retry the request; if it keeps failing, reach us through the store and we will look into it.

What does not work through AIGROW

  • The Responses API for GPT models. Keep chat_completions true on the OpenAI compatible provider.

  • Live web search inside the model. A web search tool sent with a request is answered from what the model already knows, with no live results. A tool that fetches pages on your own machine still works.

  • Any endpoint past these three: /v1/messages, /v1/chat/completions and /v1/models. The Responses API, embeddings and token counting answer 404.

  • Router fields such as models, route, provider and plugins. They are dropped, so a request always goes to the one model it names.

What a month of Zed costs

A developer working all day, with most of each request read back from the prompt cache, priced at the list rate and through credit. Change the model to compare.

Claude Opus 5.5, Coding agent: $214.20 a month at the list price, $100.80 through AIGROW credit, $113.40 less (53%).

Questions about Zed and a custom API

Anthropic compatible or OpenAI compatible in Zed?
Both work. Anthropic compatible, with api_url https://aigrow.gg, suits Claude models and prompt caching. OpenAI compatible, with api_url https://aigrow.gg/v1, runs GPT and Grok.
Where does Zed keep the key?
In the system keychain when you paste it in the provider settings, or in an environment variable named after the provider, such as AIGROW_API_KEY. Zed’s docs say never to put it in settings.json.
Should I turn on prompt caching?
Yes, for Claude models on the Anthropic compatible provider. Zed then marks the parts of the prompt to cache, and cache reads cost less than fresh input.

Sources: Zed Use API access · Zed LLM providers · Zed Configuring Zed. Read 21 October 2026.

Set up another tool

  • Claude CodeAnthropic protocol

    Four environment variables, in the shell or in settings.json.

  • ClineOpenAI protocol

    The OpenAI Compatible provider, four fields in the settings screen.

  • Roo CodeOpenAI protocol

    The OpenAI Compatible provider, the same fields as Cline.

  • Kilo CodeOpenAI protocol

    A custom provider in the Providers tab; the model list fills itself.

  • ContinueOpenAI protocol

    A models entry in config.yaml, with provider openai and an apiBase.

  • AiderOpenAI protocol

    OPENAI_API_BASE and OPENAI_API_KEY, then openai/ before the model id.

  • OpenCodeOpenAI protocol

    A provider block in opencode.json and the key through /connect.

  • GooseOpenAI protocol

    The OpenAI provider with OPENAI_HOST, or a custom provider file.

  • Vercel AI SDKAnthropic and OpenAI protocols

    The OpenAI Compatible provider for every model, or the Anthropic provider for Claude.

  • OpenAI Agents SDKOpenAI protocol

    Your own AsyncOpenAI client, switched to chat completions, with tracing off.

  • LangChainAnthropic and OpenAI protocols

    ChatOpenAI with base_url for every model, or ChatAnthropic for Claude.

The API guide has the SDKs, curl, the endpoints and the rate limits.

Paste the block and Zed runs on your credit.

Buy a credit pack, redeem the code from your email on API access, create a key and put it in place of ag_your_key_here.