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.
Files changed (228) hide show
  1. aider/__init__.py +20 -0
  2. aider/__main__.py +4 -0
  3. aider/_version.py +21 -0
  4. aider/analytics.py +250 -0
  5. aider/args.py +926 -0
  6. aider/args_formatter.py +228 -0
  7. aider/coders/__init__.py +34 -0
  8. aider/coders/architect_coder.py +48 -0
  9. aider/coders/architect_prompts.py +40 -0
  10. aider/coders/ask_coder.py +9 -0
  11. aider/coders/ask_prompts.py +35 -0
  12. aider/coders/base_coder.py +2483 -0
  13. aider/coders/base_prompts.py +60 -0
  14. aider/coders/chat_chunks.py +64 -0
  15. aider/coders/context_coder.py +53 -0
  16. aider/coders/context_prompts.py +75 -0
  17. aider/coders/editblock_coder.py +657 -0
  18. aider/coders/editblock_fenced_coder.py +10 -0
  19. aider/coders/editblock_fenced_prompts.py +143 -0
  20. aider/coders/editblock_func_coder.py +141 -0
  21. aider/coders/editblock_func_prompts.py +27 -0
  22. aider/coders/editblock_prompts.py +174 -0
  23. aider/coders/editor_diff_fenced_coder.py +9 -0
  24. aider/coders/editor_diff_fenced_prompts.py +11 -0
  25. aider/coders/editor_editblock_coder.py +8 -0
  26. aider/coders/editor_editblock_prompts.py +18 -0
  27. aider/coders/editor_whole_coder.py +8 -0
  28. aider/coders/editor_whole_prompts.py +10 -0
  29. aider/coders/help_coder.py +16 -0
  30. aider/coders/help_prompts.py +46 -0
  31. aider/coders/patch_coder.py +706 -0
  32. aider/coders/patch_prompts.py +161 -0
  33. aider/coders/search_replace.py +757 -0
  34. aider/coders/shell.py +37 -0
  35. aider/coders/single_wholefile_func_coder.py +102 -0
  36. aider/coders/single_wholefile_func_prompts.py +27 -0
  37. aider/coders/udiff_coder.py +429 -0
  38. aider/coders/udiff_prompts.py +115 -0
  39. aider/coders/udiff_simple.py +14 -0
  40. aider/coders/udiff_simple_prompts.py +25 -0
  41. aider/coders/wholefile_coder.py +144 -0
  42. aider/coders/wholefile_func_coder.py +134 -0
  43. aider/coders/wholefile_func_prompts.py +27 -0
  44. aider/coders/wholefile_prompts.py +67 -0
  45. aider/commands.py +1665 -0
  46. aider/copypaste.py +72 -0
  47. aider/deprecated.py +126 -0
  48. aider/diffs.py +128 -0
  49. aider/dump.py +29 -0
  50. aider/editor.py +147 -0
  51. aider/exceptions.py +107 -0
  52. aider/format_settings.py +26 -0
  53. aider/gui.py +545 -0
  54. aider/help.py +163 -0
  55. aider/help_pats.py +19 -0
  56. aider/history.py +143 -0
  57. aider/io.py +1175 -0
  58. aider/linter.py +304 -0
  59. aider/llm.py +47 -0
  60. aider/main.py +1267 -0
  61. aider/mdstream.py +243 -0
  62. aider/models.py +1286 -0
  63. aider/onboarding.py +428 -0
  64. aider/openrouter.py +128 -0
  65. aider/prompts.py +64 -0
  66. aider/queries/tree-sitter-language-pack/README.md +7 -0
  67. aider/queries/tree-sitter-language-pack/arduino-tags.scm +5 -0
  68. aider/queries/tree-sitter-language-pack/c-tags.scm +9 -0
  69. aider/queries/tree-sitter-language-pack/chatito-tags.scm +16 -0
  70. aider/queries/tree-sitter-language-pack/commonlisp-tags.scm +122 -0
  71. aider/queries/tree-sitter-language-pack/cpp-tags.scm +15 -0
  72. aider/queries/tree-sitter-language-pack/csharp-tags.scm +26 -0
  73. aider/queries/tree-sitter-language-pack/d-tags.scm +26 -0
  74. aider/queries/tree-sitter-language-pack/dart-tags.scm +92 -0
  75. aider/queries/tree-sitter-language-pack/elisp-tags.scm +5 -0
  76. aider/queries/tree-sitter-language-pack/elixir-tags.scm +54 -0
  77. aider/queries/tree-sitter-language-pack/elm-tags.scm +19 -0
  78. aider/queries/tree-sitter-language-pack/gleam-tags.scm +41 -0
  79. aider/queries/tree-sitter-language-pack/go-tags.scm +42 -0
  80. aider/queries/tree-sitter-language-pack/java-tags.scm +20 -0
  81. aider/queries/tree-sitter-language-pack/javascript-tags.scm +88 -0
  82. aider/queries/tree-sitter-language-pack/lua-tags.scm +34 -0
  83. aider/queries/tree-sitter-language-pack/ocaml-tags.scm +115 -0
  84. aider/queries/tree-sitter-language-pack/ocaml_interface-tags.scm +98 -0
  85. aider/queries/tree-sitter-language-pack/pony-tags.scm +39 -0
  86. aider/queries/tree-sitter-language-pack/properties-tags.scm +5 -0
  87. aider/queries/tree-sitter-language-pack/python-tags.scm +14 -0
  88. aider/queries/tree-sitter-language-pack/r-tags.scm +21 -0
  89. aider/queries/tree-sitter-language-pack/racket-tags.scm +12 -0
  90. aider/queries/tree-sitter-language-pack/ruby-tags.scm +64 -0
  91. aider/queries/tree-sitter-language-pack/rust-tags.scm +60 -0
  92. aider/queries/tree-sitter-language-pack/solidity-tags.scm +43 -0
  93. aider/queries/tree-sitter-language-pack/swift-tags.scm +51 -0
  94. aider/queries/tree-sitter-language-pack/udev-tags.scm +20 -0
  95. aider/queries/tree-sitter-languages/README.md +23 -0
  96. aider/queries/tree-sitter-languages/c-tags.scm +9 -0
  97. aider/queries/tree-sitter-languages/c_sharp-tags.scm +46 -0
  98. aider/queries/tree-sitter-languages/cpp-tags.scm +15 -0
  99. aider/queries/tree-sitter-languages/dart-tags.scm +91 -0
  100. aider/queries/tree-sitter-languages/elisp-tags.scm +8 -0
  101. aider/queries/tree-sitter-languages/elixir-tags.scm +54 -0
  102. aider/queries/tree-sitter-languages/elm-tags.scm +19 -0
  103. aider/queries/tree-sitter-languages/go-tags.scm +30 -0
  104. aider/queries/tree-sitter-languages/hcl-tags.scm +77 -0
  105. aider/queries/tree-sitter-languages/java-tags.scm +20 -0
  106. aider/queries/tree-sitter-languages/javascript-tags.scm +88 -0
  107. aider/queries/tree-sitter-languages/kotlin-tags.scm +27 -0
  108. aider/queries/tree-sitter-languages/ocaml-tags.scm +115 -0
  109. aider/queries/tree-sitter-languages/ocaml_interface-tags.scm +98 -0
  110. aider/queries/tree-sitter-languages/php-tags.scm +26 -0
  111. aider/queries/tree-sitter-languages/python-tags.scm +12 -0
  112. aider/queries/tree-sitter-languages/ql-tags.scm +26 -0
  113. aider/queries/tree-sitter-languages/ruby-tags.scm +64 -0
  114. aider/queries/tree-sitter-languages/rust-tags.scm +60 -0
  115. aider/queries/tree-sitter-languages/scala-tags.scm +65 -0
  116. aider/queries/tree-sitter-languages/typescript-tags.scm +41 -0
  117. aider/reasoning_tags.py +82 -0
  118. aider/repo.py +623 -0
  119. aider/repomap.py +847 -0
  120. aider/report.py +200 -0
  121. aider/resources/__init__.py +3 -0
  122. aider/resources/model-metadata.json +468 -0
  123. aider/resources/model-settings.yml +1767 -0
  124. aider/run_cmd.py +132 -0
  125. aider/scrape.py +284 -0
  126. aider/sendchat.py +61 -0
  127. aider/special.py +203 -0
  128. aider/urls.py +17 -0
  129. aider/utils.py +338 -0
  130. aider/versioncheck.py +113 -0
  131. aider/voice.py +187 -0
  132. aider/waiting.py +221 -0
  133. aider/watch.py +318 -0
  134. aider/watch_prompts.py +12 -0
  135. aider/website/Gemfile +8 -0
  136. aider/website/_includes/blame.md +162 -0
  137. aider/website/_includes/get-started.md +22 -0
  138. aider/website/_includes/help-tip.md +5 -0
  139. aider/website/_includes/help.md +24 -0
  140. aider/website/_includes/install.md +5 -0
  141. aider/website/_includes/keys.md +4 -0
  142. aider/website/_includes/model-warnings.md +67 -0
  143. aider/website/_includes/multi-line.md +22 -0
  144. aider/website/_includes/python-m-aider.md +5 -0
  145. aider/website/_includes/recording.css +228 -0
  146. aider/website/_includes/recording.md +34 -0
  147. aider/website/_includes/replit-pipx.md +9 -0
  148. aider/website/_includes/works-best.md +1 -0
  149. aider/website/_sass/custom/custom.scss +103 -0
  150. aider/website/docs/config/adv-model-settings.md +1881 -0
  151. aider/website/docs/config/aider_conf.md +527 -0
  152. aider/website/docs/config/api-keys.md +90 -0
  153. aider/website/docs/config/dotenv.md +478 -0
  154. aider/website/docs/config/editor.md +127 -0
  155. aider/website/docs/config/model-aliases.md +103 -0
  156. aider/website/docs/config/options.md +843 -0
  157. aider/website/docs/config/reasoning.md +209 -0
  158. aider/website/docs/config.md +44 -0
  159. aider/website/docs/faq.md +378 -0
  160. aider/website/docs/git.md +76 -0
  161. aider/website/docs/index.md +47 -0
  162. aider/website/docs/install/codespaces.md +39 -0
  163. aider/website/docs/install/docker.md +57 -0
  164. aider/website/docs/install/optional.md +100 -0
  165. aider/website/docs/install/replit.md +8 -0
  166. aider/website/docs/install.md +115 -0
  167. aider/website/docs/languages.md +264 -0
  168. aider/website/docs/legal/contributor-agreement.md +111 -0
  169. aider/website/docs/legal/privacy.md +104 -0
  170. aider/website/docs/llms/anthropic.md +77 -0
  171. aider/website/docs/llms/azure.md +48 -0
  172. aider/website/docs/llms/bedrock.md +132 -0
  173. aider/website/docs/llms/cohere.md +34 -0
  174. aider/website/docs/llms/deepseek.md +32 -0
  175. aider/website/docs/llms/gemini.md +49 -0
  176. aider/website/docs/llms/github.md +105 -0
  177. aider/website/docs/llms/groq.md +36 -0
  178. aider/website/docs/llms/lm-studio.md +39 -0
  179. aider/website/docs/llms/ollama.md +75 -0
  180. aider/website/docs/llms/openai-compat.md +39 -0
  181. aider/website/docs/llms/openai.md +58 -0
  182. aider/website/docs/llms/openrouter.md +78 -0
  183. aider/website/docs/llms/other.md +103 -0
  184. aider/website/docs/llms/vertex.md +50 -0
  185. aider/website/docs/llms/warnings.md +10 -0
  186. aider/website/docs/llms/xai.md +53 -0
  187. aider/website/docs/llms.md +54 -0
  188. aider/website/docs/more/analytics.md +122 -0
  189. aider/website/docs/more/edit-formats.md +116 -0
  190. aider/website/docs/more/infinite-output.md +137 -0
  191. aider/website/docs/more-info.md +8 -0
  192. aider/website/docs/recordings/auto-accept-architect.md +31 -0
  193. aider/website/docs/recordings/dont-drop-original-read-files.md +35 -0
  194. aider/website/docs/recordings/index.md +21 -0
  195. aider/website/docs/recordings/model-accepts-settings.md +69 -0
  196. aider/website/docs/recordings/tree-sitter-language-pack.md +80 -0
  197. aider/website/docs/repomap.md +112 -0
  198. aider/website/docs/scripting.md +100 -0
  199. aider/website/docs/troubleshooting/aider-not-found.md +24 -0
  200. aider/website/docs/troubleshooting/edit-errors.md +76 -0
  201. aider/website/docs/troubleshooting/imports.md +62 -0
  202. aider/website/docs/troubleshooting/models-and-keys.md +54 -0
  203. aider/website/docs/troubleshooting/support.md +79 -0
  204. aider/website/docs/troubleshooting/token-limits.md +96 -0
  205. aider/website/docs/troubleshooting/warnings.md +12 -0
  206. aider/website/docs/troubleshooting.md +11 -0
  207. aider/website/docs/usage/browser.md +57 -0
  208. aider/website/docs/usage/caching.md +49 -0
  209. aider/website/docs/usage/commands.md +132 -0
  210. aider/website/docs/usage/conventions.md +119 -0
  211. aider/website/docs/usage/copypaste.md +121 -0
  212. aider/website/docs/usage/images-urls.md +48 -0
  213. aider/website/docs/usage/lint-test.md +118 -0
  214. aider/website/docs/usage/modes.md +211 -0
  215. aider/website/docs/usage/not-code.md +179 -0
  216. aider/website/docs/usage/notifications.md +87 -0
  217. aider/website/docs/usage/tips.md +79 -0
  218. aider/website/docs/usage/tutorials.md +30 -0
  219. aider/website/docs/usage/voice.md +121 -0
  220. aider/website/docs/usage/watch.md +294 -0
  221. aider/website/docs/usage.md +92 -0
  222. aider/website/share/index.md +101 -0
  223. chatmcp_cli-0.1.0.dist-info/METADATA +502 -0
  224. chatmcp_cli-0.1.0.dist-info/RECORD +228 -0
  225. chatmcp_cli-0.1.0.dist-info/WHEEL +5 -0
  226. chatmcp_cli-0.1.0.dist-info/entry_points.txt +3 -0
  227. chatmcp_cli-0.1.0.dist-info/licenses/LICENSE.txt +202 -0
  228. chatmcp_cli-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,103 @@
1
+ ---
2
+ parent: Connecting to LLMs
3
+ nav_order: 800
4
+ ---
5
+
6
+ # Other LLMs
7
+
8
+ Aider uses the [litellm](https://docs.litellm.ai/docs/providers) package
9
+ to connect to hundreds of other models.
10
+ You can use `aider --model <model-name>` to use any supported model.
11
+
12
+ To explore the list of supported models you can run `aider --list-models <model-name>`
13
+ with a partial model name.
14
+ If the supplied name is not an exact match for a known model, aider will
15
+ return a list of possible matching models.
16
+ For example:
17
+
18
+ ```
19
+ $ aider --list-models turbo
20
+
21
+ Aider v0.29.3-dev
22
+ Models which match "turbo":
23
+ - gpt-4-turbo-preview (openai/gpt-4-turbo-preview)
24
+ - gpt-4-turbo (openai/gpt-4-turbo)
25
+ - gpt-4-turbo-2024-04-09 (openai/gpt-4-turbo-2024-04-09)
26
+ - gpt-3.5-turbo (openai/gpt-3.5-turbo)
27
+ - ...
28
+ ```
29
+
30
+ See the [model warnings](warnings.html)
31
+ section for information on warnings which will occur
32
+ when working with models that aider is not familiar with.
33
+
34
+ ## LiteLLM
35
+
36
+ Aider uses the LiteLLM package to connect to LLM providers.
37
+ The [LiteLLM provider docs](https://docs.litellm.ai/docs/providers)
38
+ contain more detail on all the supported providers,
39
+ their models and any required environment variables.
40
+
41
+
42
+ ## Other API key variables
43
+
44
+ Here are the API key environment variables that are supported
45
+ by litellm. See their docs for more info.
46
+
47
+ <!--[[[cog
48
+ from subprocess import run
49
+ lines = run(
50
+ "egrep -ho '[A-Z_]+_API_KEY' ../litellm/litellm/*py | sort -u",
51
+ shell=True,
52
+ capture_output=True,
53
+ text=True,
54
+ ).stdout
55
+ lines = ['- ' + line for line in lines.splitlines(keepends=True)]
56
+ cog.out(''.join(lines))
57
+ ]]]-->
58
+ - ALEPH_ALPHA_API_KEY
59
+ - ALEPHALPHA_API_KEY
60
+ - ANTHROPIC_API_KEY
61
+ - ANYSCALE_API_KEY
62
+ - AZURE_AI_API_KEY
63
+ - AZURE_API_KEY
64
+ - AZURE_OPENAI_API_KEY
65
+ - BASETEN_API_KEY
66
+ - CEREBRAS_API_KEY
67
+ - CLARIFAI_API_KEY
68
+ - CLOUDFLARE_API_KEY
69
+ - CO_API_KEY
70
+ - CODESTRAL_API_KEY
71
+ - COHERE_API_KEY
72
+ - DATABRICKS_API_KEY
73
+ - DEEPINFRA_API_KEY
74
+ - DEEPSEEK_API_KEY
75
+ - FIREWORKS_AI_API_KEY
76
+ - FIREWORKS_API_KEY
77
+ - FIREWORKSAI_API_KEY
78
+ - GEMINI_API_KEY
79
+ - GROQ_API_KEY
80
+ - HUGGINGFACE_API_KEY
81
+ - INFINITY_API_KEY
82
+ - MARITALK_API_KEY
83
+ - MISTRAL_API_KEY
84
+ - NLP_CLOUD_API_KEY
85
+ - NVIDIA_NIM_API_KEY
86
+ - OLLAMA_API_KEY
87
+ - OPENAI_API_KEY
88
+ - OPENAI_LIKE_API_KEY
89
+ - OPENROUTER_API_KEY
90
+ - OR_API_KEY
91
+ - PALM_API_KEY
92
+ - PERPLEXITYAI_API_KEY
93
+ - PREDIBASE_API_KEY
94
+ - PROVIDER_API_KEY
95
+ - REPLICATE_API_KEY
96
+ - TOGETHERAI_API_KEY
97
+ - VOLCENGINE_API_KEY
98
+ - VOYAGE_API_KEY
99
+ - WATSONX_API_KEY
100
+ - WX_API_KEY
101
+ - XAI_API_KEY
102
+ - XINFERENCE_API_KEY
103
+ <!--[[[end]]]-->
@@ -0,0 +1,50 @@
1
+ ---
2
+ parent: Connecting to LLMs
3
+ nav_order: 550
4
+ ---
5
+
6
+ # Vertex AI
7
+
8
+ Aider can connect to models provided by Google Vertex AI.
9
+ You will need to install the
10
+ [gcloud CLI](https://cloud.google.com/sdk/docs/install) and [login](https://cloud.google.com/sdk/docs/initializing) with a GCP account
11
+ or service account with permission to use the Vertex AI API.
12
+
13
+ With your chosen login method, the gcloud CLI should automatically set the
14
+ `GOOGLE_APPLICATION_CREDENTIALS` environment variable which points to the credentials file.
15
+
16
+ First, install aider:
17
+
18
+ {% include install.md %}
19
+
20
+ To configure Aider to use the Vertex AI API, you need to set `VERTEXAI_PROJECT` (the GCP project ID)
21
+ and `VERTEXAI_LOCATION` (the GCP region) [environment variables for Aider](/docs/config/dotenv.html).
22
+
23
+ Note that Claude on Vertex AI is only available in certain GCP regions,
24
+ check [the model card](https://console.cloud.google.com/vertex-ai/publishers/anthropic/model-garden/claude-3-5-sonnet)
25
+ for your model to see which regions are supported.
26
+
27
+ Example `.env` file:
28
+
29
+ ```
30
+ VERTEXAI_PROJECT=my-project
31
+ VERTEXAI_LOCATION=us-east5
32
+ ```
33
+
34
+ Start working with aider and Vertex AI on your codebase:
35
+
36
+ ```
37
+ # Change directory into your codebase
38
+ cd /to/your/project
39
+
40
+ aider --model vertex_ai/claude-3-5-sonnet@20240620
41
+ ```
42
+
43
+ Or you can use the [YAML config](/docs/config/aider_conf.html) to set the model to any of the
44
+ models supported by Vertex AI.
45
+
46
+ Example `.aider.conf.yml` file:
47
+
48
+ ```yaml
49
+ model: vertex_ai/claude-3-5-sonnet@20240620
50
+ ```
@@ -0,0 +1,10 @@
1
+ ---
2
+ parent: Connecting to LLMs
3
+ nav_order: 900
4
+ ---
5
+
6
+ # Model warnings
7
+
8
+ {% include model-warnings.md %}
9
+
10
+
@@ -0,0 +1,53 @@
1
+ ---
2
+ parent: Connecting to LLMs
3
+ nav_order: 400
4
+ ---
5
+
6
+ # xAI
7
+
8
+ You'll need a [xAI API key](https://console.x.ai.).
9
+
10
+ First, install aider:
11
+
12
+ {% include install.md %}
13
+
14
+ Then configure your API keys:
15
+
16
+ ```bash
17
+ export XAI_API_KEY=<key> # Mac/Linux
18
+ setx XAI_API_KEY <key> # Windows, restart shell after setx
19
+ ```
20
+
21
+ Start working with aider and xAI on your codebase:
22
+
23
+ ```bash
24
+ # Change directory into your codebase
25
+ cd /to/your/project
26
+
27
+ # Grok 3
28
+ aider --model xai/grok-3-beta
29
+
30
+ # Grok 3 fast (faster, more expensive)
31
+ aider --model xai/grok-3-fast-beta
32
+
33
+ # Grok 3 Mini
34
+ aider --model xai/grok-3-mini-beta
35
+
36
+ # Grok 3 Mini fast (faster, more expensive)
37
+ aider --model xai/grok-3-mini-fast-beta
38
+
39
+ # List models available from xAI
40
+ aider --list-models xai/
41
+ ```
42
+
43
+ The Grok 3 Mini models support the `--reasoning-effort` flag.
44
+ See the [reasoning settings documentation](../config/reasoning.md) for details.
45
+ Example:
46
+
47
+ ```bash
48
+ aider --model xai/grok-3-mini-beta --reasoning-effort high
49
+ ```
50
+
51
+
52
+
53
+
@@ -0,0 +1,54 @@
1
+ ---
2
+ title: Connecting to LLMs
3
+ nav_order: 40
4
+ has_children: true
5
+ description: Aider can connect to most LLMs for AI pair programming.
6
+ ---
7
+
8
+ # Aider can connect to most LLMs
9
+ {: .no_toc }
10
+
11
+ [![connecting to many LLMs](/assets/llms.jpg)](https://aider.chat/assets/llms.jpg)
12
+
13
+
14
+ ## Best models
15
+ {: .no_toc }
16
+
17
+ Aider works best with these models, which are skilled at editing code:
18
+
19
+ - [Gemini 2.5 Pro](/docs/llms/gemini.html)
20
+ - [DeepSeek R1 and V3](/docs/llms/deepseek.html)
21
+ - [Claude 3.7 Sonnet](/docs/llms/anthropic.html)
22
+ - [OpenAI o3, o4-mini and GPT-4.1](/docs/llms/openai.html)
23
+
24
+
25
+ ## Free models
26
+ {: .no_toc }
27
+
28
+ Aider works with a number of **free** API providers:
29
+
30
+ - [OpenRouter offers free access to many models](https://openrouter.ai/models/?q=free), with limitations on daily usage.
31
+ - Google's [Gemini 2.5 Pro Exp](/docs/llms/gemini.html) works very well with aider.
32
+
33
+ ## Local models
34
+ {: .no_toc }
35
+
36
+ Aider can work also with local models, for example using [Ollama](/docs/llms/ollama.html).
37
+ It can also access
38
+ local models that provide an
39
+ [Open AI compatible API](/docs/llms/openai-compat.html).
40
+
41
+ ## Use a capable model
42
+ {: .no_toc }
43
+
44
+ Check
45
+ [Aider's LLM leaderboards](https://aider.chat/docs/leaderboards/)
46
+ to see which models work best with aider.
47
+
48
+ Be aware that aider may not work well with less capable models.
49
+ If you see the model returning code, but aider isn't able to edit your files
50
+ and commit the changes...
51
+ this is usually because the model isn't capable of properly
52
+ returning "code edits".
53
+ Models weaker than GPT 3.5 may have problems working well with aider.
54
+
@@ -0,0 +1,122 @@
1
+ ---
2
+ parent: More info
3
+ nav_order: 500
4
+ description: Opt-in, anonymous, no personal info.
5
+ ---
6
+
7
+ # Analytics
8
+
9
+ Aider can collect anonymous analytics to help
10
+ improve aider's ability to work with LLMs, edit code and complete user requests.
11
+
12
+ ## Opt-in, anonymous, no personal info
13
+
14
+ Analytics are only collected if you agree and opt-in.
15
+ Aider respects your privacy and never collects your code, chat messages, keys or
16
+ personal info.
17
+
18
+ Aider collects information on:
19
+
20
+ - which LLMs are used and with how many tokens,
21
+ - which of aider's edit formats are used,
22
+ - how often features and commands are used,
23
+ - information about exceptions and errors,
24
+ - etc
25
+
26
+ These analytics are associated with an anonymous,
27
+ randomly generated UUID4 user identifier.
28
+
29
+ This information helps improve aider by identifying which models, edit formats,
30
+ features and commands are most used.
31
+ It also helps uncover bugs that users are experiencing, so that they can be fixed
32
+ in upcoming releases.
33
+
34
+ ## Disabling analytics
35
+
36
+ You can opt out of analytics forever by running this command one time:
37
+
38
+ ```
39
+ aider --analytics-disable
40
+ ```
41
+
42
+ ## Enabling analytics
43
+
44
+ The `--[no-]analytics` switch controls whether analytics are enabled for the
45
+ current session:
46
+
47
+ - `--analytics` will turn on analytics for the current session.
48
+ This will *not* have any effect if you have permanently disabled analytics
49
+ with `--analytics-disable`.
50
+ If this is the first time you have enabled analytics, aider
51
+ will confirm you wish to opt-in to analytics.
52
+ - `--no-analytics` will turn off analytics for the current session.
53
+ - By default, if you don't provide `--analytics` or `--no-analytics`,
54
+ aider will enable analytics for a random subset of users.
55
+ This will never happen if you have permanently disabled analytics
56
+ with `--analytics-disable`.
57
+ Randomly selected users will be asked if they wish to opt-in to analytics.
58
+
59
+
60
+ ## Opting in
61
+
62
+ The first time analytics are enabled, you will need to agree to opt-in.
63
+
64
+ ```
65
+ aider --analytics
66
+
67
+ Aider respects your privacy and never collects your code, prompts, chats, keys or any personal
68
+ info.
69
+ For more info: https://aider.chat/docs/more/analytics.html
70
+ Allow collection of anonymous analytics to help improve aider? (Y)es/(N)o [Yes]:
71
+ ```
72
+
73
+ If you say "no", analytics will be permanently disabled.
74
+
75
+
76
+ ## Details about data being collected
77
+
78
+ ### Sample analytics data
79
+
80
+ To get a better sense of what type of data is collected, you can review some
81
+ [sample analytics logs](https://github.com/aider-ai/aider/blob/main/aider/website/assets/sample-analytics.jsonl).
82
+ These are the last 1,000 analytics events from the author's
83
+ personal use of aider, updated regularly.
84
+
85
+
86
+ ### Analytics code
87
+
88
+ Since aider is open source, all the places where aider collects analytics
89
+ are visible in the source code.
90
+ They can be viewed using
91
+ [GitHub search](https://github.com/search?q=repo%3Aaider-ai%2Faider+%22.event%28%22&type=code).
92
+
93
+
94
+ ### Logging and inspecting analytics
95
+
96
+ You can get a full log of the analytics that aider is collecting,
97
+ in case you would like to audit or inspect this data.
98
+
99
+ ```
100
+ aider --analytics-log filename.jsonl
101
+ ```
102
+
103
+ If you want to just log analytics without reporting them, you can do:
104
+
105
+ ```
106
+ aider --analytics-log filename.jsonl --no-analytics
107
+ ```
108
+
109
+
110
+ ## Reporting issues
111
+
112
+ If you have concerns about any of the analytics that aider is collecting
113
+ or our data practices
114
+ please contact us by opening a
115
+ [GitHub Issue](https://github.com/aider-ai/aider/issues).
116
+
117
+ ## Privacy policy
118
+
119
+ Please see aider's
120
+ [privacy policy](/docs/legal/privacy.html)
121
+ for more details.
122
+
@@ -0,0 +1,116 @@
1
+ ---
2
+ parent: More info
3
+ nav_order: 490
4
+ description: Aider uses various "edit formats" to let LLMs edit source files.
5
+ ---
6
+
7
+ # Edit formats
8
+
9
+ Aider uses various "edit formats" to let LLMs edit source files.
10
+ Different models work better or worse with different edit formats.
11
+ Aider is configured to use the optimal format for most popular, common models.
12
+ You can always force use of a specific edit format with
13
+ the `--edit-format` switch.
14
+
15
+ ## whole
16
+
17
+ The "whole" edit format is the simplest possible editing format.
18
+ The LLM is instructed to return a full, updated
19
+ copy of each source file that needs changes.
20
+ While simple, it can be slow and costly because the LLM has to return
21
+ the *entire file* even if just a few lines are edited.
22
+
23
+ The whole format expects the file path just before the fenced file content:
24
+
25
+ ````
26
+ show_greeting.py
27
+ ```
28
+ import sys
29
+
30
+ def greeting(name):
31
+ print("Hey", name)
32
+
33
+ if __name__ == '__main__':
34
+ greeting(sys.argv[1])
35
+ ```
36
+ ````
37
+
38
+
39
+ ## diff
40
+
41
+ The "diff" edit format asks the LLM to specify file edits as a series of search/replace blocks.
42
+ This is an efficient format, because the model only needs to return parts of the file
43
+ which have changes.
44
+
45
+ Edits are formatted using a syntax similar to the git merge conflict resolution markings,
46
+ with the file path right before a fenced block:
47
+
48
+ ````
49
+ mathweb/flask/app.py
50
+ ```
51
+ <<<<<<< SEARCH
52
+ from flask import Flask
53
+ =======
54
+ import math
55
+ from flask import Flask
56
+ >>>>>>> REPLACE
57
+ ```
58
+ ````
59
+
60
+ ## diff-fenced
61
+
62
+ The "diff-fenced" edit format is based on the diff format, but
63
+ the file path is placed inside the fence.
64
+ It is primarily used with the Gemini family of models,
65
+ which often fail to conform to the fencing approach specified in the diff format.
66
+
67
+ ````
68
+ ```
69
+ mathweb/flask/app.py
70
+ <<<<<<< SEARCH
71
+ from flask import Flask
72
+ =======
73
+ import math
74
+ from flask import Flask
75
+ >>>>>>> REPLACE
76
+ ```
77
+ ````
78
+
79
+ ## udiff
80
+
81
+ The "udiff" edit format is based on the widely used unified diff format,
82
+ but [modified and simplified](/2023/12/21/unified-diffs.html).
83
+ This is an efficient format, because the model only needs to return parts of the file
84
+ which have changes.
85
+
86
+ It was mainly used to the GPT-4 Turbo family of models,
87
+ because it reduced their "lazy coding" tendencies.
88
+ With other edit formats the GPT-4 Turbo models tended to elide
89
+ large sections of code and replace them with "# ... original code here ..."
90
+ style comments.
91
+
92
+
93
+ ````
94
+ ```diff
95
+ --- mathweb/flask/app.py
96
+ +++ mathweb/flask/app.py
97
+ @@ ... @@
98
+ -class MathWeb:
99
+ +import sympy
100
+ +
101
+ +class MathWeb:
102
+ ```
103
+ ````
104
+
105
+ ## editor-diff and editor-whole
106
+
107
+ These are streamlined versions of the diff and whole formats, intended to be used
108
+ with `--editor-edit-format` when using
109
+ [architect mode](/docs/usage/modes.html).
110
+ The actual edit format is the same, but aider uses a simpler prompt that
111
+ is more narrowly focused on just editing the file as opposed to
112
+ solving the coding task.
113
+ The architect model resolves the coding task and
114
+ provides plain text instructions about which file changes need to be made.
115
+ The editor interprets those instructions to produce the
116
+ syntactically correct diff or whole edits.
@@ -0,0 +1,137 @@
1
+ ---
2
+ parent: More info
3
+ nav_order: 480
4
+ description: Aider can handle "infinite output" from models that support prefill.
5
+ ---
6
+
7
+ # Infinite output
8
+
9
+ LLM providers limit how much output a model can generate from a single request.
10
+ This is usually called the output token limit.
11
+
12
+ Aider is able to work around this limit with models that support
13
+ "prefilling" the assistant response.
14
+ When you use aider with a model that supports prefill, you will see
15
+ "infinite output" noted in the announcement lines displayed at launch:
16
+
17
+ ```
18
+ Aider v0.58.0
19
+ Main model: claude-3-5-sonnet-20240620 with diff edit format, prompt cache, infinite output
20
+ ```
21
+
22
+ Models that support prefill can be primed to think they started their response
23
+ with a specific piece of text.
24
+ You can put words in their mouth, and they will continue generating
25
+ text from that point forward.
26
+
27
+ When aider is collecting code edits from a model and
28
+ it hits the output token limit,
29
+ aider simply initiates another LLM request with the partial
30
+ response prefilled.
31
+ This prompts the model to continue where it left off,
32
+ generating more of the desired response.
33
+ This prefilling of the partially completed response can be repeated,
34
+ allowing for very long outputs.
35
+ Joining the text across these output limit boundaries
36
+ requires some heuristics, but is typically fairly reliable.
37
+
38
+ Aider supports "infinite output" for models that support "prefill",
39
+ such as:
40
+
41
+ <!--[[[cog
42
+ import requests
43
+ import json
44
+
45
+ # Fetch the JSON data
46
+ url = "https://raw.githubusercontent.com/BerriAI/litellm/refs/heads/main/model_prices_and_context_window.json"
47
+ response = requests.get(url)
48
+ data = json.loads(response.text)
49
+
50
+ # Process the JSON to find models with supports_assistant_prefill=true
51
+ prefill_models = [model for model, info in data.items() if info.get('supports_assistant_prefill') == True]
52
+
53
+ # Generate the list of models
54
+ model_list = "\n".join(f"- {model}" for model in sorted(prefill_models))
55
+
56
+ cog.out(model_list)
57
+ ]]]-->
58
+ - anthropic.claude-3-5-haiku-20241022-v1:0
59
+ - anthropic.claude-3-5-sonnet-20241022-v2:0
60
+ - anthropic.claude-3-7-sonnet-20250219-v1:0
61
+ - anthropic.claude-opus-4-20250514-v1:0
62
+ - anthropic.claude-sonnet-4-20250514-v1:0
63
+ - azure_ai/mistral-medium-2505
64
+ - claude-3-5-haiku-20241022
65
+ - claude-3-5-haiku-latest
66
+ - claude-3-5-sonnet-20240620
67
+ - claude-3-5-sonnet-20241022
68
+ - claude-3-5-sonnet-latest
69
+ - claude-3-7-sonnet-20250219
70
+ - claude-3-7-sonnet-latest
71
+ - claude-3-haiku-20240307
72
+ - claude-3-opus-20240229
73
+ - claude-3-opus-latest
74
+ - claude-3-sonnet-20240229
75
+ - claude-opus-4-20250514
76
+ - claude-sonnet-4-20250514
77
+ - codestral/codestral-2405
78
+ - codestral/codestral-latest
79
+ - databricks/databricks-claude-3-7-sonnet
80
+ - deepseek/deepseek-chat
81
+ - deepseek/deepseek-coder
82
+ - deepseek/deepseek-reasoner
83
+ - eu.anthropic.claude-3-5-haiku-20241022-v1:0
84
+ - eu.anthropic.claude-3-5-sonnet-20241022-v2:0
85
+ - eu.anthropic.claude-3-7-sonnet-20250219-v1:0
86
+ - eu.anthropic.claude-opus-4-20250514-v1:0
87
+ - eu.anthropic.claude-sonnet-4-20250514-v1:0
88
+ - mistral/codestral-2405
89
+ - mistral/codestral-latest
90
+ - mistral/codestral-mamba-latest
91
+ - mistral/devstral-small-2505
92
+ - mistral/mistral-large-2402
93
+ - mistral/mistral-large-2407
94
+ - mistral/mistral-large-2411
95
+ - mistral/mistral-large-latest
96
+ - mistral/mistral-medium
97
+ - mistral/mistral-medium-2312
98
+ - mistral/mistral-medium-2505
99
+ - mistral/mistral-medium-latest
100
+ - mistral/mistral-small
101
+ - mistral/mistral-small-latest
102
+ - mistral/mistral-tiny
103
+ - mistral/open-codestral-mamba
104
+ - mistral/open-mistral-7b
105
+ - mistral/open-mistral-nemo
106
+ - mistral/open-mistral-nemo-2407
107
+ - mistral/open-mixtral-8x22b
108
+ - mistral/open-mixtral-8x7b
109
+ - mistral/pixtral-12b-2409
110
+ - mistral/pixtral-large-2411
111
+ - mistral/pixtral-large-latest
112
+ - openrouter/anthropic/claude-3.5-sonnet
113
+ - openrouter/anthropic/claude-3.7-sonnet
114
+ - openrouter/deepseek/deepseek-r1
115
+ - us.anthropic.claude-3-5-haiku-20241022-v1:0
116
+ - us.anthropic.claude-3-5-sonnet-20241022-v2:0
117
+ - us.anthropic.claude-3-7-sonnet-20250219-v1:0
118
+ - us.anthropic.claude-opus-4-20250514-v1:0
119
+ - us.anthropic.claude-sonnet-4-20250514-v1:0
120
+ - vertex_ai/claude-3-5-haiku
121
+ - vertex_ai/claude-3-5-haiku@20241022
122
+ - vertex_ai/claude-3-5-sonnet
123
+ - vertex_ai/claude-3-5-sonnet-v2
124
+ - vertex_ai/claude-3-5-sonnet-v2@20241022
125
+ - vertex_ai/claude-3-5-sonnet@20240620
126
+ - vertex_ai/claude-3-7-sonnet@20250219
127
+ - vertex_ai/claude-3-haiku
128
+ - vertex_ai/claude-3-haiku@20240307
129
+ - vertex_ai/claude-3-opus
130
+ - vertex_ai/claude-3-opus@20240229
131
+ - vertex_ai/claude-3-sonnet
132
+ - vertex_ai/claude-3-sonnet@20240229
133
+ - vertex_ai/claude-opus-4@20250514
134
+ - vertex_ai/claude-sonnet-4@20250514
135
+ <!--[[[end]]]-->
136
+
137
+
@@ -0,0 +1,8 @@
1
+ ---
2
+ has_children: true
3
+ nav_order: 85
4
+ ---
5
+
6
+ # More info
7
+
8
+ See below for more info about aider, including some advanced topics.
@@ -0,0 +1,31 @@
1
+ ---
2
+ parent: Screen recordings
3
+ nav_order: 1
4
+ layout: minimal
5
+ highlight_image: /assets/recordings.jpg
6
+ description: See how a new command-line option is added to automatically accept edits proposed by the architect model, with implementation. Aider also updates the project's HISTORY file.
7
+ ---
8
+
9
+ # Add --auto-accept-architect feature
10
+
11
+ <script>
12
+ const recording_id = "auto-accept-architect";
13
+ const recording_url = "https://gist.githubusercontent.com/paul-gauthier/e7383fbc29c9bb343ee6fb7ee5d77e15/raw/c2194334085304bb1c6bb80814d791704d9719b6/707774.cast";
14
+ </script>
15
+
16
+ {% include recording.md %}
17
+
18
+ ## Commentary
19
+
20
+ - 0:01 We're going to add a new feature to automatically accept edits proposed by the architect model.
21
+ - 0:11 First, let's add the new switch.
22
+ - 0:40 Aider figured out that it should be passed to the Coder class.
23
+ - 0:48 Now we need to implement the functionality.
24
+ - 1:00 Let's do some manual testing.
25
+ - 1:28 That worked. Let's make sure we can turn it off too.
26
+ - 1:42 That worked too. Let's have aider update the HISTORY file to document the new feature.
27
+ - 2:00 Let's quickly tidy up the changes to HISTORY.
28
+ - 2:05 All done!
29
+
30
+
31
+