- Support for Qwen 2.5 Coder 32B.
/web
command just adds the page to the chat, without triggering an LLM response.- Improved prompting for the user's preferred chat language.
- Improved handling of LiteLLM exceptions.
- Bugfix for double-counting tokens when reporting cache stats.
- Bugfix for the LLM creating new files.
- Other small bug fixes.
- Aider wrote 55% of the code in this release.
- Full support for Claude 3.5 Haiku
- Scored 75% on aider's code editing leaderboard.
- Almost as good as Sonnet at much lower cost.
- Launch with
--haiku
to use it.
- Easily apply file edits from ChatGPT, Claude or other web apps
- Chat with ChatGPT or Claude via their web app.
- Give it your source files and ask for the changes you want.
- Use the web app's "copy response" button to copy the entire reply from the LLM.
- Run
aider --apply-clipboard-edits file-to-edit.js
. - Aider will edit your file with the LLM's changes.
- Bugfix for creating new files.
- Aider wrote 84% of the code in this release.
- Load and save aider slash-commands to files:
/save <fname>
command will make a file of/add
and/read-only
commands that recreate the current file context in the chat./load <fname>
will replay the commands in the file.- You can use
/load
to run any arbitrary set of slash-commands, not just/add
and/read-only
. - Use
--load <fname>
to run a list of commands on launch, before the interactive chat begins.
- Anonymous, opt-in analytics with no personal data sharing.
- Aider follows litellm's
supports_vision
attribute to enable image support for models. - Bugfix for when diff mode flexibly handles the model using the wrong filename.
- Displays filenames in sorted order for
/add
and/read-only
. - New
--no-fancy-input
switch disables prompt toolkit input, now still available with--no-pretty
. - Override browser config with
--no-browser
or--no-gui
. - Offer to open documentation URLs when errors occur.
- Properly support all o1 models, regardless of provider.
- Improved layout of filenames above input prompt.
- Better handle corrupted repomap tags cache.
- Improved handling of API errors, especially when accessing the weak model.
- Aider wrote 68% of the code in this release.
- Enable image support for Sonnet 10/22.
- Display filenames in sorted order.
- Full support for Sonnet 10/22, the new SOTA model on aider's code editing benchmark.
- Aider uses Sonnet 10/22 by default.
- Improved formatting of added and read-only files above chat prompt, by @jbellis.
- Improved support for o1 models by more flexibly parsing their nonconforming code edit replies.
- Corrected diff edit format prompt that only the first match is replaced.
- Stronger whole edit format prompt asking for clean file names.
- Now offers to add
.env
to the.gitignore
file. - Ships with a small model metadata json file to handle models not yet updated in litellm.
- Model settings for o1 models on azure.
- Bugfix to properly include URLs in
/help
RAG results. - Aider wrote 49% of the code in this release.
- Check for obsolete
yes: true
in yaml config, show helpful error. - Model settings for openrouter/anthropic/claude-3.5-sonnet:beta
- Improvements to
/read-only
:- Now supports shell-style auto-complete of the full file system.
- Still auto-completes the full paths of the repo files like
/add
. - Now supports globs like
src/**/*.py
- Renamed
--yes
to--yes-always
.- Now uses
AIDER_YES_ALWAYS
env var andyes-always:
yaml key. - Existing YAML and .env files will need to be updated.
- Can still abbreviate to
--yes
on the command line.
- Now uses
- Config file now uses standard YAML list syntax with
- list entries
, one per line. /settings
now includes the same announcement lines that would print at launch.- Sanity checks the
--editor-model
on launch now, same as main and weak models. - Added
--skip-sanity-check-repo
switch to speedup launch in large repos. - Bugfix so architect mode handles Control-C properly.
- Repo-map is deterministic now, with improved caching logic.
- Improved commit message prompt.
- Aider wrote 77% of the code in this release.
- Fixed bug where cache warming pings caused subsequent user messages to trigger a tight loop of LLM requests.
- Use a pair of Architect/Editor models for improved coding
- Use a strong reasoning model like o1-preview as your Architect.
- Use a cheaper, faster model like gpt-4o as your Editor.
- New
--o1-preview
and--o1-mini
shortcuts. - Support for new Gemini 002 models.
- Better support for Qwen 2.5 models.
- Many confirmation questions can be skipped for the rest of the session with "(D)on't ask again" response.
- Autocomplete for
/read-only
supports the entire filesystem. - New settings for completion menu colors.
- New
/copy
command to copy the last LLM response to the clipboard. - Renamed
/clipboard
to/paste
. - Will now follow HTTP redirects when scraping urls.
- New
--voice-format
switch to send voice audio as wav/mp3/webm, by @mbailey. - ModelSettings takes
extra_params
dict to specify any extras to pass tolitellm.completion()
. - Support for cursor shapes when in vim mode.
- Numerous bug fixes.
- Aider wrote 53% of the code in this release.
- Fixed dependency conflict between aider-chat[help] and [playwright].
- Support for OpenAI o1 models:
- o1-preview now works well with diff edit format.
- o1-preview with diff now matches SOTA leaderboard result with whole edit format.
aider --model o1-mini
aider --model o1-preview
- On Windows,
/run
correctly uses PowerShell or cmd.exe. - Support for new 08-2024 Cohere models, by @jalammar.
- Can now recursively add directories with
/read-only
. - User input prompts now fall back to simple
input()
if--no-pretty
or a Windows console is not available. - Improved sanity check of git repo on startup.
- Improvements to prompt cache chunking strategy.
- Removed "No changes made to git tracked files".
- Numerous bug fixes for corner case crashes.
- Updated all dependency versions.
- Aider wrote 70% of the code in this release.
- Enables prompt caching for Sonnet via OpenRouter by @fry69
- Enables 8k output tokens for Sonnet via VertexAI and DeepSeek V2.5.
- New
/report
command to open your browser with a pre-populated GitHub Issue. - New
--chat-language
switch to set the spoken language. - Now
--[no-]suggest-shell-commands
controls both prompting for and offering to execute shell commands. - Check key imports on launch, provide helpful error message if dependencies aren't available.
- Renamed
--models
to--list-models
by @fry69. - Numerous bug fixes for corner case crashes.
- Aider wrote 56% of the code in this release.
- Only print the pip command when self updating on Windows, without running it.
- Converted many error messages to warning messages.
- Added
--tool-warning-color
setting. - Blanket catch and handle git errors in any
/command
. - Catch and handle glob errors in
/add
, errors writing files. - Disabled built in linter for typescript.
- Catch and handle terminals which don't support pretty output.
- Catch and handle playwright and pandoc errors.
- Catch
/voice
transcription exceptions, show the WAV file so the user can recover it. - Aider wrote 53% of the code in this release.
- Switched to
vX.Y.Z.dev
version naming.
- Improved printed pip command output on Windows.
- Bugfix to test command in platform info.
- Include important devops files in the repomap.
- Print quoted pip install commands to the user.
- Adopt setuptools_scm to provide dev versions with git hashes.
- Share active test and lint commands with the LLM.
- Catch and handle most errors creating new files, reading existing files.
- Catch and handle most git errors.
- Added --verbose debug output for shell commands.
- Startup QOL improvements:
- Sanity check the git repo and exit gracefully on problems.
- Pause for confirmation after model sanity check to allow user to review warnings.
- Bug fix for shell commands on Windows.
- Do not fuzzy match filenames when LLM is creating a new file, by @ozapinq
- Numerous corner case bug fixes submitted via new crash report -> GitHub Issue feature.
- Crash reports now include python version, OS, etc.
- Offer to submit a GitHub issue pre-filled with uncaught exception info.
- Bugfix for infinite output.
- New
/settings
command to show active settings. - Only show cache warming status update if
--verbose
.
- Bugfix for shell commands on Windows.
- Refuse to make git repo in $HOME, warn user.
- Don't ask again in current session about a file the user has said not to add to the chat.
- Added
--update
as an alias for--upgrade
.
- Bugfix to completions for
/model
command. - Bugfix: revert home dir special case.
- Dependency
watchdog<5
for docker image.
- When users launch aider in their home dir, help them find/create a repo in a subdir.
- Added missing
pexpect
dependency.
- Added model settings for
gemini/gemini-1.5-pro-exp-0827
andgemini/gemini-1.5-flash-exp-0827
. - Shell and
/run
commands can now be interactive in environments where a pty is available. - Optionally share output of suggested shell commands back to the LLM.
- New
--[no-]suggest-shell-commands
switch to configure shell commands. - Performance improvements for autocomplete in large/mono repos.
- New
--upgrade
switch to install latest version of aider from pypi. - Bugfix to
--show-prompt
. - Disabled automatic reply to the LLM on
/undo
for all models. - Removed pager from
/web
output. - Aider wrote 64% of the code in this release.
- Keep your prompt cache from expiring with
--cache-keepalive-pings
.- Pings the API every 5min to keep the cache warm.
- You can now bulk accept/reject a series of add url and run shell confirmations.
- Improved matching of filenames from S/R blocks with files in chat.
- Stronger prompting for Sonnet to make edits in code chat mode.
- Stronger prompting for the LLM to specify full file paths.
- Improved shell command prompting.
- Weak model now uses
extra_headers
, to support Anthropic beta features. - New
--install-main-branch
to update to the latest dev version of aider. - Improved error messages on attempt to add not-git subdir to chat.
- Show model metadata info on
--verbose
. - Improved warnings when LLMs env variables aren't set.
- Bugfix to windows filenames which contain
\_
. - Aider wrote 59% of the code in this release.
- Bugfix for NameError when applying edits.
- Aider now offers to run shell commands:
- Launch a browser to view updated html/css/js.
- Install new dependencies.
- Run DB migrations.
- Run the program to exercise changes.
- Run new test cases.
/read
and/drop
now expand~
to the home dir.- Show the active chat mode at aider prompt.
- New
/reset
command to/drop
files and/clear
chat history. - New
--map-multiplier-no-files
to control repo map size multiplier when no files are in the chat.- Reduced default multiplier to 2.
- Bugfixes and improvements to auto commit sequencing.
- Improved formatting of token reports and confirmation dialogs.
- Default OpenAI model is now
gpt-4o-2024-08-06
. - Bumped dependencies to pickup litellm bugfixes.
- Aider wrote 68% of the code in this release.
- Prompt caching for Anthropic models with
--cache-prompts
.- Caches the system prompt, repo map and
/read-only
files.
- Caches the system prompt, repo map and
- Repo map recomputes less often in large/mono repos or when caching enabled.
- Use
--map-refresh <always|files|manual|auto>
to configure.
- Use
- Improved cost estimate logic for caching.
- Improved editing performance on Jupyter Notebook
.ipynb
files. - Show which config yaml file is loaded with
--verbose
. - Bumped dependency versions.
- Bugfix: properly load
.aider.models.metadata.json
data. - Bugfix: Using
--msg /ask ...
caused an exception. - Bugfix: litellm tokenizer bug for images.
- Aider wrote 56% of the code in this release.
- Bugfix for provider API exceptions.
- Infinite output for DeepSeek Coder, Mistral models in addition to Anthropic's models.
- New
--deepseek
switch to use DeepSeek Coder. - DeepSeek Coder uses 8k token output.
- New
--chat-mode <mode>
switch to launch in ask/help/code modes. - New
/code <message>
command request a code edit while inask
mode. - Web scraper is more robust if page never idles.
- Improved token and cost reporting for infinite output.
- Improvements and bug fixes for
/read
only files. - Switched from
setup.py
topyproject.toml
, by @branchvincent. - Bug fix to persist files added during
/ask
. - Bug fix for chat history size in
/tokens
. - Aider wrote 66% of the code in this release.
- Bugfix to
/help
.
- Add read-only files to the chat context with
/read
and--read
, including from outside the git repo. /diff
now shows diffs of all changes resulting from your request, including lint and test fixes.- New
/clipboard
command to paste images or text from the clipboard, replaces/add-clipboard-image
. - Now shows the markdown scraped when you add a url with
/web
. - When scripting aider messages can now contain in-chat
/
commands. - Aider in docker image now suggests the correct command to update to latest version.
- Improved retries on API errors (was easy to test during Sonnet outage).
- Added
--mini
forgpt-4o-mini
. - Bugfix to keep session cost accurate when using
/ask
and/help
. - Performance improvements for repo map calculation.
/tokens
now shows the active model.- Enhanced commit message attribution options:
- New
--attribute-commit-message-author
to prefix commit messages with 'aider: ' if aider authored the changes, replaces--attribute-commit-message
. - New
--attribute-commit-message-committer
to prefix all commit messages with 'aider: '.
- New
- Aider wrote 61% of the code in this release.
- Added
openai/gpt-4o-2024-08-06
. - Worked around litellm bug that removes OpenRouter app headers when using
extra_headers
. - Improved progress indication during repo map processing.
- Corrected instructions for upgrading the docker container to latest aider version.
- Removed obsolete 16k token limit on commit diffs, use per-model limits.
- Performance improvements for large/mono repos.
- Added
--subtree-only
to limit aider to current directory subtree.- Should help with large/mono repo performance.
- New
/add-clipboard-image
to add images to the chat from your clipboard. - Use
--map-tokens 1024
to use repo map with any model. - Support for Sonnet's 8k output window.
- Workaround litellm bug for retrying API server errors.
- Upgraded dependencies, to pick up litellm bug fixes.
- Aider wrote 44% of the code in this release.
- Improvements to conventional commits prompting.
- Commit message improvements:
- Added Conventional Commits guidelines to commit message prompt.
- Added
--commit-prompt
to customize the commit message prompt. - Added strong model as a fallback for commit messages (and chat summaries).
- Linting improvements:
- Ask before fixing lint errors.
- Improved performance of
--lint
on all dirty files in repo. - Improved lint flow, now doing code edit auto-commit before linting.
- Bugfix to properly handle subprocess encodings (also for
/run
).
- Improved docker support:
- Resolved permission issues when using
docker run --user xxx
. - New
paulgauthier/aider-full
docker image, which includes all extras.
- Resolved permission issues when using
- Switching to code and ask mode no longer summarizes the chat history.
- Added graph of aider's contribution to each release.
- Generic auto-completions are provided for
/commands
without a completion override. - Fixed broken OCaml tags file.
- Bugfix in
/run
add to chat approval logic. - Aider wrote 58% of the code in this release.
- Downgraded stray numpy dependency back to 1.26.4.
- New
/ask <question>
command to ask about your code, without making any edits. - New
/chat-mode <mode>
command to switch chat modes:- ask: Ask questions about your code without making any changes.
- code: Ask for changes to your code (using the best edit format).
- help: Get help about using aider (usage, config, troubleshoot).
- Add
file: CONVENTIONS.md
to.aider.conf.yml
to always load a specific file.- Or
file: [file1, file2, file3]
to always load multiple files.
- Or
- Enhanced token usage and cost reporting. Now works when streaming too.
- Filename auto-complete for
/add
and/drop
is now case-insensitive. - Commit message improvements:
- Updated commit message prompt to use imperative tense.
- Fall back to main model if weak model is unable to generate a commit message.
- Stop aider from asking to add the same url to the chat multiple times.
- Updates and fixes to
--no-verify-ssl
:- Fixed regression that broke it in v0.42.0.
- Disables SSL certificate verification when
/web
scrapes websites.
- Improved error handling and reporting in
/web
scraping functionality - Fixed syntax error in Elm's tree-sitter scm file (by @cjoach).
- Handle UnicodeEncodeError when streaming text to the terminal.
- Updated dependencies to latest versions.
- Aider wrote 45% of the code in this release.
- Use 4o-mini as the weak model wherever 3.5-turbo was used.
- GPT-4o mini scores similar to the original GPT 3.5, using whole edit format.
- Aider is better at offering to add files to the chat on Windows.
- Bugfix corner cases for
/undo
with new files or new repos. - Now shows last 4 characters of API keys in
--verbose
output. - Bugfix to precedence of multiple
.env
files. - Bugfix to gracefully handle HTTP errors when installing pandoc.
- Aider wrote 42% of the code in this release.
- Default pip install size reduced by 3-12x.
- Added 3 package extras, which aider will offer to install when needed:
aider-chat[help]
aider-chat[browser]
aider-chat[playwright]
- Improved regex for detecting URLs in user chat messages.
- Bugfix to globbing logic when absolute paths are included in
/add
. - Simplified output of
--models
. - The
--check-update
switch was renamed to--just-check-updated
. - The
--skip-check-update
switch was renamed to--[no-]check-update
. - Aider wrote 29% of the code in this release (157/547 lines).
- Added scipy back to main requirements.txt.
- Added build-essentials back to main Dockerfile.
- Moved HuggingFace embeddings deps into [hf-embed] extra.
- Added [dev] extra.
- Replace the torch requirement with the CPU only version, because the GPU versions are huge.
- Use
/help <question>
to ask for help about using aider, customizing settings, troubleshooting, using LLMs, etc. - Allow multiple use of
/undo
. - All config/env/yml/json files now load from home, git root, cwd and named command line switch.
- New
$HOME/.aider/caches
dir for app-wide expendable caches. - Default
--model-settings-file
is now.aider.model.settings.yml
. - Default
--model-metadata-file
is now.aider.model.metadata.json
. - Bugfix affecting launch with
--no-git
. - Aider wrote 9% of the 424 lines edited in this release.
- Performance release:
- 5X faster launch!
- Faster auto-complete in large git repos (users report ~100X speedup)!
- Allow Claude 3.5 Sonnet to stream back >4k tokens!
- It is the first model capable of writing such large coherent, useful code edits.
- Do large refactors or generate multiple files of new code in one go.
- Aider now uses
claude-3-5-sonnet-20240620
by default ifANTHROPIC_API_KEY
is set in the environment. - Enabled image support for 3.5 Sonnet and for GPT-4o & 3.5 Sonnet via OpenRouter (by @yamitzky).
- Added
--attribute-commit-message
to prefix aider's commit messages with "aider:". - Fixed regression in quality of one-line commit messages.
- Automatically retry on Anthropic
overloaded_error
. - Bumped dependency versions.
- Fixed
/undo
so it works regardless of--attribute
settings.
- Bump versions to pickup latest litellm to fix streaming issue with Gemini
- Improved context awareness of repomap.
- Restored proper
--help
functionality.
- Improved prompting to discourage Sonnet from wasting tokens emitting unchanging code (#705).
- Improved error info for token limit errors.
- Options to suppress adding "(aider)" to the git author and committer names.
- Use
--model-settings-file
to customize per-model settings, like use of repo-map (by @caseymcc). - Improved invocation of flake8 linter for python code.
- Use
--sonnet
for Claude 3.5 Sonnet, which is the top model on aider's LLM code editing leaderboard. - All
AIDER_xxx
environment variables can now be set in.env
(by @jpshack-at-palomar). - Use
--llm-history-file
to log raw messages sent to the LLM (by @daniel-vainsencher). - Commit messages are no longer prefixed with "aider:". Instead the git author and committer names have "(aider)" added.
- Use
--vim
for vim keybindings in the chat. - Add LLM metadata via
.aider.models.json
file (by @caseymcc). - More detailed error messages on token limit errors.
- Single line commit messages, without the recent chat messages.
- Ensure
--commit --dry-run
does nothing. - Have playwright wait for idle network to better scrape js sites.
- Documentation updates, moved into website/ subdir.
- Moved tests/ into aider/tests/.
- Repo map is now optimized based on text of chat history as well as files added to chat.
- Improved prompts when no files have been added to chat to solicit LLM file suggestions.
- Aider will notice if you paste a URL into the chat, and offer to scrape it.
- Performance improvements the repo map, especially in large repos.
- Aider will not offer to add bare filenames like
make
orrun
which may just be words. - Properly override
GIT_EDITOR
env for commits if it is already set. - Detect supported audio sample rates for
/voice
. - Other small bug fixes.
- Aider can now lint your code and fix any errors.
- Aider automatically lints and fixes after every LLM edit.
- You can manually lint-and-fix files with
/lint
in the chat or--lint
on the command line. - Aider includes built in basic linters for all supported tree-sitter languages.
- You can also configure aider to use your preferred linter with
--lint-cmd
.
- Aider has additional support for running tests and fixing problems.
- Configure your testing command with
--test-cmd
. - Run tests with
/test
or from the command line with--test
. - Aider will automatically attempt to fix any test failures.
- Configure your testing command with
- Aider now uses GPT-4o by default.
- GPT-4o tops the aider LLM code editing leaderboard at 72.9%, versus 68.4% for Opus.
- GPT-4o takes second on aider's refactoring leaderboard with 62.9%, versus Opus at 72.3%.
- Added
--restore-chat-history
to restore prior chat history on launch, so you can continue the last conversation. - Improved reflection feedback to LLMs using the diff edit format.
- Improved retries on
httpx
errors.
- Updated prompting to use more natural phrasing about files, the git repo, etc. Removed reliance on read-write/read-only terminology.
- Refactored prompting to unify some phrasing across edit formats.
- Enhanced the canned assistant responses used in prompts.
- Added explicit model settings for
openrouter/anthropic/claude-3-opus
,gpt-3.5-turbo
- Added
--show-prompts
debug switch. - Bugfix: catch and retry on all litellm exceptions.
- Added native support for Deepseek models using
DEEPSEEK_API_KEY
anddeepseek/deepseek-chat
, etc rather than as a generic OpenAI compatible API.
- Aider LLM code editing leaderboards that rank popular models according to their ability to edit code.
- Leaderboards include GPT-3.5/4 Turbo, Opus, Sonnet, Gemini 1.5 Pro, Llama 3, Deepseek Coder & Command-R+.
- Gemini 1.5 Pro now defaults to a new diff-style edit format (diff-fenced), enabling it to work better with larger code bases.
- Support for Deepseek-V2, via more a flexible config of system messages in the diff edit format.
- Improved retry handling on errors from model APIs.
- Benchmark outputs results in YAML, compatible with leaderboard.
- Aider is now also AI pair programming in your browser! Use the
--browser
switch to launch an experimental browser based version of aider. - Switch models during the chat with
/model <name>
and search the list of available models with/models <query>
.
- Adding missing
google-generativeai
dependency
- Added Gemini 1.5 Pro as a recommended free model.
- Allow repo map for "whole" edit format.
- Added
--models <MODEL-NAME>
to search the available models. - Added
--no-show-model-warnings
to silence model warnings.
- Improved model warnings for unknown or unfamiliar models
- Added better support for groq/llama3-70b-8192
- Added support for directly connecting to Anthropic, Cohere, Gemini and many other LLM providers.
- Added
--weak-model <model-name>
which allows you to specify which model to use for commit messages and chat history summarization. - New command line switches for working with popular models:
--4-turbo-vision
--opus
--sonnet
--anthropic-api-key
- Improved "whole" and "diff" backends to better support Cohere's free to use Command-R+ model.
- Allow
/add
of images from anywhere in the filesystem. - Fixed crash when operating in a repo in a detached HEAD state.
- Fix: Use the same default model in CLI and python scripting.
- Added support for new
gpt-4-turbo-2024-04-09
andgpt-4-turbo
models.- Benchmarked at 61.7% on Exercism benchmark, comparable to
gpt-4-0613
and worse than thegpt-4-preview-XXXX
models. See recent Exercism benchmark results. - Benchmarked at 34.1% on the refactoring/laziness benchmark, significantly worse than the
gpt-4-preview-XXXX
models. See recent refactor bencmark results. - Aider continues to default to
gpt-4-1106-preview
as it performs best on both benchmarks, and significantly better on the refactoring/laziness benchmark.
- Benchmarked at 61.7% on Exercism benchmark, comparable to
- Improved repomap support for typescript, by @ryanfreckleton.
- Bugfix: Only /undo the files which were part of the last commit, don't stomp other dirty files
- Bugfix: Show clear error message when OpenAI API key is not set.
- Bugfix: Catch error for obscure languages without tags.scm file.
- Fixed bug affecting parsing of git config in some environments.
- Use GPT-4 Turbo by default.
- Added
-3
and-4
switches to use GPT 3.5 or GPT-4 (non-Turbo). - Bug fix to avoid reflecting local git errors back to GPT.
- Improved logic for opening git repo on launch.
- Issue a warning if user adds too much code to the chat.
- Vocally refuse to add files to the chat that match
.aiderignore
- Prevents bug where subsequent git commit of those files will fail.
- Added
--openai-organization-id
argument. - Show the user a FAQ link if edits fail to apply.
- Made past articles part of https://aider.chat/blog/
- Fixed bug with cost computations when --no-steam in effect
- New
/web <url>
command which scrapes the url, turns it into fairly clean markdown and adds it to the chat. - Updated all OpenAI model names, pricing info
- Default GPT 3.5 model is now
gpt-3.5-turbo-0125
. - Bugfix to the
!
alias for/run
.
- Added support for
--model gpt-4-0125-preview
and OpenAI's alias--model gpt-4-turbo-preview
. The--4turbo
switch remains an alias for--model gpt-4-1106-preview
at this time. - New
/test
command that runs a command and adds the output to the chat on non-zero exit status. - Improved streaming of markdown to the terminal.
- Added
/quit
as alias for/exit
. - Added
--skip-check-update
to skip checking for the update on launch. - Added
--openrouter
as a shortcut for--openai-api-base https://openrouter.ai/api/v1
- Fixed bug preventing use of env vars
OPENAI_API_BASE, OPENAI_API_TYPE, OPENAI_API_VERSION, OPENAI_API_DEPLOYMENT_ID
.
- Improvements for unified diff editing format.
- Added ! as an alias for /run.
- Autocomplete for /add and /drop now properly quotes filenames with spaces.
- The /undo command asks GPT not to just retry reverted edit.
- Bugfix for unified diff editing format.
- Added --4turbo and --4 aliases for --4-turbo.
- Support for python 3.12.
- Improvements to unified diff editing format.
- New
--check-update
arg to check if updates are available and exit with status code.
-
Add images to the chat to automatically use GPT-4 Vision, by @joshuavial
-
Bugfixes:
- Improved unicode encoding for
/run
command output, by @ctoth - Prevent false auto-commits on Windows, by @ctoth
- Improved unicode encoding for
- Removed stray debug output.
- Significantly reduced "lazy" coding from GPT-4 Turbo due to new unified diff edit format
- Score improves from 20% to 61% on new "laziness benchmark".
- Aider now uses unified diffs by default for
gpt-4-1106-preview
.
- New
--4-turbo
command line switch as a shortcut for--model gpt-4-1106-preview
.
- Upgraded to new openai python client v1.3.7.
- Improved prompting for both GPT-4 and GPT-4 Turbo.
- Far fewer edit errors from GPT-4 Turbo (
gpt-4-1106-preview
). - Significantly better benchmark results from the June GPT-4 (
gpt-4-0613
). Performance leaps from 47%/64% up to 51%/71%.
- Far fewer edit errors from GPT-4 Turbo (
- Fixed bug where in-chat files were marked as both read-only and ready-write, sometimes confusing GPT.
- Fixed bug to properly handle repos with submodules.
- Support for OpenAI's new 11/06 models:
- gpt-4-1106-preview with 128k context window
- gpt-3.5-turbo-1106 with 16k context window
- Benchmarks for OpenAI's new 11/06 models
- Streamlined API for scripting aider, added docs
- Ask for more concise SEARCH/REPLACE blocks. Benchmarked at 63.9%, no regression.
- Improved repo-map support for elisp.
- Fixed crash bug when
/add
used on file matching.gitignore
- Fixed misc bugs to catch and handle unicode decoding errors.
- Fixed repo-map support for C#.
- Fixed docker image.
- Updated tree-sitter dependencies to streamline the pip install process
- Improved repository map using tree-sitter
- Switched from "edit block" to "search/replace block", which reduced malformed edit blocks. Benchmarked at 66.2%, no regression.
- Improved handling of malformed edit blocks targeting multiple edits to the same file. Benchmarked at 65.4%, no regression.
- Bugfix to properly handle malformed
/add
wildcards.
- Added support for
.aiderignore
file, which instructs aider to ignore parts of the git repo. - New
--commit
cmd line arg, which just commits all pending changes with a sensible commit message generated by gpt-3.5. - Added universal ctags and multiple architectures to the aider docker image
/run
and/git
now accept full shell commands, like:/run (cd subdir; ls)
- Restored missing
--encoding
cmd line switch.
- Easily run aider from a docker image
- Fixed bug with chat history summarization.
- Fixed bug if
soundfile
package not available.
- /add and /drop handle absolute filenames and quoted filenames
- /add checks to be sure files are within the git repo (or root)
- If needed, warn users that in-chat file paths are all relative to the git repo
- Fixed /add bug in when aider launched in repo subdir
- Show models supported by api/key if requested model isn't available
- Support for Claude2 and other LLMs via OpenRouter by @joshuavial
- Documentation for running the aider benchmarking suite
- Aider now requires Python >= 3.9
- Only git commit dirty files that GPT tries to edit
- Send chat history as prompt/context for Whisper voice transcription
- Added
--voice-language
switch to constrain/voice
to transcribe to a specific language - Late-bind importing
sounddevice
, as it was slowing down aider startup - Improved --foo/--no-foo switch handling for command line and yml config settings
- Voice-to-code support, which allows you to code with your voice.
- Fixed bug where /diff was causing crash.
- Improved prompting for gpt-4, refactor of editblock coder.
- Benchmarked at 63.2% for gpt-4/diff, no regression.
- Added a progress bar when initially creating a repo map.
- Fixed bad commit message when adding new file to empty repo.
- Fixed corner case of pending chat history summarization when dirty committing.
- Fixed corner case of undefined
text
when using--no-pretty
. - Fixed /commit bug from repo refactor, added test coverage.
- Benchmarked at 53.4% for gpt-3.5/whole (no regression).
- Automatically summarize chat history to avoid exhausting context window.
- More detail on dollar costs when running with
--no-stream
- Stronger GPT-3.5 prompt against skipping/eliding code in replies (51.9% benchmark, no regression)
- Defend against GPT-3.5 or non-OpenAI models suggesting filenames surrounded by asterisks.
- Refactored GitRepo code out of the Coder class.
- /add and /drop always use paths relative to the git root
- Encourage GPT to use language like "add files to the chat" to ask users for permission to edit them.
- Added
/git
command to run git from inside aider chats. - Use Meta-ENTER (Esc+ENTER in some environments) to enter multiline chat messages.
- Create a
.gitignore
with.aider*
to prevent users from accidentally adding aider files to git. - Check pypi for newer versions and notify user.
- Updated keyboard interrupt logic so that 2 ^C in 2 seconds always forces aider to exit.
- Provide GPT with detailed error if it makes a bad edit block, ask for a retry.
- Force
--no-pretty
if aider detects it is running inside a VSCode terminal. - Benchmarked at 64.7% for gpt-4/diff (no regression)
- Support for the OpenAI models in Azure
- Added
--show-repo-map
- Improved output when retrying connections to the OpenAI API
- Redacted api key from
--verbose
output - Bugfix: recognize and add files in subdirectories mentioned by user or GPT
- Benchmarked at 53.8% for gpt-3.5-turbo/whole (no regression)
- Added
--dark-mode
and--light-mode
to select colors optimized for terminal background - Install docs link to NeoVim plugin by @joshuavial
- Reorganized the
--help
output - Bugfix/improvement to whole edit format, may improve coding editing for GPT-3.5
- Bugfix and tests around git filenames with unicode characters
- Bugfix so that aider throws an exception when OpenAI returns InvalidRequest
- Bugfix/improvement to /add and /drop to recurse selected directories
- Bugfix for live diff output when using "whole" edit format
- Disabled general availability of gpt-4 (it's rolling out, not 100% available yet)
- Ask to create a git repo if none found, to better track GPT's code changes
- Glob wildcards are now supported in
/add
and/drop
commands - Pass
--encoding
into ctags, require it to returnutf-8
- More robust handling of filepaths, to avoid 8.3 windows filenames
- Added FAQ
- Marked GPT-4 as generally available
- Bugfix for live diffs of whole coder with missing filenames
- Bugfix for chats with multiple files
- Bugfix in editblock coder prompt
- Benchmark comparing code editing in GPT-3.5 and GPT-4
- Improved Windows support:
- Fixed bugs related to path separators in Windows
- Added a CI step to run all tests on Windows
- Improved handling of Unicode encoding/decoding
- Explicitly read/write text files with utf-8 encoding by default (mainly benefits Windows)
- Added
--encoding
switch to specify another encoding - Gracefully handle decoding errors
- Added
--code-theme
switch to control the pygments styling of code blocks (by @kwmiebach) - Better status messages explaining the reason when ctags is disabled
- Fixed a bug to allow aider to edit files that contain triple backtick fences.
- Fixed a bug in the display of streaming diffs in GPT-3.5 chats
- Graceful handling of context window exhaustion, including helpful tips.
- Added
--message
to give GPT that one instruction and then exit after it replies and any edits are performed. - Added
--no-stream
to disable streaming GPT responses.- Non-streaming responses include token usage info.
- Enables display of cost info based on OpenAI advertised pricing.
- Coding competence benchmarking tool against suite of programming tasks based on Execism's python repo.
- Major refactor in preparation for supporting new function calls api.
- Initial implementation of a function based code editing backend for 3.5.
- Initial experiments show that using functions makes 3.5 less competent at coding.
- Limit automatic retries when GPT returns a malformed edit response.
- Support for
gpt-3.5-turbo-16k
, and all OpenAI chat models - Improved ability to correct when gpt-4 omits leading whitespace in code edits
- Added
--openai-api-base
to support API proxies, etc.
- Added support for
gpt-3.5-turbo
andgpt-4-32k
. - Added
--map-tokens
to set a token budget for the repo map, along with a PageRank based algorithm for prioritizing which files and identifiers to include in the map. - Added in-chat command
/tokens
to report on context window token usage. - Added in-chat command
/clear
to clear the conversation history.