// integration

Zed with teamToken

Zed works with any OpenAI-compatible gateway, declared in settings.json. There are few fields, but one of them is required and is not ours to fill, and it is the reason answers later look truncated.

What the tool is

Zed is a code editor with a built-in assistant. It takes its model provider from its own settings, and an arbitrary OpenAI-compatible gateway has a section of its own there.

The config

// settings.json
{
  "language_models": {
    "openai_compatible": {
      "teamtoken": {
        "api_url": "https://api.teamtoken.store/v1",
        "available_models": [
          {
            "name": "gpt-5.6-sol",
            "display_name": "gpt-5.6-sol (teamToken)",
            "max_tokens": <the model's context window>
          }
        ]
      }
    }
  }
}

Models are listed by hand: unlike some extensions, Zed does not fetch the list itself. The upside is that you can declare only the ones you use instead of scrolling a whole catalog.

About max_tokens, which we will not fill for you

The field is required, and it concerns the editor's side: Zed uses it to decide how much fits in a conversation. The value should match the context window of the model you picked, and that window is a property of the model, to be looked up at its vendor.

We left a placeholder in the example deliberately. Our catalog carries no context window, only the model name and its input and output prices. Writing a plausible number here would pass a guess off as a specification, and you would reasonably take it for ours.

The practical consequence, which is why this section exists at all. Set it well below the real window and the editor starts trimming the conversation itself, before anything is sent. From the outside that looks like the gateway truncating answers, while there is no limit on our side and the request reaches us already cut.

Checking it

Open the assistant, pick the model you named in display_name, ask anything. An answer means both the address and the key arrived.

Zed asks for the key on first use of the provider and keeps it itself; it does not belong in the config file.

Which models to declare

gpt-5.3-codex for code work, gpt-5.6-sol for talking through a task. The full list comes from GET /v1/models, and that is where the name field should come from: it has to match the catalog exactly, while display_name can be anything.

Spend caps per key

A ceiling goes on the key in the dashboard, separately from the shared balance. For an editor that reaches for a model on every keystroke, that is not excessive.

When it does not work

Answers cut off mid-sentence
Start with max_tokens: too low a value trims the conversation on the editor's side. There is no truncation on ours.
The model does not appear in the list
Zed shows only what is listed in available_models. Nothing is fetched automatically; every model has to be added.
An error about an unknown model
The name field has to match the catalog exactly. Check against GET /v1/models.
Related
Kilo CodeCodex CLIMoving from OpenRouter
Get an API key