chatmcp-cli 0.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aider/__init__.py +20 -0
- aider/__main__.py +4 -0
- aider/_version.py +21 -0
- aider/analytics.py +250 -0
- aider/args.py +926 -0
- aider/args_formatter.py +228 -0
- aider/coders/__init__.py +34 -0
- aider/coders/architect_coder.py +48 -0
- aider/coders/architect_prompts.py +40 -0
- aider/coders/ask_coder.py +9 -0
- aider/coders/ask_prompts.py +35 -0
- aider/coders/base_coder.py +2483 -0
- aider/coders/base_prompts.py +60 -0
- aider/coders/chat_chunks.py +64 -0
- aider/coders/context_coder.py +53 -0
- aider/coders/context_prompts.py +75 -0
- aider/coders/editblock_coder.py +657 -0
- aider/coders/editblock_fenced_coder.py +10 -0
- aider/coders/editblock_fenced_prompts.py +143 -0
- aider/coders/editblock_func_coder.py +141 -0
- aider/coders/editblock_func_prompts.py +27 -0
- aider/coders/editblock_prompts.py +174 -0
- aider/coders/editor_diff_fenced_coder.py +9 -0
- aider/coders/editor_diff_fenced_prompts.py +11 -0
- aider/coders/editor_editblock_coder.py +8 -0
- aider/coders/editor_editblock_prompts.py +18 -0
- aider/coders/editor_whole_coder.py +8 -0
- aider/coders/editor_whole_prompts.py +10 -0
- aider/coders/help_coder.py +16 -0
- aider/coders/help_prompts.py +46 -0
- aider/coders/patch_coder.py +706 -0
- aider/coders/patch_prompts.py +161 -0
- aider/coders/search_replace.py +757 -0
- aider/coders/shell.py +37 -0
- aider/coders/single_wholefile_func_coder.py +102 -0
- aider/coders/single_wholefile_func_prompts.py +27 -0
- aider/coders/udiff_coder.py +429 -0
- aider/coders/udiff_prompts.py +115 -0
- aider/coders/udiff_simple.py +14 -0
- aider/coders/udiff_simple_prompts.py +25 -0
- aider/coders/wholefile_coder.py +144 -0
- aider/coders/wholefile_func_coder.py +134 -0
- aider/coders/wholefile_func_prompts.py +27 -0
- aider/coders/wholefile_prompts.py +67 -0
- aider/commands.py +1665 -0
- aider/copypaste.py +72 -0
- aider/deprecated.py +126 -0
- aider/diffs.py +128 -0
- aider/dump.py +29 -0
- aider/editor.py +147 -0
- aider/exceptions.py +107 -0
- aider/format_settings.py +26 -0
- aider/gui.py +545 -0
- aider/help.py +163 -0
- aider/help_pats.py +19 -0
- aider/history.py +143 -0
- aider/io.py +1175 -0
- aider/linter.py +304 -0
- aider/llm.py +47 -0
- aider/main.py +1267 -0
- aider/mdstream.py +243 -0
- aider/models.py +1286 -0
- aider/onboarding.py +428 -0
- aider/openrouter.py +128 -0
- aider/prompts.py +64 -0
- aider/queries/tree-sitter-language-pack/README.md +7 -0
- aider/queries/tree-sitter-language-pack/arduino-tags.scm +5 -0
- aider/queries/tree-sitter-language-pack/c-tags.scm +9 -0
- aider/queries/tree-sitter-language-pack/chatito-tags.scm +16 -0
- aider/queries/tree-sitter-language-pack/commonlisp-tags.scm +122 -0
- aider/queries/tree-sitter-language-pack/cpp-tags.scm +15 -0
- aider/queries/tree-sitter-language-pack/csharp-tags.scm +26 -0
- aider/queries/tree-sitter-language-pack/d-tags.scm +26 -0
- aider/queries/tree-sitter-language-pack/dart-tags.scm +92 -0
- aider/queries/tree-sitter-language-pack/elisp-tags.scm +5 -0
- aider/queries/tree-sitter-language-pack/elixir-tags.scm +54 -0
- aider/queries/tree-sitter-language-pack/elm-tags.scm +19 -0
- aider/queries/tree-sitter-language-pack/gleam-tags.scm +41 -0
- aider/queries/tree-sitter-language-pack/go-tags.scm +42 -0
- aider/queries/tree-sitter-language-pack/java-tags.scm +20 -0
- aider/queries/tree-sitter-language-pack/javascript-tags.scm +88 -0
- aider/queries/tree-sitter-language-pack/lua-tags.scm +34 -0
- aider/queries/tree-sitter-language-pack/ocaml-tags.scm +115 -0
- aider/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +98 -0
- aider/queries/tree-sitter-language-pack/pony-tags.scm +39 -0
- aider/queries/tree-sitter-language-pack/properties-tags.scm +5 -0
- aider/queries/tree-sitter-language-pack/python-tags.scm +14 -0
- aider/queries/tree-sitter-language-pack/r-tags.scm +21 -0
- aider/queries/tree-sitter-language-pack/racket-tags.scm +12 -0
- aider/queries/tree-sitter-language-pack/ruby-tags.scm +64 -0
- aider/queries/tree-sitter-language-pack/rust-tags.scm +60 -0
- aider/queries/tree-sitter-language-pack/solidity-tags.scm +43 -0
- aider/queries/tree-sitter-language-pack/swift-tags.scm +51 -0
- aider/queries/tree-sitter-language-pack/udev-tags.scm +20 -0
- aider/queries/tree-sitter-languages/README.md +23 -0
- aider/queries/tree-sitter-languages/c-tags.scm +9 -0
- aider/queries/tree-sitter-languages/c_sharp-tags.scm +46 -0
- aider/queries/tree-sitter-languages/cpp-tags.scm +15 -0
- aider/queries/tree-sitter-languages/dart-tags.scm +91 -0
- aider/queries/tree-sitter-languages/elisp-tags.scm +8 -0
- aider/queries/tree-sitter-languages/elixir-tags.scm +54 -0
- aider/queries/tree-sitter-languages/elm-tags.scm +19 -0
- aider/queries/tree-sitter-languages/go-tags.scm +30 -0
- aider/queries/tree-sitter-languages/hcl-tags.scm +77 -0
- aider/queries/tree-sitter-languages/java-tags.scm +20 -0
- aider/queries/tree-sitter-languages/javascript-tags.scm +88 -0
- aider/queries/tree-sitter-languages/kotlin-tags.scm +27 -0
- aider/queries/tree-sitter-languages/ocaml-tags.scm +115 -0
- aider/queries/tree-sitter-languages/ocaml_interface-tags.scm +98 -0
- aider/queries/tree-sitter-languages/php-tags.scm +26 -0
- aider/queries/tree-sitter-languages/python-tags.scm +12 -0
- aider/queries/tree-sitter-languages/ql-tags.scm +26 -0
- aider/queries/tree-sitter-languages/ruby-tags.scm +64 -0
- aider/queries/tree-sitter-languages/rust-tags.scm +60 -0
- aider/queries/tree-sitter-languages/scala-tags.scm +65 -0
- aider/queries/tree-sitter-languages/typescript-tags.scm +41 -0
- aider/reasoning_tags.py +82 -0
- aider/repo.py +623 -0
- aider/repomap.py +847 -0
- aider/report.py +200 -0
- aider/resources/__init__.py +3 -0
- aider/resources/model-metadata.json +468 -0
- aider/resources/model-settings.yml +1767 -0
- aider/run_cmd.py +132 -0
- aider/scrape.py +284 -0
- aider/sendchat.py +61 -0
- aider/special.py +203 -0
- aider/urls.py +17 -0
- aider/utils.py +338 -0
- aider/versioncheck.py +113 -0
- aider/voice.py +187 -0
- aider/waiting.py +221 -0
- aider/watch.py +318 -0
- aider/watch_prompts.py +12 -0
- aider/website/Gemfile +8 -0
- aider/website/_includes/blame.md +162 -0
- aider/website/_includes/get-started.md +22 -0
- aider/website/_includes/help-tip.md +5 -0
- aider/website/_includes/help.md +24 -0
- aider/website/_includes/install.md +5 -0
- aider/website/_includes/keys.md +4 -0
- aider/website/_includes/model-warnings.md +67 -0
- aider/website/_includes/multi-line.md +22 -0
- aider/website/_includes/python-m-aider.md +5 -0
- aider/website/_includes/recording.css +228 -0
- aider/website/_includes/recording.md +34 -0
- aider/website/_includes/replit-pipx.md +9 -0
- aider/website/_includes/works-best.md +1 -0
- aider/website/_sass/custom/custom.scss +103 -0
- aider/website/docs/config/adv-model-settings.md +1881 -0
- aider/website/docs/config/aider_conf.md +527 -0
- aider/website/docs/config/api-keys.md +90 -0
- aider/website/docs/config/dotenv.md +478 -0
- aider/website/docs/config/editor.md +127 -0
- aider/website/docs/config/model-aliases.md +103 -0
- aider/website/docs/config/options.md +843 -0
- aider/website/docs/config/reasoning.md +209 -0
- aider/website/docs/config.md +44 -0
- aider/website/docs/faq.md +378 -0
- aider/website/docs/git.md +76 -0
- aider/website/docs/index.md +47 -0
- aider/website/docs/install/codespaces.md +39 -0
- aider/website/docs/install/docker.md +57 -0
- aider/website/docs/install/optional.md +100 -0
- aider/website/docs/install/replit.md +8 -0
- aider/website/docs/install.md +115 -0
- aider/website/docs/languages.md +264 -0
- aider/website/docs/legal/contributor-agreement.md +111 -0
- aider/website/docs/legal/privacy.md +104 -0
- aider/website/docs/llms/anthropic.md +77 -0
- aider/website/docs/llms/azure.md +48 -0
- aider/website/docs/llms/bedrock.md +132 -0
- aider/website/docs/llms/cohere.md +34 -0
- aider/website/docs/llms/deepseek.md +32 -0
- aider/website/docs/llms/gemini.md +49 -0
- aider/website/docs/llms/github.md +105 -0
- aider/website/docs/llms/groq.md +36 -0
- aider/website/docs/llms/lm-studio.md +39 -0
- aider/website/docs/llms/ollama.md +75 -0
- aider/website/docs/llms/openai-compat.md +39 -0
- aider/website/docs/llms/openai.md +58 -0
- aider/website/docs/llms/openrouter.md +78 -0
- aider/website/docs/llms/other.md +103 -0
- aider/website/docs/llms/vertex.md +50 -0
- aider/website/docs/llms/warnings.md +10 -0
- aider/website/docs/llms/xai.md +53 -0
- aider/website/docs/llms.md +54 -0
- aider/website/docs/more/analytics.md +122 -0
- aider/website/docs/more/edit-formats.md +116 -0
- aider/website/docs/more/infinite-output.md +137 -0
- aider/website/docs/more-info.md +8 -0
- aider/website/docs/recordings/auto-accept-architect.md +31 -0
- aider/website/docs/recordings/dont-drop-original-read-files.md +35 -0
- aider/website/docs/recordings/index.md +21 -0
- aider/website/docs/recordings/model-accepts-settings.md +69 -0
- aider/website/docs/recordings/tree-sitter-language-pack.md +80 -0
- aider/website/docs/repomap.md +112 -0
- aider/website/docs/scripting.md +100 -0
- aider/website/docs/troubleshooting/aider-not-found.md +24 -0
- aider/website/docs/troubleshooting/edit-errors.md +76 -0
- aider/website/docs/troubleshooting/imports.md +62 -0
- aider/website/docs/troubleshooting/models-and-keys.md +54 -0
- aider/website/docs/troubleshooting/support.md +79 -0
- aider/website/docs/troubleshooting/token-limits.md +96 -0
- aider/website/docs/troubleshooting/warnings.md +12 -0
- aider/website/docs/troubleshooting.md +11 -0
- aider/website/docs/usage/browser.md +57 -0
- aider/website/docs/usage/caching.md +49 -0
- aider/website/docs/usage/commands.md +132 -0
- aider/website/docs/usage/conventions.md +119 -0
- aider/website/docs/usage/copypaste.md +121 -0
- aider/website/docs/usage/images-urls.md +48 -0
- aider/website/docs/usage/lint-test.md +118 -0
- aider/website/docs/usage/modes.md +211 -0
- aider/website/docs/usage/not-code.md +179 -0
- aider/website/docs/usage/notifications.md +87 -0
- aider/website/docs/usage/tips.md +79 -0
- aider/website/docs/usage/tutorials.md +30 -0
- aider/website/docs/usage/voice.md +121 -0
- aider/website/docs/usage/watch.md +294 -0
- aider/website/docs/usage.md +92 -0
- aider/website/share/index.md +101 -0
- chatmcp_cli-0.1.0.dist-info/METADATA +502 -0
- chatmcp_cli-0.1.0.dist-info/RECORD +228 -0
- chatmcp_cli-0.1.0.dist-info/WHEEL +5 -0
- chatmcp_cli-0.1.0.dist-info/entry_points.txt +3 -0
- chatmcp_cli-0.1.0.dist-info/licenses/LICENSE.txt +202 -0
- chatmcp_cli-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,209 @@
|
|
1
|
+
---
|
2
|
+
parent: Configuration
|
3
|
+
nav_order: 110
|
4
|
+
description: How to configure reasoning model settings from secondary providers.
|
5
|
+
---
|
6
|
+
|
7
|
+
# Reasoning models
|
8
|
+
|
9
|
+

|
10
|
+
|
11
|
+
## Basic usage
|
12
|
+
|
13
|
+
Aider is configured to work with most popular reasoning models out of the box.
|
14
|
+
You can use them like this:
|
15
|
+
|
16
|
+
```bash
|
17
|
+
# Sonnet uses a thinking token budget
|
18
|
+
aider --model sonnet --thinking-tokens 8k
|
19
|
+
|
20
|
+
# o3-mini uses low/medium/high reasoning effort
|
21
|
+
aider --model o3-mini --reasoning-effort high
|
22
|
+
|
23
|
+
# R1 doesn't have configurable thinking/reasoning
|
24
|
+
aider --model r1
|
25
|
+
```
|
26
|
+
|
27
|
+
Inside the aider chat, you can use `/thinking-tokens 4k` or `/reasoning-effort low` to change
|
28
|
+
the amount of reasoning.
|
29
|
+
|
30
|
+
The rest of this document describes more advanced details which are mainly needed
|
31
|
+
if you're configuring aider to work with a lesser known reasoning model or one served
|
32
|
+
via an unusual provider.
|
33
|
+
|
34
|
+
## Reasoning settings
|
35
|
+
|
36
|
+
Different models support different reasoning settings. Aider provides several ways to control reasoning behavior:
|
37
|
+
|
38
|
+
### Reasoning effort
|
39
|
+
|
40
|
+
You can use the `--reasoning-effort` switch to control the reasoning effort
|
41
|
+
of models which support this setting.
|
42
|
+
This switch is useful for OpenAI's reasoning models, which accept "low", "medium" and "high".
|
43
|
+
|
44
|
+
### Thinking tokens
|
45
|
+
|
46
|
+
You can use the `--thinking-tokens` switch to request
|
47
|
+
the model use a certain number of thinking tokens.
|
48
|
+
This switch is useful for Sonnet 3.7.
|
49
|
+
You can specify the token budget like "1024", "1k", "8k" or "0.01M".
|
50
|
+
|
51
|
+
### Model compatibility and settings
|
52
|
+
|
53
|
+
Not all models support these two settings. Aider uses the
|
54
|
+
[model's metadata](/docs/config/adv-model-settings.html)
|
55
|
+
to determine which settings each model accepts:
|
56
|
+
|
57
|
+
```yaml
|
58
|
+
- name: o3-mini
|
59
|
+
...
|
60
|
+
accepts_settings: ["reasoning_effort"]
|
61
|
+
```
|
62
|
+
|
63
|
+
If you try to use a setting that a model doesn't explicitly support, Aider will warn you:
|
64
|
+
|
65
|
+
```
|
66
|
+
Warning: o3-mini does not support 'thinking_tokens', ignoring.
|
67
|
+
Use --no-check-model-accepts-settings to force the 'thinking_tokens' setting.
|
68
|
+
```
|
69
|
+
|
70
|
+
The warning informs you that:
|
71
|
+
1. The setting won't be applied because the model doesn't list it in `accepts_settings`
|
72
|
+
2. You can use `--no-check-model-accepts-settings` to force the setting anyway
|
73
|
+
|
74
|
+
This functionality helps prevent API errors while still allowing you to experiment with settings when needed.
|
75
|
+
|
76
|
+
Each model has a predefined list of supported settings in its configuration. For example:
|
77
|
+
|
78
|
+
- OpenAI reasoning models generally support `reasoning_effort`
|
79
|
+
- Anthropic reasoning models generally support `thinking_tokens`
|
80
|
+
|
81
|
+
|
82
|
+
### How `accepts_settings` works
|
83
|
+
|
84
|
+
Models define which reasoning settings they accept using the `accepts_settings` property:
|
85
|
+
|
86
|
+
```yaml
|
87
|
+
- name: a-fancy-reasoning-model
|
88
|
+
edit_format: diff
|
89
|
+
use_repo_map: true
|
90
|
+
accepts_settings: # <---
|
91
|
+
- reasoning_effort # <---
|
92
|
+
```
|
93
|
+
|
94
|
+
This configuration:
|
95
|
+
1. Tells Aider that the model accepts the `reasoning_effort` setting
|
96
|
+
2. Indicates the model does NOT accept `thinking_tokens` (since it's not listed)
|
97
|
+
3. Causes Aider to ignore any `--thinking-tokens` value passed for this model
|
98
|
+
4. Generates a warning if you try to use `--thinking-tokens` with this model
|
99
|
+
|
100
|
+
You can override this behavior with `--no-check-model-accepts-settings`, which will:
|
101
|
+
1. Force Aider to apply all settings passed via command line
|
102
|
+
2. Skip all compatibility checks
|
103
|
+
3. Potentially cause API errors if the model truly doesn't support the setting
|
104
|
+
|
105
|
+
This is useful when testing new models or using models through custom API providers.
|
106
|
+
|
107
|
+
|
108
|
+
## Thinking tokens in XML tags
|
109
|
+
|
110
|
+
There is also a `reasoning_tag` setting, which takes the name of an XML tag
|
111
|
+
that the model uses to wrap its reasoning/thinking output.
|
112
|
+
|
113
|
+
For example when using DeepSeek R1 from Fireworks, the reasoning comes back inside
|
114
|
+
`<think>...</think>` tags, so aider's settings
|
115
|
+
include `reasoning_tag: think`.
|
116
|
+
|
117
|
+
```
|
118
|
+
<think>
|
119
|
+
The user wants me to greet them!
|
120
|
+
</think>
|
121
|
+
|
122
|
+
Hello!
|
123
|
+
```
|
124
|
+
|
125
|
+
Aider will display the thinking/reasoning output,
|
126
|
+
but it won't be used for file editing instructions, added to the chat history, etc.
|
127
|
+
Aider will rely on the non-thinking output for instructions on how to make code changes, etc.
|
128
|
+
|
129
|
+
### Model-specific reasoning tags
|
130
|
+
|
131
|
+
Different models use different XML tags for their reasoning:
|
132
|
+
When using custom or self-hosted models, you may need to specify the appropriate reasoning tag in your configuration.
|
133
|
+
|
134
|
+
```yaml
|
135
|
+
- name: fireworks_ai/accounts/fireworks/models/deepseek-r1
|
136
|
+
edit_format: diff
|
137
|
+
weak_model_name: fireworks_ai/accounts/fireworks/models/deepseek-v3
|
138
|
+
use_repo_map: true
|
139
|
+
extra_params:
|
140
|
+
max_tokens: 160000
|
141
|
+
use_temperature: false
|
142
|
+
editor_model_name: fireworks_ai/accounts/fireworks/models/deepseek-v3
|
143
|
+
editor_edit_format: editor-diff
|
144
|
+
reasoning_tag: think # <---
|
145
|
+
```
|
146
|
+
|
147
|
+
## Reasoning model limitations
|
148
|
+
|
149
|
+
Many "reasoning" models have restrictions on how they can be used:
|
150
|
+
they sometimes prohibit streaming, use of temperature and/or the system prompt.
|
151
|
+
Aider is configured to work properly with popular models
|
152
|
+
when served through major provider APIs.
|
153
|
+
|
154
|
+
If you're using a model through a different provider (like Azure or custom deployment),
|
155
|
+
you may need to [configure model settings](/docs/config/adv-model-settings.html)
|
156
|
+
if you see errors related to temperature or system prompt.
|
157
|
+
|
158
|
+
Include settings for your new provider in `.aider.model.settings.yml` file
|
159
|
+
at the root of your project or in your home directory.
|
160
|
+
|
161
|
+
### Temperature, streaming and system prompt
|
162
|
+
|
163
|
+
Reasoning models often have specific requirements for these settings:
|
164
|
+
|
165
|
+
| Setting | Description | Common Restrictions |
|
166
|
+
|---------|-------------|---------------------|
|
167
|
+
| `use_temperature` | Whether to use temperature sampling | Many reasoning models require this set to `false` |
|
168
|
+
| `streaming` | Whether to stream responses | Some reasoning models don't support streaming |
|
169
|
+
| `use_system_prompt` | Whether to use system prompt | Some reasoning models don't support system prompts |
|
170
|
+
|
171
|
+
It may be helpful to find one of the
|
172
|
+
[existing model setting configuration entries](https://github.com/Aider-AI/aider/blob/main/aider/resources/model-settings.yml)
|
173
|
+
for the model you are interested in, say o3-mini:
|
174
|
+
|
175
|
+
```yaml
|
176
|
+
- name: o3-mini
|
177
|
+
edit_format: diff
|
178
|
+
weak_model_name: gpt-4o-mini
|
179
|
+
use_repo_map: true
|
180
|
+
use_temperature: false # <---
|
181
|
+
editor_model_name: gpt-4o
|
182
|
+
editor_edit_format: editor-diff
|
183
|
+
accepts_settings: ["reasoning_effort"]
|
184
|
+
```
|
185
|
+
|
186
|
+
Pay attention to these settings, which must be set to `false`
|
187
|
+
for certain reasoning models:
|
188
|
+
|
189
|
+
- `use_temperature`
|
190
|
+
- `streaming`
|
191
|
+
- `use_system_prompt`
|
192
|
+
|
193
|
+
### Custom provider example
|
194
|
+
|
195
|
+
Here's an example of the settings to use o3-mini via Azure.
|
196
|
+
Note that aider already has these settings pre-configured, but they
|
197
|
+
serve as a good example of how to adapt the main model
|
198
|
+
settings for a different provider.
|
199
|
+
|
200
|
+
```yaml
|
201
|
+
- name: azure/o3-mini
|
202
|
+
edit_format: diff
|
203
|
+
weak_model_name: azure/gpt-4o-mini
|
204
|
+
use_repo_map: true
|
205
|
+
use_temperature: false # <---
|
206
|
+
editor_model_name: azure/gpt-4o
|
207
|
+
editor_edit_format: editor-diff
|
208
|
+
accepts_settings: ["reasoning_effort"]
|
209
|
+
```
|
@@ -0,0 +1,44 @@
|
|
1
|
+
---
|
2
|
+
nav_order: 55
|
3
|
+
has_children: true
|
4
|
+
description: Information on all of aider's settings and how to use them.
|
5
|
+
---
|
6
|
+
|
7
|
+
# Configuration
|
8
|
+
|
9
|
+
Aider has many options which can be set with
|
10
|
+
command line switches.
|
11
|
+
Most options can also be set in an `.aider.conf.yml` file
|
12
|
+
which can be placed in your home directory or at the root of
|
13
|
+
your git repo.
|
14
|
+
Or by setting environment variables like `AIDER_xxx`
|
15
|
+
either in your shell or a `.env` file.
|
16
|
+
|
17
|
+
Here are 4 equivalent ways of setting an option.
|
18
|
+
|
19
|
+
With a command line switch:
|
20
|
+
|
21
|
+
```
|
22
|
+
$ aider --dark-mode
|
23
|
+
```
|
24
|
+
|
25
|
+
Using a `.aider.conf.yml` file:
|
26
|
+
|
27
|
+
```yaml
|
28
|
+
dark-mode: true
|
29
|
+
```
|
30
|
+
|
31
|
+
By setting an environment variable:
|
32
|
+
|
33
|
+
```
|
34
|
+
export AIDER_DARK_MODE=true
|
35
|
+
```
|
36
|
+
|
37
|
+
Using an `.env` file:
|
38
|
+
|
39
|
+
```
|
40
|
+
AIDER_DARK_MODE=true
|
41
|
+
```
|
42
|
+
|
43
|
+
{% include keys.md %}
|
44
|
+
|
@@ -0,0 +1,378 @@
|
|
1
|
+
---
|
2
|
+
nav_order: 90
|
3
|
+
description: Frequently asked questions about aider.
|
4
|
+
---
|
5
|
+
|
6
|
+
# FAQ
|
7
|
+
{: .no_toc }
|
8
|
+
|
9
|
+
- TOC
|
10
|
+
{:toc}
|
11
|
+
|
12
|
+
{% include help-tip.md %}
|
13
|
+
|
14
|
+
## How can I add ALL the files to the chat?
|
15
|
+
|
16
|
+
People regularly ask about how to add **many or all of their repo's files** to the chat.
|
17
|
+
This is probably not a good idea and will likely do more harm than good.
|
18
|
+
|
19
|
+
The best approach is think about which files need to be changed to accomplish
|
20
|
+
the task you are working on. Just add those files to the chat.
|
21
|
+
|
22
|
+
Usually when people want to add "all the files" it's because they think it
|
23
|
+
will give the LLM helpful context about the overall code base.
|
24
|
+
Aider will automatically give the LLM a bunch of additional context about
|
25
|
+
the rest of your git repo.
|
26
|
+
It does this by analyzing your entire codebase in light of the
|
27
|
+
current chat to build a compact
|
28
|
+
[repository map](https://aider.chat/2023/10/22/repomap.html).
|
29
|
+
|
30
|
+
Adding a bunch of files that are mostly irrelevant to the
|
31
|
+
task at hand will often distract or confuse the LLM.
|
32
|
+
The LLM will give worse coding results, and sometimese even fail to correctly edit files.
|
33
|
+
Addings extra files will also increase your token costs.
|
34
|
+
|
35
|
+
Again, it's usually best to just add the files to the chat that will need to be modified.
|
36
|
+
If you still wish to add lots of files to the chat, you can:
|
37
|
+
|
38
|
+
- Use a wildcard when you launch aider: `aider src/*.py`
|
39
|
+
- Use a wildcard with the in-chat `/add` command: `/add src/*.py`
|
40
|
+
- Give the `/add` command a directory name and it will recursively add every file under that dir: `/add src`
|
41
|
+
|
42
|
+
## Can I use aider in a large (mono) repo?
|
43
|
+
|
44
|
+
Aider will work in any size repo, but is not optimized for quick
|
45
|
+
performance and response time in very large repos.
|
46
|
+
There are some things you can do to improve performance.
|
47
|
+
|
48
|
+
Be sure to check the
|
49
|
+
[general usage tips](/docs/usage/tips.html)
|
50
|
+
before considering this large-repo specific advice.
|
51
|
+
To get the best results from aider you want to
|
52
|
+
be thoughtful about how you add files to the chat,
|
53
|
+
regardless of your repo size.
|
54
|
+
|
55
|
+
You can change into a sub directory of your repo that contains the
|
56
|
+
code you want to work on and use the `--subtree-only` switch.
|
57
|
+
This will tell aider to ignore the repo outside of the
|
58
|
+
directory you start in.
|
59
|
+
|
60
|
+
You can also create a `.aiderignore` file to tell aider
|
61
|
+
to ignore parts of the repo that aren't relevant to your task.
|
62
|
+
This file conforms to `.gitignore` syntax and conventions.
|
63
|
+
For example, to focus only on specific directories in a monorepo,
|
64
|
+
you could create a `.aiderignore` file with:
|
65
|
+
|
66
|
+
```
|
67
|
+
# Ignore everything
|
68
|
+
/*
|
69
|
+
|
70
|
+
# Allow specific directories and their contents
|
71
|
+
!foo/
|
72
|
+
!bar/
|
73
|
+
!baz/
|
74
|
+
|
75
|
+
# Allow nested files under these directories
|
76
|
+
!foo/**
|
77
|
+
!bar/**
|
78
|
+
!baz/**
|
79
|
+
```
|
80
|
+
|
81
|
+
You can use `--aiderignore <filename>` to name a specific file
|
82
|
+
to use for ignore patterns.
|
83
|
+
You might have a few of these handy for when you want to work on
|
84
|
+
frontend, backend, etc portions of your repo.
|
85
|
+
|
86
|
+
## Can I use aider with multiple git repos at once?
|
87
|
+
|
88
|
+
Currently aider can only work with one repo at a time.
|
89
|
+
|
90
|
+
There are some things you can try if you need to work with
|
91
|
+
multiple interrelated repos:
|
92
|
+
|
93
|
+
- You can run aider in repo-A where you need to make a change
|
94
|
+
and use `/read` to add some files read-only from another repo-B.
|
95
|
+
This can let aider see key functions or docs from the other repo.
|
96
|
+
- You can run `aider --show-repo-map > map.md` within each
|
97
|
+
repo to create repo maps.
|
98
|
+
You could then run aider in repo-A and
|
99
|
+
use `/read ../path/to/repo-B/map.md` to share
|
100
|
+
a high level map of the other repo.
|
101
|
+
- You can use aider to write documentation about a repo.
|
102
|
+
Inside each repo, you could run `aider docs.md`
|
103
|
+
and work with aider to write some markdown docs.
|
104
|
+
Then while using aider to edit repo-A
|
105
|
+
you can `/read ../path/to/repo-B/docs.md` to
|
106
|
+
read in those docs from the other repo.
|
107
|
+
- In repo A, ask aider to write a small script that demonstrates
|
108
|
+
the functionality you want to use in repo B.
|
109
|
+
Then when you're using aider in repo B, you can
|
110
|
+
`/read` in that script.
|
111
|
+
|
112
|
+
## How do I turn on the repository map?
|
113
|
+
|
114
|
+
Depending on the LLM you are using, aider may launch with the repo map disabled by default:
|
115
|
+
|
116
|
+
```
|
117
|
+
Repo-map: disabled
|
118
|
+
```
|
119
|
+
|
120
|
+
This is because weaker models get easily overwhelmed and confused by the content of the
|
121
|
+
repo map. They sometimes mistakenly try to edit the code in the repo map.
|
122
|
+
The repo map is usually disabled for a good reason.
|
123
|
+
|
124
|
+
If you would like to force it on, you can run aider with `--map-tokens 1024`.
|
125
|
+
|
126
|
+
## How do I include the git history in the context?
|
127
|
+
|
128
|
+
When starting a fresh aider session, you can include recent git history in the chat context. This can be useful for providing the LLM with information about recent changes. To do this:
|
129
|
+
|
130
|
+
1. Use the `/run` command with `git diff` to show recent changes:
|
131
|
+
```
|
132
|
+
/run git diff HEAD~1
|
133
|
+
```
|
134
|
+
This will include the diff of the last commit in the chat history.
|
135
|
+
|
136
|
+
2. To include diffs from multiple commits, increase the number after the tilde:
|
137
|
+
```
|
138
|
+
/run git diff HEAD~3
|
139
|
+
```
|
140
|
+
This will show changes from the last three commits.
|
141
|
+
|
142
|
+
Remember, the chat history already includes recent changes made during the current session, so this tip is most useful when starting a new aider session and you want to provide context about recent work.
|
143
|
+
|
144
|
+
You can also use aider to review PR branches:
|
145
|
+
|
146
|
+
```
|
147
|
+
/run git diff one-branch..another-branch
|
148
|
+
|
149
|
+
...
|
150
|
+
|
151
|
+
Add 6.9k tokens of command output to the chat? (Y)es/(N)o [Yes]: Yes
|
152
|
+
|
153
|
+
/ask Are there any problems with the way this change works with the FooBar class?
|
154
|
+
```
|
155
|
+
|
156
|
+
And of course you can prepare diff output outside of aider and provide it as
|
157
|
+
a file for aider to read:
|
158
|
+
|
159
|
+
```
|
160
|
+
$ git diff -C10 v1..v2 > v1-v2-changes.diff
|
161
|
+
$ aider --read v1-v2-changes.diff
|
162
|
+
|
163
|
+
Aider v0.77.2.dev+import
|
164
|
+
Main model: anthropic/claude-3-7-sonnet-20250219 with diff edit format, 8k think tokens
|
165
|
+
──────────────────────────────────
|
166
|
+
v1-v2-changes.diff
|
167
|
+
> Do you see any potential bugs in this PR?
|
168
|
+
```
|
169
|
+
|
170
|
+
|
171
|
+
{: .tip }
|
172
|
+
The `/git` command will not work for this purpose, as its output is not included in the chat.
|
173
|
+
|
174
|
+
## How can I run aider locally from source code?
|
175
|
+
|
176
|
+
To run the project locally, follow these steps:
|
177
|
+
|
178
|
+
```
|
179
|
+
# Clone the repository
|
180
|
+
git clone git@github.com:Aider-AI/aider.git
|
181
|
+
|
182
|
+
# Navigate to the project directory
|
183
|
+
cd aider
|
184
|
+
|
185
|
+
# It's recommended to make a virtual environment
|
186
|
+
|
187
|
+
# Install aider in editable/development mode,
|
188
|
+
# so it runs from the latest copy of these source files
|
189
|
+
python -m pip install -e .
|
190
|
+
|
191
|
+
# Run the local version of aider
|
192
|
+
python -m aider
|
193
|
+
```
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
## Can I change the system prompts that aider uses?
|
198
|
+
|
199
|
+
The most convenient way to add custom instructions is to use a
|
200
|
+
[conventions file](https://aider.chat/docs/usage/conventions.html).
|
201
|
+
|
202
|
+
But, aider is set up to support different actual system prompts and edit formats
|
203
|
+
in a modular way. If you look in the `aider/coders` subdirectory, you'll
|
204
|
+
see there's a base coder with base prompts, and then there are
|
205
|
+
a number of
|
206
|
+
different specific coder implementations.
|
207
|
+
|
208
|
+
If you're thinking about experimenting with system prompts
|
209
|
+
this document about
|
210
|
+
[benchmarking GPT-3.5 and GPT-4 on code editing](https://aider.chat/docs/benchmarks.html)
|
211
|
+
might be useful background.
|
212
|
+
|
213
|
+
While it's not well documented how to add new coder subsystems, you may be able
|
214
|
+
to modify an existing implementation or use it as a template to add another.
|
215
|
+
|
216
|
+
To get started, try looking at and modifying these files.
|
217
|
+
|
218
|
+
The wholefile coder is currently used by GPT-3.5 by default. You can manually select it with `--edit-format whole`.
|
219
|
+
|
220
|
+
- wholefile_coder.py
|
221
|
+
- wholefile_prompts.py
|
222
|
+
|
223
|
+
The editblock coder is currently used by GPT-4o by default. You can manually select it with `--edit-format diff`.
|
224
|
+
|
225
|
+
- editblock_coder.py
|
226
|
+
- editblock_prompts.py
|
227
|
+
|
228
|
+
The universal diff coder is currently used by GPT-4 Turbo by default. You can manually select it with `--edit-format udiff`.
|
229
|
+
|
230
|
+
- udiff_coder.py
|
231
|
+
- udiff_prompts.py
|
232
|
+
|
233
|
+
When experimenting with coder backends, it helps to run aider with `--verbose --no-pretty` so you can see
|
234
|
+
all the raw information being sent to/from the LLM in the conversation.
|
235
|
+
|
236
|
+
You can also refer to the
|
237
|
+
[instructions for installing a development version of aider](https://aider.chat/docs/install/optional.html#install-the-development-version-of-aider).
|
238
|
+
|
239
|
+
## What LLMs do you use to build aider?
|
240
|
+
|
241
|
+
Aider writes a lot of its own code, usually about 70% of the new code in each
|
242
|
+
release.
|
243
|
+
People often ask which LLMs I use with aider, when writing aider.
|
244
|
+
Below is a table showing the models I have used recently,
|
245
|
+
extracted from the
|
246
|
+
[public log](https://github.com/aider-ai/aider/blob/main/aider/website/assets/sample-analytics.jsonl)
|
247
|
+
of my
|
248
|
+
[aider analytics](https://aider.chat/docs/more/analytics.html).
|
249
|
+
|
250
|
+
<!--[[[cog
|
251
|
+
import sys
|
252
|
+
sys.path.append(".")
|
253
|
+
import scripts.my_models as my_models
|
254
|
+
stats = my_models.collect_model_stats()
|
255
|
+
html = my_models.format_html_table(stats)
|
256
|
+
cog.out(html)
|
257
|
+
]]]-->
|
258
|
+
<style>
|
259
|
+
table { border-collapse: collapse; width: 100%; }
|
260
|
+
th, td { padding: 8px; text-align: left; border-bottom: 1px solid #ddd; }
|
261
|
+
th { background-color: #f2f2f2; }
|
262
|
+
tr:hover { background-color: #f5f5f5; }
|
263
|
+
.right { text-align: right; }
|
264
|
+
</style>
|
265
|
+
<table>
|
266
|
+
<tr><th>Model Name</th><th class='right'>Total Tokens</th><th class='right'>Percent</th></tr>
|
267
|
+
<tr><td>o3</td><td class='right'>542,669</td><td class='right'>45.1%</td></tr>
|
268
|
+
<tr><td>gemini/gemini-2.5-pro-exp-03-25</td><td class='right'>479,518</td><td class='right'>39.9%</td></tr>
|
269
|
+
<tr><td>anthropic/claude-sonnet-4-20250514</td><td class='right'>131,972</td><td class='right'>11.0%</td></tr>
|
270
|
+
<tr><td>gemini/gemini-2.5-pro-preview-05-06</td><td class='right'>40,256</td><td class='right'>3.3%</td></tr>
|
271
|
+
<tr><td>gemini/gemini-2.5-flash-preview-05-20</td><td class='right'>7,638</td><td class='right'>0.6%</td></tr>
|
272
|
+
<tr><td>gemini/REDACTED</td><td class='right'>643</td><td class='right'>0.1%</td></tr>
|
273
|
+
</table>
|
274
|
+
|
275
|
+
{: .note :}
|
276
|
+
Some models show as REDACTED, because they are new or unpopular models.
|
277
|
+
Aider's analytics only records the names of "well known" LLMs.
|
278
|
+
<!--[[[end]]]-->
|
279
|
+
|
280
|
+
## How are the "aider wrote xx% of code" stats computed?
|
281
|
+
|
282
|
+
[Aider is tightly integrated with git](/docs/git.html) so all
|
283
|
+
of aider's code changes are committed to the repo with proper attribution.
|
284
|
+
The
|
285
|
+
[stats are computed](https://github.com/Aider-AI/aider/blob/main/scripts/blame.py)
|
286
|
+
by doing something like `git blame` on the repo,
|
287
|
+
and counting up who wrote all the new lines of code in each release.
|
288
|
+
Only lines in source code files are counted, not documentation or prompt files.
|
289
|
+
|
290
|
+
## Why did aider ignore/discard its proposed edits after it asked to add a new file to the chat?
|
291
|
+
|
292
|
+
If aider prompts you to add a new file to the chat and you say yes,
|
293
|
+
it will re-submit the original request.
|
294
|
+
The fact that the LLM's reply indicated that it needed to see another file (and you said yes)
|
295
|
+
is often a sign that the LLM should have been able to see/edit that file in the first place.
|
296
|
+
Without access to it, there is increased chance that it's done a bad implementation of the requested change.
|
297
|
+
Often LLMs will hallucinate content for the files they needed but didn't have.
|
298
|
+
So aider re-submits the original request in this situation.
|
299
|
+
|
300
|
+
## Why does aider sometimes stop highlighting code in its replies?
|
301
|
+
|
302
|
+
Aider displays the markdown responses that are coming back from the LLM.
|
303
|
+
Usually, the LLM will reply with code in a markdown "code block" with
|
304
|
+
triple backtick fences, like this:
|
305
|
+
|
306
|
+
````
|
307
|
+
Here's some code:
|
308
|
+
|
309
|
+
```
|
310
|
+
print("hello")
|
311
|
+
```
|
312
|
+
````
|
313
|
+
|
314
|
+
But if you've added files to the chat that contain triple backticks,
|
315
|
+
aider needs to tell the LLM to use a different set of fences.
|
316
|
+
Otherwise, the LLM can't safely include your code's triple backticks
|
317
|
+
inside the code blocks that it returns with edits.
|
318
|
+
Aider will use fences like `<source>...</source>` in this case.
|
319
|
+
|
320
|
+
A side effect of this is that the code that aider outputs may no
|
321
|
+
longer be properly highlighted.
|
322
|
+
You will most often notice this if you add markdown files
|
323
|
+
to you chats that contain code blocks.
|
324
|
+
|
325
|
+
## Why is the LLM speaking to me in an unexpected language?
|
326
|
+
|
327
|
+
Aider goes to some effort to prompt the model to use the language that is configured
|
328
|
+
for your system.
|
329
|
+
But LLMs aren't fully reliable, and they sometimes decide to speak in
|
330
|
+
an unexpected language.
|
331
|
+
Claude is especially fond of speaking French.
|
332
|
+
|
333
|
+
You can explicitly set the language that aider tells the model to use with
|
334
|
+
`--chat-language <language>`.
|
335
|
+
But the LLM may not comply.
|
336
|
+
|
337
|
+
## Can I share my aider chat transcript?
|
338
|
+
|
339
|
+
Yes, you can now share aider chat logs in a pretty way.
|
340
|
+
|
341
|
+
1. Copy the markdown logs you want to share from `.aider.chat.history.md` and make a github gist. Or publish the raw markdown logs on the web any way you'd like.
|
342
|
+
|
343
|
+
```
|
344
|
+
https://gist.github.com/Aider-AI/2087ab8b64034a078c0a209440ac8be0
|
345
|
+
```
|
346
|
+
|
347
|
+
2. Take the gist URL and append it to:
|
348
|
+
|
349
|
+
```
|
350
|
+
https://aider.chat/share/?mdurl=
|
351
|
+
```
|
352
|
+
|
353
|
+
This will give you a URL like this, which shows the chat history like you'd see in a terminal:
|
354
|
+
|
355
|
+
```
|
356
|
+
https://aider.chat/share/?mdurl=https://gist.github.com/Aider-AI/2087ab8b64034a078c0a209440ac8be0
|
357
|
+
```
|
358
|
+
|
359
|
+
## Can I edit files myself while aider is running?
|
360
|
+
|
361
|
+
Yes. Aider always reads the latest copy of files from the file
|
362
|
+
system when you send each message.
|
363
|
+
|
364
|
+
While you're waiting for aider's reply to complete, it's probably unwise to
|
365
|
+
edit files that you've added to the chat.
|
366
|
+
Your edits and aider's edits might conflict.
|
367
|
+
|
368
|
+
## What is Aider AI LLC?
|
369
|
+
|
370
|
+
Aider AI LLC is the company behind the aider AI coding tool.
|
371
|
+
Aider is
|
372
|
+
[open source and available on GitHub](https://github.com/Aider-AI/aider)
|
373
|
+
under an
|
374
|
+
[Apache 2.0 license](https://github.com/Aider-AI/aider/blob/main/LICENSE.txt).
|
375
|
+
|
376
|
+
|
377
|
+
<div style="height:80vh"></div>
|
378
|
+
|