id = "aider"
name = "Aider"
homepage = "https://aider.chat"
description = "An AI pair programming tool in your terminal."
executables = ["aider"]
[dotfiles]
paths = ["~/.aider.conf.yml"]
secret = []
[[dotfiles.secret_paths]]
file = "~/.aider.conf.yml"
format = "yaml"
match = { key_path = ["openai-api-key", "anthropic-api-key"] }
[commands]
format = 1
label = "Start Aider"
description = "Start an AI pair programming session on some files, or send a single message and exit. API keys, colors, analytics and the many model-specific flags are left out."
quality = "ai-draft"
parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = false, short_bundles = false }
[[commands.source]]
id = "docs"
kind = "manual"
url = "https://aider.chat/docs/config/options.html"
revision = "main 2026-10"
evidence = """
--model MODEL Specify the model to use for the main chat
--edit-format EDIT_FORMAT Specify what edit format the LLM should use (default depends on model)
--architect Use architect edit format for the main chat
--weak-model WEAK_MODEL Specify the model to use for commit messages and chat history summarization
--editor-model EDITOR_MODEL Specify the model to use for editor tasks
--git Enable/disable looking for a git repo (default: True)
--commit Commit all pending changes with a suitable commit message, then exit
--dry-run Perform a dry run without modifying files (default: False)
--lint Lint and fix provided files, or dirty files if none provided
--test-cmd VALUE Specify command to run tests
--auto-test Enable/disable automatic testing after changes
--test Run tests, fix problems found and then exit
--message COMMAND, --msg COMMAND, -m COMMAND Specify a single message to send the LLM, process reply then exit (disables chat mode)
--file FILE specify a file to edit (can be used multiple times)
--read FILE specify a read-only file (can be used multiple times)
--vim Use VI editing mode in the terminal (default: False)
--chat-language CHAT_LANGUAGE Specify the language to use in the chat
--yes-always Always say yes to every confirmation
--verbose, -v Enable verbose output
"""
[[commands.field]]
id = "files"
label = "Files to edit"
type = "path"
position = 0
multiple = true
path = { kind = "file", role = "input" }
sources = ["docs"]
[[commands.field]]
id = "model"
label = "Model"
type = "string"
option = ["--model"]
suggestions = [{ value = "sonnet", label = "Claude Sonnet" }, { value = "opus", label = "Claude Opus" }, { value = "haiku", label = "Claude Haiku" }]
sources = ["docs"]
[[commands.field]]
id = "message"
label = "Single message"
description = "Send this message, apply the reply and exit."
type = "string"
option = ["--message", "-m"]
sources = ["docs"]
[[commands.field]]
id = "read"
label = "Read-only files"
type = "path"
option = ["--read"]
multiple = true
path = { kind = "file", role = "input" }
sources = ["docs"]
[[commands.field]]
id = "architect"
label = "Architect mode"
type = "boolean"
option = ["--architect"]
sources = ["docs"]
[[commands.field]]
id = "editor_model"
label = "Editor model"
type = "string"
option = ["--editor-model"]
sources = ["docs"]
[[commands.field]]
id = "weak_model"
label = "Weak model"
type = "string"
option = ["--weak-model"]
sources = ["docs"]
[[commands.field]]
id = "test_cmd"
label = "Test command"
type = "string"
option = ["--test-cmd"]
effect = "exec"
sources = ["docs"]
[[commands.field]]
id = "auto_test"
label = "Auto-test after changes"
type = "boolean"
option = ["--auto-test"]
sources = ["docs"]
[[commands.field]]
id = "dry_run"
label = "Dry run"
type = "boolean"
option = ["--dry-run"]
sources = ["docs"]
[[commands.field]]
id = "yes_always"
label = "Say yes to everything"
type = "boolean"
option = ["--yes-always"]
sources = ["docs"]
[[commands.field]]
id = "chat_language"
label = "Chat language"
type = "string"
option = ["--chat-language"]
sources = ["docs"]
[[commands.field]]
id = "verbose"
label = "Verbose"
type = "boolean"
option = ["--verbose", "-v"]
sources = ["docs"]
[[commands.task]]
id = "chat"
label = "Chat about files"
fields = ["files", "model", "read"]
required = ["files"]
[[commands.task]]
id = "one_shot"
label = "Send one message"
fields = ["files", "model", "message", "dry_run"]
required = ["message"]
[[commands.group]]
id = "basic"
label = "Basic"
fields = ["files", "model", "message", "read", "architect"]
[[commands.group]]
id = "advanced"
label = "Advanced"
fields = ["editor_model", "weak_model", "test_cmd", "auto_test", "dry_run", "yes_always", "chat_language", "verbose"]