aider-ce 0.88.20__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 +34 -0
- aider/analytics.py +258 -0
- aider/args.py +1056 -0
- aider/args_formatter.py +228 -0
- aider/change_tracker.py +133 -0
- aider/coders/__init__.py +36 -0
- aider/coders/agent_coder.py +2166 -0
- aider/coders/agent_prompts.py +104 -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 +3613 -0
- aider/coders/base_prompts.py +87 -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 +175 -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 +9 -0
- aider/coders/editor_editblock_prompts.py +21 -0
- aider/coders/editor_whole_coder.py +9 -0
- aider/coders/editor_whole_prompts.py +12 -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 +159 -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 +65 -0
- aider/commands.py +2173 -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 +115 -0
- aider/format_settings.py +26 -0
- aider/gui.py +545 -0
- aider/help.py +163 -0
- aider/help_pats.py +19 -0
- aider/helpers/__init__.py +9 -0
- aider/helpers/similarity.py +98 -0
- aider/history.py +180 -0
- aider/io.py +1608 -0
- aider/linter.py +304 -0
- aider/llm.py +55 -0
- aider/main.py +1415 -0
- aider/mcp/__init__.py +174 -0
- aider/mcp/server.py +149 -0
- aider/mdstream.py +243 -0
- aider/models.py +1313 -0
- aider/onboarding.py +429 -0
- aider/openrouter.py +129 -0
- aider/prompts.py +56 -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/clojure-tags.scm +7 -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/matlab-tags.scm +10 -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 +24 -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/fortran-tags.scm +15 -0
- aider/queries/tree-sitter-languages/go-tags.scm +30 -0
- aider/queries/tree-sitter-languages/haskell-tags.scm +3 -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/julia-tags.scm +60 -0
- aider/queries/tree-sitter-languages/kotlin-tags.scm +27 -0
- aider/queries/tree-sitter-languages/matlab-tags.scm +10 -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/queries/tree-sitter-languages/zig-tags.scm +3 -0
- aider/reasoning_tags.py +82 -0
- aider/repo.py +621 -0
- aider/repomap.py +1174 -0
- aider/report.py +260 -0
- aider/resources/__init__.py +3 -0
- aider/resources/model-metadata.json +776 -0
- aider/resources/model-settings.yml +2068 -0
- aider/run_cmd.py +133 -0
- aider/scrape.py +293 -0
- aider/sendchat.py +242 -0
- aider/sessions.py +256 -0
- aider/special.py +203 -0
- aider/tools/__init__.py +72 -0
- aider/tools/command.py +105 -0
- aider/tools/command_interactive.py +122 -0
- aider/tools/delete_block.py +182 -0
- aider/tools/delete_line.py +155 -0
- aider/tools/delete_lines.py +184 -0
- aider/tools/extract_lines.py +341 -0
- aider/tools/finished.py +48 -0
- aider/tools/git_branch.py +129 -0
- aider/tools/git_diff.py +60 -0
- aider/tools/git_log.py +57 -0
- aider/tools/git_remote.py +53 -0
- aider/tools/git_show.py +51 -0
- aider/tools/git_status.py +46 -0
- aider/tools/grep.py +256 -0
- aider/tools/indent_lines.py +221 -0
- aider/tools/insert_block.py +288 -0
- aider/tools/list_changes.py +86 -0
- aider/tools/ls.py +93 -0
- aider/tools/make_editable.py +85 -0
- aider/tools/make_readonly.py +69 -0
- aider/tools/remove.py +91 -0
- aider/tools/replace_all.py +126 -0
- aider/tools/replace_line.py +173 -0
- aider/tools/replace_lines.py +217 -0
- aider/tools/replace_text.py +187 -0
- aider/tools/show_numbered_context.py +147 -0
- aider/tools/tool_utils.py +313 -0
- aider/tools/undo_change.py +95 -0
- aider/tools/update_todo_list.py +156 -0
- aider/tools/view.py +57 -0
- aider/tools/view_files_matching.py +141 -0
- aider/tools/view_files_with_symbol.py +129 -0
- aider/urls.py +17 -0
- aider/utils.py +456 -0
- aider/versioncheck.py +113 -0
- aider/voice.py +205 -0
- aider/waiting.py +38 -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 +2261 -0
- aider/website/docs/config/agent-mode.md +194 -0
- aider/website/docs/config/aider_conf.md +548 -0
- aider/website/docs/config/api-keys.md +90 -0
- aider/website/docs/config/dotenv.md +493 -0
- aider/website/docs/config/editor.md +127 -0
- aider/website/docs/config/mcp.md +95 -0
- aider/website/docs/config/model-aliases.md +104 -0
- aider/website/docs/config/options.md +890 -0
- aider/website/docs/config/reasoning.md +210 -0
- aider/website/docs/config.md +44 -0
- aider/website/docs/faq.md +384 -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 +111 -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 +117 -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 +127 -0
- aider/website/docs/more/edit-formats.md +116 -0
- aider/website/docs/more/infinite-output.md +165 -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/sessions.md +203 -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 +133 -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 +102 -0
- aider/website/share/index.md +101 -0
- aider_ce-0.88.20.dist-info/METADATA +187 -0
- aider_ce-0.88.20.dist-info/RECORD +279 -0
- aider_ce-0.88.20.dist-info/WHEEL +5 -0
- aider_ce-0.88.20.dist-info/entry_points.txt +2 -0
- aider_ce-0.88.20.dist-info/licenses/LICENSE.txt +202 -0
- aider_ce-0.88.20.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
---
|
|
2
|
+
parent: Usage
|
|
3
|
+
nav_order: 901
|
|
4
|
+
description: Use aider to edit configuration files, documentation, and other text-based formats.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# Editing config & text files
|
|
9
|
+
|
|
10
|
+
Aider isn't just for code, it can be very helpful when editing
|
|
11
|
+
almost any text file.
|
|
12
|
+
You can use aider to make changes to your shell & ssh settings,
|
|
13
|
+
Dockerfiles
|
|
14
|
+
or pretty much any configuration or documentation file.
|
|
15
|
+
|
|
16
|
+
Here are some practical examples of modifying common config/text files:
|
|
17
|
+
|
|
18
|
+
## Shell Configuration
|
|
19
|
+
|
|
20
|
+
<div class="chat-transcript" markdown="1">
|
|
21
|
+
$ aider .bashrc
|
|
22
|
+
|
|
23
|
+
Added .bashrc to the chat.
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
#### Add an alias 'll' that lists all files, with all details in human readable format. And update PATH to include uv installed tools.
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
+ alias ll='ls -alh'
|
|
30
|
+
+ export PATH="$PATH:$HOME/.local/bin:$PATH"
|
|
31
|
+
```
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
## SSH Configurations
|
|
35
|
+
|
|
36
|
+
<div class="chat-transcript" markdown="1">
|
|
37
|
+
$ aider ~/.ssh/config
|
|
38
|
+
|
|
39
|
+
Added config to the chat.
|
|
40
|
+
|
|
41
|
+
#### Create a Host entry 'my-server' using bastion.example.com as JumpHost
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
+ Host my-server
|
|
45
|
+
+ HostName 192.168.1.100
|
|
46
|
+
+ User deploy
|
|
47
|
+
+ Port 2222
|
|
48
|
+
+ IdentityFile ~/.ssh/deploy_key
|
|
49
|
+
+ ProxyJump bastion.example.com
|
|
50
|
+
```
|
|
51
|
+
</div>
|
|
52
|
+
|
|
53
|
+
## Docker Setup
|
|
54
|
+
|
|
55
|
+
<div class="chat-transcript" markdown="1">
|
|
56
|
+
$ aider Dockerfile docker-compose.yml
|
|
57
|
+
|
|
58
|
+
Added Dockerfile and docker-compose.yml to the chat.
|
|
59
|
+
|
|
60
|
+
#### Set non-root user and enable healthchecks
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
+ USER appuser
|
|
64
|
+
+ HEALTHCHECK --interval=30s --timeout=3s \
|
|
65
|
+
+ CMD curl -f http://localhost:8000/health || exit 1
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
#### Expose port 5432 and add volume for postgres data
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
services:
|
|
72
|
+
postgres:
|
|
73
|
+
image: postgres:15
|
|
74
|
+
+ ports:
|
|
75
|
+
+ - "5432:5432"
|
|
76
|
+
+ volumes:
|
|
77
|
+
+ - pgdata:/var/lib/postgresql/data
|
|
78
|
+
```
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
## Git Configuration
|
|
82
|
+
|
|
83
|
+
<div class="chat-transcript" markdown="1">
|
|
84
|
+
$ aider .gitconfig
|
|
85
|
+
|
|
86
|
+
Added .gitconfig to the chat.
|
|
87
|
+
|
|
88
|
+
#### Set default push behavior to current branch and enable color UI
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
+ [push]
|
|
92
|
+
+ default = current
|
|
93
|
+
+ [color]
|
|
94
|
+
+ ui = auto
|
|
95
|
+
```
|
|
96
|
+
</div>
|
|
97
|
+
|
|
98
|
+
## System Configuration
|
|
99
|
+
<div class="chat-transcript" markdown="1">
|
|
100
|
+
$ aider /etc/hosts # May need sudo
|
|
101
|
+
|
|
102
|
+
Added hosts to the chat.
|
|
103
|
+
|
|
104
|
+
#### Block tracking domains by pointing them to 127.0.0.1
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
+ 127.0.0.1 ads.example.com
|
|
108
|
+
+ 127.0.0.1 track.analytics.co
|
|
109
|
+
```
|
|
110
|
+
</div>
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
## Editor Configs
|
|
114
|
+
<div class="chat-transcript" markdown="1">
|
|
115
|
+
$ aider .vimrc
|
|
116
|
+
|
|
117
|
+
Added .vimrc to the chat.
|
|
118
|
+
|
|
119
|
+
#### Enable line numbers and set 4-space tabs for Python
|
|
120
|
+
|
|
121
|
+
```
|
|
122
|
+
+ set number
|
|
123
|
+
+ autocmd FileType python set tabstop=4 shiftwidth=4 expandtab
|
|
124
|
+
```
|
|
125
|
+
</div>
|
|
126
|
+
|
|
127
|
+
## VSCode Configuration
|
|
128
|
+
<div class="chat-transcript" markdown="1">
|
|
129
|
+
$ aider settings.json
|
|
130
|
+
|
|
131
|
+
Added settings.json to the chat.
|
|
132
|
+
|
|
133
|
+
#### Enable auto-format on save and set default formatter
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
+ "editor.formatOnSave": true,
|
|
137
|
+
+ "editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
138
|
+
```
|
|
139
|
+
</div>
|
|
140
|
+
|
|
141
|
+
## Markdown Documentation
|
|
142
|
+
<div class="chat-transcript" markdown="1">
|
|
143
|
+
$ aider README.md
|
|
144
|
+
|
|
145
|
+
Added README.md to the chat.
|
|
146
|
+
|
|
147
|
+
|
|
148
|
+
#### Add installation section with brew and pip options
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
+ ## Installation
|
|
152
|
+
+ ```
|
|
153
|
+
+ # Homebrew
|
|
154
|
+
+ brew install cool-app-10k
|
|
155
|
+
+
|
|
156
|
+
+ # PyPI
|
|
157
|
+
+ pipx install cool-app-10k
|
|
158
|
+
+ ```
|
|
159
|
+
```
|
|
160
|
+
</div>
|
|
161
|
+
|
|
162
|
+
## XML Configuration
|
|
163
|
+
<div class="chat-transcript" markdown="1">
|
|
164
|
+
$ aider pom.xml
|
|
165
|
+
|
|
166
|
+
Added pom.xml to the chat.
|
|
167
|
+
#### Add JUnit 5 dependency with test scope
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
+ <dependency>
|
|
171
|
+
+ <groupId>org.junit.jupiter</groupId>
|
|
172
|
+
+ <artifactId>junit-jupiter-api</artifactId>
|
|
173
|
+
+ <version>5.9.2</version>
|
|
174
|
+
+ <scope>test</scope>
|
|
175
|
+
+ </dependency>
|
|
176
|
+
```
|
|
177
|
+
</div>
|
|
178
|
+
|
|
179
|
+
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Notifications
|
|
3
|
+
highlight_image: /assets/notifications.jpg
|
|
4
|
+
parent: Usage
|
|
5
|
+
nav_order: 760
|
|
6
|
+
description: Aider can notify you when it's waiting for your input.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Notifications
|
|
10
|
+
|
|
11
|
+
Aider can notify you when it's done working and is
|
|
12
|
+
waiting for your input.
|
|
13
|
+
This is especially useful for long-running operations or when you're multitasking.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
Enable notifications with the `--notifications` flag:
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
aider --notifications
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
When enabled, aider will notify you when the LLM has finished generating a response and is waiting for your input.
|
|
24
|
+
|
|
25
|
+
## OS-Specific Notifications
|
|
26
|
+
|
|
27
|
+
Aider automatically detects your operating system and uses an appropriate notification method:
|
|
28
|
+
|
|
29
|
+
- **macOS**: Uses `terminal-notifier` if available, falling back to AppleScript notifications
|
|
30
|
+
- **Linux**: Uses `notify-send` or `zenity` if available
|
|
31
|
+
- **Windows**: Uses PowerShell to display a message box
|
|
32
|
+
|
|
33
|
+
## Custom Notification Commands
|
|
34
|
+
|
|
35
|
+
You can specify a custom notification command with `--notifications-command`:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
aider --notifications-command "your-custom-command"
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
For example, on macOS you might use:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
aider --notifications-command "say 'Aider is ready'"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Remote Notifications
|
|
48
|
+
|
|
49
|
+
For remote notifications you could use [Apprise](https://github.com/caronc/apprise),
|
|
50
|
+
which is a cross-platform Python library for sending notifications to various services.
|
|
51
|
+
|
|
52
|
+
We can use Apprise to send notifications to Slack
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
aider --notifications-command "apprise -b 'Aider is ready' 'slack://your-slack-webhook-token'"
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
or Discord
|
|
59
|
+
```bash
|
|
60
|
+
aider --notifications-command "apprise -b 'Aider is ready' 'discord://your-discord-webhook-token'"
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
or even to your phone via Pushbullet
|
|
64
|
+
```bash
|
|
65
|
+
aider --notifications-command "apprise -b 'Aider is ready' 'pbul://your-pushbullet-access-token'"
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
Check more how to use and configure Apprise on their GitHub page.
|
|
69
|
+
|
|
70
|
+
## Configuration
|
|
71
|
+
|
|
72
|
+
You can add these settings to your configuration file:
|
|
73
|
+
|
|
74
|
+
```yaml
|
|
75
|
+
# Enable notifications
|
|
76
|
+
notifications: true
|
|
77
|
+
|
|
78
|
+
# Optional custom notification command
|
|
79
|
+
notifications_command: "your-custom-command"
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Or in your `.env` file:
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
AIDER_NOTIFICATIONS=true
|
|
86
|
+
AIDER_NOTIFICATIONS_COMMAND=your-custom-command
|
|
87
|
+
```
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
---
|
|
2
|
+
parent: Usage
|
|
3
|
+
nav_order: 25
|
|
4
|
+
description: Tips for AI pair programming with aider.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Tips
|
|
8
|
+
|
|
9
|
+
## Just add the files that need to be changed to the chat
|
|
10
|
+
|
|
11
|
+
Take a moment and think about which files will need to be changed.
|
|
12
|
+
Aider can often figure out which files to edit all by itself, but the most efficient approach is for you to add the files to the chat.
|
|
13
|
+
|
|
14
|
+
## Don't add lots of files to the chat
|
|
15
|
+
|
|
16
|
+
Just add the files you think need to be edited.
|
|
17
|
+
Too much irrelevant code will distract and confuse the LLM.
|
|
18
|
+
Aider uses a [map of your entire git repo](https://aider.chat/docs/repomap.html)
|
|
19
|
+
so is usually aware of relevant classes/functions/methods elsewhere in your code base.
|
|
20
|
+
It's ok to add 1-2 highly relevant files that don't need to be edited,
|
|
21
|
+
but be selective.
|
|
22
|
+
|
|
23
|
+
## Break your goal down into bite sized steps
|
|
24
|
+
|
|
25
|
+
Do them one at a time.
|
|
26
|
+
Adjust the files added to the chat as you go: `/drop` files that don't need any more changes, `/add` files that need changes for the next step.
|
|
27
|
+
|
|
28
|
+
## For complex changes, discuss a plan first
|
|
29
|
+
|
|
30
|
+
Use the [`/ask` command](modes.html) to make a plan with aider.
|
|
31
|
+
Once you are happy with the approach, just say "go ahead" without the `/ask` prefix.
|
|
32
|
+
|
|
33
|
+
## If aider gets stuck
|
|
34
|
+
|
|
35
|
+
- Use `/clear` to discard the chat history and make a fresh start.
|
|
36
|
+
- Can you `/drop` any extra files?
|
|
37
|
+
- Use `/ask` to discuss a plan before aider starts editing code.
|
|
38
|
+
- Use the [`/model` command](commands.html) to switch to a different model and try again. Switching between GPT-4o and Sonnet will often get past problems.
|
|
39
|
+
- If aider is hopelessly stuck,
|
|
40
|
+
just code the next step yourself and try having aider code some more after that.
|
|
41
|
+
Take turns and pair program with aider.
|
|
42
|
+
|
|
43
|
+
## Creating new files
|
|
44
|
+
|
|
45
|
+
If you want aider to create a new file, add it to the repository first with `/add <file>`.
|
|
46
|
+
This way aider knows this file exists and will write to it.
|
|
47
|
+
Otherwise, aider might write the changes to an existing file.
|
|
48
|
+
This can happen even if you ask for a new file, as LLMs tend to focus a lot
|
|
49
|
+
on the existing information in their contexts.
|
|
50
|
+
|
|
51
|
+
## Fixing bugs and errors
|
|
52
|
+
|
|
53
|
+
If your code is throwing an error,
|
|
54
|
+
use the [`/run` command](commands.html)
|
|
55
|
+
to share the error output with the aider.
|
|
56
|
+
Or just paste the errors into the chat. Let the aider figure out how to fix the bug.
|
|
57
|
+
|
|
58
|
+
If test are failing, use the [`/test` command](lint-test.html)
|
|
59
|
+
to run tests and
|
|
60
|
+
share the error output with the aider.
|
|
61
|
+
|
|
62
|
+
## Providing docs
|
|
63
|
+
|
|
64
|
+
LLMs know about a lot of standard tools and libraries, but may get some of the fine details wrong about API versions and function arguments.
|
|
65
|
+
|
|
66
|
+
You can provide up-to-date documentation in a few ways:
|
|
67
|
+
|
|
68
|
+
- Paste doc snippets into the chat.
|
|
69
|
+
- Include a URL to docs in your chat message
|
|
70
|
+
and aider will scrape and read it. For example: `Add a submit button like this https://ui.shadcn.com/docs/components/button`.
|
|
71
|
+
- Use the [`/read` command](commands.html) to read doc files into the chat from anywhere on your filesystem.
|
|
72
|
+
- If you have coding conventions or standing instructions you want aider to follow, consider using a [conventions file](conventions.html).
|
|
73
|
+
|
|
74
|
+
## Interrupting & inputting
|
|
75
|
+
|
|
76
|
+
Use Control-C to interrupt aider if it isn't providing a useful response. The partial response remains in the conversation, so you can refer to it when you reply with more information or direction.
|
|
77
|
+
|
|
78
|
+
{% include multi-line.md %}
|
|
79
|
+
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
---
|
|
2
|
+
parent: Usage
|
|
3
|
+
nav_order: 75
|
|
4
|
+
description: Intro and tutorial videos made by aider users.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Tutorial videos
|
|
8
|
+
|
|
9
|
+
Here are some tutorial videos made by aider users:
|
|
10
|
+
|
|
11
|
+
- [Using Architect/Editor mode](https://www.youtube.com/watch?v=OPXslklVBZc) -- AICodeKing
|
|
12
|
+
- [Using aider to incrementally build a non-trivial app](https://youtu.be/QlUt06XLbJE) -- IndyDevDan
|
|
13
|
+
- [Aider and Replit on mobile with your voice](https://x.com/itsPaulAi/status/1830987090617831810) -- Paul Couvert
|
|
14
|
+
- [Aider is the OG AI Coding King (Mermaid Diagram AI Agent)](https://www.youtube.com/watch?v=ag-KxYS8Vuw) -- IndyDevDan
|
|
15
|
+
- [Installing aider in replit and making a Trello clone](https://x.com/itspaulai/status/1828834199597633724) -- Paul Couvert
|
|
16
|
+
- [Step-by-Step Development Environment Setup for AI-Assisted Coding](https://www.youtube.com/watch?v=DnBVgfe6ZQM) -- Coding the Future With AI
|
|
17
|
+
- [Generate FULL-STACK Apps with Claude 3.5 Sonnet](https://youtu.be/sKeIZGW8xzg) -- AICodeKing
|
|
18
|
+
- [Creating Games with AI from Start-To-End](https://youtu.be/sOd2YYZFMUs) -- AICodeKing
|
|
19
|
+
- [Claude 3.5 and aider: Use AI Assistants to Build AI Apps](https://youtu.be/0hIisJ3xAdU) -- Coding the Future With AI
|
|
20
|
+
- [Develop a Full-stack App Without Writing ANY Code](https://youtu.be/dzOWn8TI738) -- WorldofAI
|
|
21
|
+
- [Generate Games with AI (w/ Local LLMs)](https://youtu.be/DjVJpGzQbSA) -- AICodeKing
|
|
22
|
+
- [Aider tips and Example use](https://www.youtube.com/watch?v=OsChkvGGDgw) -- techfren
|
|
23
|
+
- [Aider and Claude 3.5: Develop a Full-stack App Without Writing ANY Code!](https://www.youtube.com/watch?v=BtAqHsySdSY) -- Coding the Future With AI
|
|
24
|
+
- [Generate application with just one prompt using Aider](https://www.youtube.com/watch?v=Y-_0VkMUiPc&t=78s) -- AICodeKing
|
|
25
|
+
- [Aider : the production ready AI coding assistant you've been waiting for](https://www.youtube.com/watch?v=zddJofosJuM) -- Learn Code With JV
|
|
26
|
+
- [Holy Grail: FREE Coding Assistant That Can Build From EXISTING CODE BASE](https://www.youtube.com/watch?v=df8afeb1FY8) -- Matthew Berman
|
|
27
|
+
- [Aider: This AI Coder Can Create AND Update Git Codebases](https://www.youtube.com/watch?v=EqLyFT78Sig) -- Ian Wootten
|
|
28
|
+
|
|
29
|
+
Thanks to all these great creators for taking the time
|
|
30
|
+
to share their experiences coding with aider!
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
---
|
|
2
|
+
parent: Usage
|
|
3
|
+
nav_order: 100
|
|
4
|
+
description: Speak with aider about your code!
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Voice-to-code with aider
|
|
8
|
+
|
|
9
|
+
Speak with aider about your code! Request new features, test cases or bug fixes using your voice and let aider do the work of editing the files in your local git repo. As with all of aider's capabilities, you can use voice-to-code with an existing repo or to start a new project.
|
|
10
|
+
|
|
11
|
+
Voice support fits quite naturally into aider's AI pair programming
|
|
12
|
+
chat interface. Now you can fluidly switch between voice and text chat
|
|
13
|
+
when you ask aider to edit your code.
|
|
14
|
+
|
|
15
|
+
## How to use voice-to-code
|
|
16
|
+
|
|
17
|
+
Use the in-chat `/voice` command to start recording,
|
|
18
|
+
and press `ENTER` when you're done speaking.
|
|
19
|
+
Your voice coding instructions will be transcribed,
|
|
20
|
+
as if you had typed them into
|
|
21
|
+
the aider chat session.
|
|
22
|
+
|
|
23
|
+
See the [installation instructions](https://aider.chat/docs/install/optional.html#enable-voice-coding) for
|
|
24
|
+
information on how to enable the `/voice` command.
|
|
25
|
+
|
|
26
|
+
<br/>
|
|
27
|
+
<div class="chat-transcript" markdown="1">
|
|
28
|
+
|
|
29
|
+
> Aider v0.11.2-dev
|
|
30
|
+
> Added app.py to the chat.
|
|
31
|
+
|
|
32
|
+
#### /voice
|
|
33
|
+
|
|
34
|
+
<blockquote>
|
|
35
|
+
<div class="recording-line">
|
|
36
|
+
<p style="display: inline;">Recording, press ENTER when done... <span id="timer">3.5</span>sec</p>
|
|
37
|
+
<div id="progress-bar">
|
|
38
|
+
<div id="progress"></div>
|
|
39
|
+
</div>
|
|
40
|
+
</div>
|
|
41
|
+
</blockquote>
|
|
42
|
+
|
|
43
|
+
<style>
|
|
44
|
+
.recording-line > * {
|
|
45
|
+
display: inline-block;
|
|
46
|
+
vertical-align: middle;
|
|
47
|
+
}
|
|
48
|
+
#progress-bar {
|
|
49
|
+
width: 100px;
|
|
50
|
+
height: 20px;
|
|
51
|
+
background-color: #333;
|
|
52
|
+
margin-left: 10px;
|
|
53
|
+
}
|
|
54
|
+
#progress {
|
|
55
|
+
height: 100%;
|
|
56
|
+
background-color: #f0f0f0;
|
|
57
|
+
animation: progress 3s infinite;
|
|
58
|
+
}
|
|
59
|
+
@keyframes progress {
|
|
60
|
+
0% { width: 10%; }
|
|
61
|
+
20% { width: 90%; }
|
|
62
|
+
50% { width: 30%; }
|
|
63
|
+
60% { width: 90%; }
|
|
64
|
+
80% { width: 20%; }
|
|
65
|
+
100% { width: 10%; }
|
|
66
|
+
|
|
67
|
+
}
|
|
68
|
+
</style>
|
|
69
|
+
|
|
70
|
+
<script>
|
|
71
|
+
window.onload = function() {
|
|
72
|
+
var counter = 0;
|
|
73
|
+
var timer = document.getElementById('timer');
|
|
74
|
+
setInterval(function() {
|
|
75
|
+
counter = (counter + 0.1) % 9;
|
|
76
|
+
timer.textContent = counter.toFixed(1);
|
|
77
|
+
}, 100);
|
|
78
|
+
}
|
|
79
|
+
</script>
|
|
80
|
+
|
|
81
|
+
<div style="display: inline-block; position: relative; width: 200px; background-color: #f0f0f0; border-radius: 10px; padding: 10px; color: #333; font-family: 'Comic Sans MS', 'Comic Sans', 'Marker Felt', sans-serif;">
|
|
82
|
+
<span style="position: absolute; top: 0; left: 50%; transform: translate(-50%, -100%); width: 0; height: 0; border-left: 10px solid transparent; border-right: 10px solid transparent; border-bottom: 10px solid #f0f0f0;"></span>
|
|
83
|
+
“ add a factorial endpoint that uses math factorial ”
|
|
84
|
+
</div>
|
|
85
|
+
|
|
86
|
+
#### Add a factorial endpoint that uses math.factorial.
|
|
87
|
+
|
|
88
|
+
To add a factorial endpoint to the Flask application, we need to modify the `app.py` file.
|
|
89
|
+
|
|
90
|
+
Here are the steps:
|
|
91
|
+
|
|
92
|
+
1. Add a new route `/fact/<int:x>` to the Flask application.
|
|
93
|
+
2. In the function for this route, call `math.factorial(x)` and return the result as a string.
|
|
94
|
+
|
|
95
|
+
Here is the *edit block* for these changes:
|
|
96
|
+
|
|
97
|
+
```python
|
|
98
|
+
app.py
|
|
99
|
+
<<<<<<< HEAD
|
|
100
|
+
if __name__ == '__main__':
|
|
101
|
+
print("Starting...")
|
|
102
|
+
app.run()
|
|
103
|
+
=======
|
|
104
|
+
@app.route('/fact/<int:x>')
|
|
105
|
+
def factorial(x):
|
|
106
|
+
result = math.factorial(x)
|
|
107
|
+
return str(result)
|
|
108
|
+
|
|
109
|
+
if __name__ == '__main__':
|
|
110
|
+
print("Starting...")
|
|
111
|
+
app.run()
|
|
112
|
+
>>>>>>> updated
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
> Applied edit to app.py
|
|
116
|
+
> Commit ef9e3e7 aider: Add a factorial endpoint that uses math.factorial.
|
|
117
|
+
|
|
118
|
+
</div>
|
|
119
|
+
<br/>
|
|
120
|
+
<br/>
|
|
121
|
+
<br/>
|