Set it up
- Install Aider. Aider 0.86 supports Python 3.10 to 3.12, and its own installer,
aider-install, sets up a matching Python for it. We usedpip install aider-chatin a Python 3.12 virtual environment.
python -m pip install aider-installaider-install- Point it at the API with two environment variables, and prefix every model with
openai/, Claude's too. The weak model writes commit messages and summaries, so a cheap one is enough.
export OPENAI_API_BASE="https://api.zurelay.com/v1"export OPENAI_API_KEY="zr_live_..."aider --model openai/claude-sonnet-5-5 --weak-model openai/deepseek-v4.1-flash# or all on DeepSeekaider --model openai/deepseek-v4.1-flash --weak-model openai/deepseek-v4.1-flash- Tell Aider about the models. These two files in your home folder fix its warning, its edit format and its cost display (next section). The prices are Zurelay's current ones, per token.
{ "openai/deepseek-v4.1-flash": { "max_input_tokens": 1000000, "input_cost_per_token": 0.00000003, "output_cost_per_token": 0.00000012, "cache_read_input_token_cost": 0.00000000074, "litellm_provider": "openai", "mode": "chat" }, "openai/claude-sonnet-5-5": { "max_input_tokens": 1000000, "input_cost_per_token": 0.00000079, "output_cost_per_token": 0.00000395, "cache_read_input_token_cost": 0.000000079, "litellm_provider": "openai", "mode": "chat" }}- name: openai/deepseek-v4.1-flash edit_format: diff use_repo_map: true- name: openai/claude-sonnet-5-5 edit_format: diff use_repo_map: true weak_model_name: openai/deepseek-v4.1-flash- Keep the setup in
~/.aider.conf.yml, so a plainaiderstarts with it. It holds your key, so keep it out of git.
model: openai/claude-sonnet-5-5weak-model: openai/deepseek-v4.1-flashopenai-api-base: https://api.zurelay.com/v1openai-api-key: zr_live_...What Aider gets wrong about new models
Aider looks a model up by its full name, and in version 0.86.2 it knew neither openai/claude-sonnet-5-5 nor openai/deepseek-v4.1-flash. Without the files above:
- It warns at every start:
Unknown context window size and costs, using sane defaults, then asks whether to open its docs. Amax_input_tokensentry in the metadata file is enough to stop it. - It uses the whole-file edit format, so the model sends back every file it changes in full. That costs more output tokens on big files and is slower.
edit_format: diffhas it send only search-and-replace blocks; both models applied them cleanly in our test. If a model's edits keep failing to apply, go back towholefor that model. - It shows no cost. With the prices in the metadata file, Aider's cost line matched our bill: it said $0.0036 for a Claude edit Zurelay billed $0.00357 for.
Claude: openai/ or anthropic/?
Aider can also reach Claude through Anthropic's format: --model anthropic/claude-sonnet-5-5 with ANTHROPIC_API_BASE=https://api.zurelay.com (no /v1) and ANTHROPIC_API_KEY set to the same key. It worked, and Aider knew the model that way. But with --cache-prompts it paid to write the prompt cache on both of our runs and never read from it, at about $0.0035 an edit. Through openai/, the second edit read 2,863 of its 3,682 prompt tokens from the cache without any setting, and cost $0.0025. We'd use openai/ for every model.
What it cost in our test
Edits to a small Python file in a fresh git repo, each committed by Aider. Every edit is two requests, the change on the main model and a commit message from DeepSeek V4.1 Flash. Zurelay billed:
| Model | Task | Requests | Prompt tokens (cached) | Cost |
|---|---|---|---|---|
| DeepSeek V4.1 Flash | Create hello.py (whole-file format) | 2 | 1,202 (0) | $0.000057 |
| DeepSeek V4.1 Flash | Edit hello.py (diff format) | 2 | 3,273 (149) | $0.00013 |
| Claude Sonnet 5.5 | Wrap the code in main() | 2 | 3,891 (151) | $0.0036 |
| Claude Sonnet 5.5 | Rename main() | 2 | 4,175 (3,007) | $0.0025 |
Aider's own prompt is small, about 2,800 to 3,700 tokens with the repo map, so a day of edits on DeepSeek costs cents. The two edits through anthropic/ aren't in the table.
Things to know
- Aider's cost line doesn't count cache hits on
openai/models: it said $0.0045 for the edit we were billed $0.0025 for. Your Zurelay usage page shows the real figure. - On Windows, Aider's chat needs a real console. In Git Bash it printed
Can't initialize prompt toolkit: Found xterm-256color; use PowerShell, Command Prompt or Windows Terminal. One-shot--messageruns work anywhere. - Aider reads
.aider.conf.yml,.aider.model.settings.ymland.aider.model.metadata.jsonfrom your home folder, the root of your git repo and the current folder. We tested the home folder.
Prices for the models you'd pair with
Per 1M tokens, the lab's list price and Zurelay's:
| Model | Input | Output | On Zurelay (in / out) |
|---|---|---|---|
| DeepSeek V4.1 Flash | $0.30 | $1.20 | $0.03 / $0.12 |
| Claude Sonnet 5.5 | $2.00 | $10.00 | $0.79 / $3.95 |
| Claude Opus 5.5 | $4.00 | $20.00 | $1.40 / $7.00 |
| GPT-6.1 Terra | $1.00 | $5.00 | $0.25 / $1.25 |
| Gemini 3.8 Flash | $0.75 | $3.75 | $0.22 / $1.10 |
| Kimi K3.1 Pro | $2.00 | $10.00 | $0.80 / $4.00 |
| GLM-5.3 | $1.40 | $4.40 | $0.38 / $1.21 |
Tested on November 3, 2026 with Aider 0.86.2 on Python 3.12, on Windows, against Zurelay's API. The short setup is in Aider in the docs. Aider's own documentation: OpenAI-compatible APIs and model settings.