Aider with teamToken
Aider needs no config of its own: it reads the ordinary OpenAI variables and takes the address from the one that sets the base URL. Setup is two lines, and the third one, carrying the model name, is where it breaks.
What the tool is
Aider is a terminal assistant that edits files in a repository and commits the changes. The provider comes from environment variables; there is no config file to create.
Two variables and the launch
export OPENAI_API_BASE="https://api.teamtoken.store/v1"
export OPENAI_API_KEY="<your teamToken key>"
aider --model openai/gpt-5.3-codexThe variables are the ordinary ones, the same the official OpenAI client uses. Only the address in the first changes.
The openai/ prefix is mandatory
The model goes in as openai/gpt-5.3-codex rather than plain gpt-5.3-codex. The prefix tells aider which protocol to use with the provider.
Without it aider tries to parse the name itself, finds no familiar match, and fails while picking a provider. No request goes out at all, so looking at the key, the address or the balance leads nowhere: none of them were reached.
The part after the prefix has to match the catalog exactly. GET /v1/models returns the names without a prefix; you add it yourself.
Where the prefix comes from
Aider does not talk to providers itself: routing is delegated entirely to litellm, which sits in its direct dependencies. That is where the name format comes from: openai/ is litellm's way of saying which protocol to use, rather than something aider invented.
A side effect that happens to suit us: our gateway is built on the same library. The same code runs on both ends of the connection, choosing a provider on your side and accepting the request on ours.
A check before launching
Separating a key problem from a prefix problem is easier beforehand, with one request.
curl https://api.teamtoken.store/v1/chat/completions \
-H "Authorization: Bearer $TEAMTOKEN_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-5.6-sol","messages":[{"role":"user","content":"ping"}]}'An answer means the key, the address and the balance are fine, so if aider still fails, the model name is the culprit. No answer means aider was never the issue.
Which models to use
openai/gpt-5.3-codex for editing code, openai/gpt-5.6-sol for talking a task through, openai/gpt-5.4-mini for small changes. The model changes with the launch flag; nothing needs reconfiguring.
Spend caps per key
Aider works across a repository and puts files into context, so spend follows project size more closely than question length. A separate key with a ceiling is worth setting up here.
When it does not work
openai/ prefix on the model name. Nothing is sent in that case; the error happens before the network.OPENAI_API_BASE, it should end in /v1.GET /v1/models rather than from memory.