Aider Configuration Template
A comprehensive configuration template for Aider, the AI pair programming tool. This skill provides a complete `.aider.conf.yml` reference with all available configuration options for customizing Aider's behavior, model selection, git integration, and output settings.
What This Does
Provides a fully documented Aider configuration file that you can customize for your project. The configuration covers:
API keys and model selection (OpenAI, Anthropic, custom models)Git integration and commit behaviorOutput formatting and color schemesChat history and input managementAutomated linting and testingAdvanced model settings and token limitsInstructions
1. **Review the configuration options** in the template below and identify which settings you want to customize for your project
2. **Create or update `.aider.conf.yml`** in your project root (or home directory for global settings):
- Copy the sections you need from the template
- Uncomment and set values for options you want to enable
- Remove or keep commented options you don't need
3. **Set up API keys** using one of these methods:
- Add to `.aider.conf.yml`: `openai-api-key` or `anthropic-api-key`
- Or use a `.env` file in your git root (recommended for security)
- Or set environment variables
4. **Configure model preferences**:
- Set `model:` to specify which LLM to use
- Or use shortcuts like `opus: true`, `sonnet: true`, `4o: true`
- Configure `weak-model:` for commit messages and summaries
5. **Customize git behavior**:
- Enable/disable auto-commits with `auto-commits:`
- Configure commit attribution with `attribute-author:` and `attribute-committer:`
- Set up `.aiderignore` file path if needed
6. **Set up output preferences**:
- Choose `dark-mode: true` or `light-mode: true`
- Customize colors with `user-input-color:`, `assistant-output-color:`, etc.
- Set `code-theme:` (default, monokai, solarized-dark, solarized-light)
7. **Configure automation** (optional):
- Set `lint-cmd:` for automatic linting (e.g., `"python: flake8 --select=..."`)
- Set `test-cmd:` for automatic testing
- Enable `auto-lint: true` or `auto-test: true`
8. **Test your configuration**:
```bash
aider --show-prompts # Verify settings
aider --verbose # See detailed configuration loading
```
Configuration Template
```yaml
##########################################################
Sample .aider.conf.yml
This file lists *all* the valid configuration entries.
Place in your home dir, or at the root of your git repo.
##########################################################
Note: You can only put OpenAI and Anthropic API keys in the yaml
config file. Keys for all APIs can be stored in a .env file
https://aider.chat/docs/config/dotenv.html
##########
options:
show this help message and exit
#help:
#######
Main:
specify a file to edit (can be used multiple times)
#file:
Specify the OpenAI API key
#openai-api-key:
Specify the Anthropic API key
#anthropic-api-key:
Specify the model to use for the main chat
#model:
Use claude-3-opus-20240229 model for the main chat
#opus: false
Use claude-3-5-sonnet-20240620 model for the main chat
#sonnet: false
Use gpt-4-0613 model for the main chat
#4: false
Use gpt-4o model for the main chat
#4o: false
Use gpt-4-1106-preview model for the main chat
#4-turbo: false
Use gpt-3.5-turbo model for the main chat
#35turbo: false
#################
Model Settings:
List known models which match the (partial) MODEL name
#models:
Specify the api base url
#openai-api-base:
Specify the api_type
#openai-api-type:
Specify the api_version
#openai-api-version:
Specify the deployment_id
#openai-api-deployment-id:
Specify the OpenAI organization ID
#openai-organization-id:
Specify a file with aider model settings for unknown models
#model-settings-file: .aider.model.settings.yml
Specify a file with context window and costs for unknown models
#model-metadata-file: .aider.model.metadata.json
Verify the SSL cert when connecting to models (default: True)
#verify-ssl: true
Specify what edit format the LLM should use (default depends on model)
#edit-format:
Specify the model to use for commit messages and chat history summarization (default depends on --model)
#weak-model:
Only work with models that have meta-data available (default: True)
#show-model-warnings: true
Max number of tokens to use for repo map, use 0 to disable (default: 1024)
#map-tokens: true
Maximum number of tokens to use for chat history. If not specified, uses the model's max_chat_history_tokens.
#max-chat-history-tokens:
Specify the .env file to load (default: .env in git root)
#env-file: .env
################
History Files:
Specify the chat input history file (default: .aider.input.history)
#input-history-file: .aider.input.history
Specify the chat history file (default: .aider.chat.history.md)
#chat-history-file: .aider.chat.history.md
Restore the previous chat history messages (default: False)
#restore-chat-history: false
Log the conversation with the LLM to this file (for example, .aider.llm.history)
#llm-history-file:
##################
Output Settings:
Use colors suitable for a dark terminal background (default: False)
#dark-mode: false
Use colors suitable for a light terminal background (default: False)
#light-mode: false
Enable/disable pretty, colorized output (default: True)
#pretty: true
Enable/disable streaming responses (default: True)
#stream: true
Set the color for user input (default: #00cc00)
#user-input-color: #00cc00
Set the color for tool output (default: None)
#tool-output-color:
Set the color for tool error messages (default: red)
#tool-error-color: #FF2222
Set the color for assistant output (default: #0088ff)
#assistant-output-color: #0088ff
Set the markdown code theme (default: default, other options include monokai, solarized-dark, solarized-light)
#code-theme: default
Show diffs when committing changes (default: False)
#show-diffs: false
###############
Git Settings:
Enable/disable looking for a git repo (default: True)
#git: true
Enable/disable adding .aider* to .gitignore (default: True)
#gitignore: true
Specify the aider ignore file (default: .aiderignore in git root)
#aiderignore: .aiderignore
Enable/disable auto commit of LLM changes (default: True)
#auto-commits: true
Enable/disable commits when repo is found dirty (default: True)
#dirty-commits: true
Attribute aider code changes in the git author name (default: True)
#attribute-author: true
Attribute aider commits in the git committer name (default: True)
#attribute-committer: true
Prefix commit messages with 'aider: ' (default: False)
#attribute-commit-message: false
Perform a dry run without modifying files (default: False)
#dry-run: false
########################
Fixing and committing:
Commit all pending changes with a suitable commit message, then exit
#commit: false
Lint and fix provided files, or dirty files if none provided
#lint: false
Specify lint commands to run for different languages, eg: "python: flake8 --select=..." (can be used multiple times)
#lint-cmd:
Enable/disable automatic linting after changes (default: True)
#auto-lint: true
Specify command to run tests
#test-cmd:
Enable/disable automatic testing after changes (default: False)
#auto-test: false
Run tests and fix problems found
#test: false
#################
Other Settings:
Use VI editing mode in the terminal (default: False)
#vim: false
Specify the language for voice using ISO 639-1 code (default: auto)
#voice-language: en
Show the version number and exit
#version:
Check for updates and return status in the exit code
#just-check-update: false
Check for new aider versions on launch
#check-update: true
Apply the changes from the given file instead of running the chat (debug)
#apply:
Always say yes to every confirmation
#yes: false
Enable verbose output
#verbose: false
Print the repo map and exit (debug)
#show-repo-map: false
Print the system prompts and exit (debug)
#show-prompts: false
Do all startup activities then exit before accepting user input (debug)
#exit: false
Specify a single message to send the LLM, process reply then exit (disables chat mode)
#message:
Specify a file containing the message to send the LLM, process reply, then exit (disables chat mode)
#message-file:
Specify the encoding for input and output (default: utf-8)
#encoding: utf-8
Specify the config file (default: search for .aider.conf.yml in git root, cwd or home directory)
#config:
Run aider in your browser
#gui: false
```
Common Configuration Examples
**Minimal setup for Claude Sonnet:**
```yaml
anthropic-api-key: your-key-here
sonnet: true
dark-mode: true
auto-commits: true
```
**Python project with linting:**
```yaml
model: gpt-4o
lint-cmd: "python: ruff check --fix"
auto-lint: true
test-cmd: pytest
dark-mode: true
```
**Custom model with Azure OpenAI:**
```yaml
model: gpt-4
openai-api-base: https://your-resource.openai.azure.com/
openai-api-type: azure
openai-api-version: 2023-05-15
openai-api-deployment-id: your-deployment
```
Notes
Configuration files are searched in this order: git root → current directory → home directoryUse `.env` file for API keys instead of YAML for better securityThe `.aiderignore` file works like `.gitignore` to exclude files from Aider's contextHistory files (`.aider.input.history`, `.aider.chat.history.md`) are automatically added to `.gitignore`Model costs and token limits are tracked automatically when `show-model-warnings: true`