diff --git a/website/docs/git.md b/website/docs/git.md new file mode 100644 index 000000000..eadb02409 --- /dev/null +++ b/website/docs/git.md @@ -0,0 +1,30 @@ +--- +nav_order: 800 +--- + +# Git integration + +Aider works best with code that is part of a git repo. +Aider is tightly integrated with git, which makes it easy to: + + - Use git to undo any aider changes that you don't like + - Go back in the git history to review the changes that aider made to your code + - Manage a series of aider's changes on a git branch + +Aider specifically uses git in these ways: + + - It asks to create a git repo if you launch it in a directory without one. + - Whenever aider edits a file, it commits those changes with a descriptive commit message. This makes it easy to undo or review aider's changes. + - Aider takes special care before editing files that already have uncommitted changes (dirty files). Aider will first commit any preexisting changes with a descriptive commit message. This keeps your edits separate from aider's edits, and makes sure you never lose your work if aider makes an inappropriate change. + +Aider also allows you to use in-chat commands to `/diff` or `/undo` the last change. +To do more complex management of your git history, you cat use raw `git` commands, +either by using `/git` within the chat, or with standard git tools outside of aider. + +While it is not recommended, you can disable aider's use of git in a few ways: + + - `--no-auto-commits` will stop aider from git committing each of its changes. + - `--no-dirty-commits` will stop aider from committing dirty files before applying its edits. + - `--no-git` will completely stop aider from using git on your files. You should ensure you are keeping sensible backups of the files you are working with. + + diff --git a/website/docs/install/pipx.md b/website/docs/install/pipx.md new file mode 100644 index 000000000..105e9b00a --- /dev/null +++ b/website/docs/install/pipx.md @@ -0,0 +1,27 @@ +--- +parent: Installation +nav_order: 100 +--- + +# Install with pipx + +If you are using aider to work on a python project, sometimes your project will require +specific versions of python packages which conflict with the versions that aider +requires. +If this happens, the `pip install` command may return errors like these: + +``` +aider-chat 0.23.0 requires somepackage==X.Y.Z, but you have somepackage U.W.V which is incompatible. +``` + +You can avoid this problem by installing aider using `pipx`, +which will install it globally on your system +within its own python environment. +This way you can use aider to work on any python project, +even if that project has conflicting dependencies. + +Install [pipx](https://pipx.pypa.io/stable/) then just do: + +``` +pipx install aider-chat +``` diff --git a/website/docs/options.md b/website/docs/options.md new file mode 100644 index 000000000..f5f8d3870 --- /dev/null +++ b/website/docs/options.md @@ -0,0 +1,179 @@ +--- +title: Configuration & options +nav_order: 800 +--- + +# Command line reference + +Aider has many options which can be set with +command line switches. + +Most command line switches can also be set in an `.aider.conf.yml` file +which can be placed in your home directory or at the root of +your git repo. +A command line switch like `--option-foo VALUE` can be +added to the yaml file as a line like `option-foo: VALUE`. + +Many switches can also be set via environment variables like `AIDER_OPTION_FOO`, +as noted in the help text below. + + +``` +usage: aider [-h] [--openai-api-key OPENAI_API_KEY] [--anthropic-api-key ANTHROPIC_API_KEY] + [--model MODEL] [--opus] [--sonnet] [--4] [--4o] [--4-turbo] [--35turbo] + [--models MODEL] [--openai-api-base OPENAI_API_BASE] + [--openai-api-type OPENAI_API_TYPE] [--openai-api-version OPENAI_API_VERSION] + [--openai-api-deployment-id OPENAI_API_DEPLOYMENT_ID] + [--openai-organization-id OPENAI_ORGANIZATION_ID] [--edit-format EDIT_FORMAT] + [--weak-model WEAK_MODEL] [--show-model-warnings | --no-show-model-warnings] + [--map-tokens MAP_TOKENS] [--max-chat-history-tokens MAX_CHAT_HISTORY_TOKENS] + [--env-file ENV_FILE] [--input-history-file INPUT_HISTORY_FILE] + [--chat-history-file CHAT_HISTORY_FILE] + [--restore-chat-history | --no-restore-chat-history] [--dark-mode] [--light-mode] + [--pretty | --no-pretty] [--stream | --no-stream] + [--user-input-color USER_INPUT_COLOR] [--tool-output-color TOOL_OUTPUT_COLOR] + [--tool-error-color TOOL_ERROR_COLOR] + [--assistant-output-color ASSISTANT_OUTPUT_COLOR] [--code-theme CODE_THEME] + [--show-diffs] [--git | --no-git] [--gitignore | --no-gitignore] + [--aiderignore AIDERIGNORE] [--auto-commits | --no-auto-commits] + [--dirty-commits | --no-dirty-commits] [--dry-run | --no-dry-run] [--commit] [--lint] + [--lint-cmd LINT_CMD] [--auto-lint | --no-auto-lint] [--test-cmd TEST_CMD] + [--auto-test | --no-auto-test] [--test] [--voice-language VOICE_LANGUAGE] [--version] + [--check-update] [--skip-check-update] [--apply FILE] [--yes] [-v] [--show-repo-map] + [--show-prompts] [--message COMMAND] [--message-file MESSAGE_FILE] + [--encoding ENCODING] [-c CONFIG_FILE] [--gui] + [FILE ...] + +aider is GPT powered coding in your terminal + +options: + -h, --help show this help message and exit + +Main: + FILE files to edit with an LLM (optional) + --openai-api-key OPENAI_API_KEY + Specify the OpenAI API key [env var: OPENAI_API_KEY] + --anthropic-api-key ANTHROPIC_API_KEY + Specify the OpenAI API key [env var: ANTHROPIC_API_KEY] + --model MODEL Specify the model to use for the main chat (default: gpt-4o) + --opus Use claude-3-opus-20240229 model for the main chat + --sonnet Use claude-3-sonnet-20240229 model for the main chat + --4, -4 Use gpt-4-0613 model for the main chat + --4o Use gpt-4o model for the main chat + --4-turbo Use gpt-4-1106-preview model for the main chat + --35turbo, --35-turbo, --3, -3 + Use gpt-3.5-turbo model for the main chat + +Model Settings: + --models MODEL List known models which match the (partial) MODEL name + --openai-api-base OPENAI_API_BASE + Specify the api base url [env var: OPENAI_API_BASE] + --openai-api-type OPENAI_API_TYPE + Specify the api_type [env var: OPENAI_API_TYPE] + --openai-api-version OPENAI_API_VERSION + Specify the api_version [env var: OPENAI_API_VERSION] + --openai-api-deployment-id OPENAI_API_DEPLOYMENT_ID + Specify the deployment_id [env var: OPENAI_API_DEPLOYMENT_ID] + --openai-organization-id OPENAI_ORGANIZATION_ID + Specify the OpenAI organization ID [env var: OPENAI_ORGANIZATION_ID] + --edit-format EDIT_FORMAT + Specify what edit format the LLM should use (default depends on model) + --weak-model WEAK_MODEL + Specify the model to use for commit messages and chat history + summarization (default depends on --model) + --show-model-warnings, --no-show-model-warnings + Only work with models that have meta-data available (default: True) + --map-tokens MAP_TOKENS + Max number of tokens to use for repo map, use 0 to disable (default: 1024) + --max-chat-history-tokens MAX_CHAT_HISTORY_TOKENS + Maximum number of tokens to use for chat history. If not specified, uses + the model's max_chat_history_tokens. + --env-file ENV_FILE Specify the .env file to load (default: .env in git root) + +History Files: + --input-history-file INPUT_HISTORY_FILE + Specify the chat input history file (default: .aider.input.history) + --chat-history-file CHAT_HISTORY_FILE + Specify the chat history file (default: .aider.chat.history.md) + --restore-chat-history, --no-restore-chat-history + Restore the previous chat history messages (default: False) + +Output Settings: + --dark-mode Use colors suitable for a dark terminal background (default: False) + --light-mode Use colors suitable for a light terminal background (default: False) + --pretty, --no-pretty + Enable/disable pretty, colorized output (default: True) + --stream, --no-stream + Enable/disable streaming responses (default: True) + --user-input-color USER_INPUT_COLOR + Set the color for user input (default: #00cc00) + --tool-output-color TOOL_OUTPUT_COLOR + Set the color for tool output (default: None) + --tool-error-color TOOL_ERROR_COLOR + Set the color for tool error messages (default: red) + --assistant-output-color ASSISTANT_OUTPUT_COLOR + Set the color for assistant output (default: #0088ff) + --code-theme CODE_THEME + Set the markdown code theme (default: default, other options include + monokai, solarized-dark, solarized-light) + --show-diffs Show diffs when committing changes (default: False) + +Git Settings: + --git, --no-git Enable/disable looking for a git repo (default: True) + --gitignore, --no-gitignore + Enable/disable adding .aider* to .gitignore (default: True) + --aiderignore AIDERIGNORE + Specify the aider ignore file (default: .aiderignore in git root) + --auto-commits, --no-auto-commits + Enable/disable auto commit of LLM changes (default: True) + --dirty-commits, --no-dirty-commits + Enable/disable commits when repo is found dirty (default: True) + --dry-run, --no-dry-run + Perform a dry run without modifying files (default: False) + +Fixing and committing: + --commit Commit all pending changes with a suitable commit message, then exit + --lint Lint and fix provided files, or dirty files if none provided + --lint-cmd LINT_CMD Specify lint commands to run for different languages, eg: "python: flake8 + --select=..." (can be used multiple times) + --auto-lint, --no-auto-lint + Enable/disable automatic linting after changes (default: True) + --test-cmd TEST_CMD Specify command to run tests + --auto-test, --no-auto-test + Enable/disable automatic testing after changes (default: False) + --test Run tests and fix problems found + +Other Settings: + --voice-language VOICE_LANGUAGE + Specify the language for voice using ISO 639-1 code (default: auto) + --version Show the version number and exit + --check-update Check for updates and return status in the exit code + --skip-check-update Skips checking for the update when the program runs + --apply FILE Apply the changes from the given file instead of running the chat (debug) + --yes Always say yes to every confirmation + -v, --verbose Enable verbose output + --show-repo-map Print the repo map and exit (debug) + --show-prompts Print the system prompts and exit (debug) + --message COMMAND, --msg COMMAND, -m COMMAND + Specify a single message to send the LLM, process reply then exit + (disables chat mode) + --message-file MESSAGE_FILE, -f MESSAGE_FILE + Specify a file containing the message to send the LLM, process reply, then + exit (disables chat mode) + --encoding ENCODING Specify the encoding for input and output (default: utf-8) + -c CONFIG_FILE, --config CONFIG_FILE + Specify the config file (default: search for .aider.conf.yml in git root, + cwd or home directory) + --gui, --browser Run aider in your browser + +Args that start with '--' can also be set in a config file (specified via -c). Config file syntax +allows: key=value, flag=true, stuff=[a,b,c] (for details, see syntax at https://goo.gl/R74nmi). In +general, command-line values override environment variables which override config file values +which override defaults. +``` +