Skip to content
Back to skills

Aider

DSecurity

Aider is an open-source terminal AI pair programmer that edits files in your git repository with an LLM and commits each change. Use when a user asks to run Aider, let an AI refactor or fix code from the command line, script Aider with --message, auto-run lint and tests after edits, or point Aider at Claude, GPT, Gemini, DeepSeek or a local model.

  • 142 stars
  • 0 votes
  • 0 copies
  • 8 views
  • Added May 27, 2026
developmentjavascriptpythongojavabashgitapi

Works with

  • terminal
  • api

Security analysis

D46/100
  • criticalPipes output to a shell interpreter
  • criticalDownloads and executes remote scripts — classic supply chain attack
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 2 files and shows the line behind each finding

Scanned October 4, 2026

npx -y skills add TerminalSkills/skills --skill aider --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Aider?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Aider
[![Security: D — Skills Directory](https://www.skillsdirectory.com/api/skills/terminalskills-aider/badge)](https://www.skillsdirectory.com/skills/terminalskills-aider)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: aider
description: >-
  Aider is an open-source terminal AI pair programmer that edits files in your
  git repository with an LLM and commits each change. Use when a user asks to
  run Aider, let an AI refactor or fix code from the command line, script
  Aider with --message, auto-run lint and tests after edits, or point Aider at
  Claude, GPT, Gemini, DeepSeek or a local model.
license: Apache-2.0
compatibility: "Python 3.10-3.12 (aider-install can fetch 3.12), git, an LLM API key or local model"
metadata:
  author: terminal-skills
  version: "1.1.0"
  repository: https://github.com/Aider-AI/aider
  category: development
  tags:
    - ai-coding
    - terminal
    - code-generation
    - pair-programming
    - git
---

# Aider — AI Pair Programming in Your Terminal

## Overview

Aider runs in a git repository, sends the files you add (plus a map of the rest of the repo) to an LLM, applies the returned edits to your files, and makes a git commit for each change. It works with Claude, GPT, Gemini, DeepSeek and local models through LiteLLM. Latest release checked: 0.86.2 (February 2026).

## Instructions

### Install

```bash
python -m pip install aider-install
aider-install            # installs aider in its own environment (adds Python 3.12 if needed)

# or with uv directly
uv tool install --force --python python3.12 --with pip aider-chat@latest
```

Aider also publishes a `curl ... | sh` installer; prefer the package-manager routes above. Plain `pip install aider-chat` into a project environment works but can clash with your dependencies; it supports Python 3.10 to 3.12.

### Provide a model and key

```bash
export ANTHROPIC_API_KEY=...        # or OPENAI_API_KEY, GEMINI_API_KEY, DEEPSEEK_API_KEY
aider --model sonnet                # built-in aliases: sonnet, opus, haiku, 4o, deepseek, r1, flash, gemini
aider --list-models claude          # search known model names
aider --model ollama_chat/qwen2.5-coder:14b   # local model via Ollama (set OLLAMA_API_BASE)
```

Keys can also live in a `.env` file in the repo root (keep it git-ignored).

### Interactive use

```bash
cd ~/work/billing-api
aider src/invoices.py tests/test_invoices.py     # files to edit, given on the command line
aider --read CONVENTIONS.md src/invoices.py      # read-only context
```

In-chat commands: `/add`, `/drop`, `/read-only`, `/ask` (discuss, no edits), `/code`, `/architect` (planner model plus editor model), `/run <cmd>` (output into chat), `/test <cmd>`, `/lint`, `/diff`, `/undo` (revert the last Aider commit), `/tokens`, `/model`, `/clear`, `/reset`, `/exit`. Switch the sticky mode with `/chat-mode ask`. A good loop is `/ask` to agree on a plan, then `/code go ahead`.

### Scripted use

```bash
aider --message "Add a deleted_at filter to list_invoices and update its test" \
      --yes-always src/invoices.py tests/test_invoices.py

aider --message-file migration-task.md --yes-always src/db/models.py
```

`--message` (`-m`) sends one instruction, applies edits and exits. `--yes-always` answers every prompt with yes: use it only in a clean branch or throwaway checkout. `--dry-run` shows edits without writing them; `--no-auto-commits` leaves changes uncommitted; `--commit` commits pending changes with a generated message.

### Lint and test after each edit

```bash
aider --lint-cmd "python: ruff check --fix" --lint-cmd "javascript: npx eslint --fix" \
      --test-cmd "pytest -x -q" --auto-test
```

Linting of edited files is on by default (`--no-auto-lint` disables it) and uses built-in linters unless `--lint-cmd` is set. `--auto-test` is off by default. Commands must print errors and exit non-zero on failure; Aider then tries to fix them. A formatter that exits non-zero when it rewrites files confuses this: wrap it in a script that runs twice.

### Configuration

```yaml
# .aider.conf.yml  (read from home dir, repo root, then current dir; later files win)
model: sonnet
auto-test: true
test-cmd: pytest -x -q
lint-cmd:
  - "python: ruff check --fix"
read:
  - CONVENTIONS.md
map-tokens: 2048
```

Every option also exists as an `AIDER_*` environment variable (for example `AIDER_MODEL`, `AIDER_AUTO_TEST`). Only OpenAI and Anthropic keys may go in the YAML file; use `.env` for the rest.

### Python scripting

```python
from aider.coders import Coder
from aider.models import Model

coder = Coder.create(main_model=Model("gpt-4o"), fnames=["src/invoices.py"])
coder.run("add type hints to every function")
```

This API is not officially supported and can change between releases; prefer the `--message` command line.

### Edit in your IDE

`aider --watch-files` watches the repo for one-line comments ending in `AI!` (make this change) or `AI?` (answer this question) and acts on them.

## Examples

### Fix a bug and prove it with tests

User: "Pagination in the orders list repeats rows when sorted by created_at. Fix it with Aider and run the tests."

```bash
git switch -c fix/orders-pagination
aider --model sonnet --test-cmd "pytest tests/test_orders.py -q" --auto-test \
      --message "list_orders repeats rows across pages when sorting by created_at. Add id as a tiebreaker sort key and add a regression test." \
      app/orders.py tests/test_orders.py
```

Result: Aider prints the diff, runs pytest, retries if it fails, and creates a commit such as `fix: add id tiebreaker to list_orders ordering`. Review with `git show`, undo with `/undo` or `git reset`.

### Plan with one model, edit with another

User: "I want the strongest model to plan a refactor and a cheap one to type it."

```bash
aider --architect --model opus --editor-model sonnet --read CONVENTIONS.md src/payments/
```

Describe the refactor at the `architect>` prompt; the architect proposes the change, and it is applied automatically unless you pass `--no-auto-accept-architect`.

## Guidelines

- Aider commits every change and by default adds a `Co-authored-by` trailer; `--no-attribute-co-authored-by` removes it, and `--attribute-author` or `--attribute-committer` mark the git author or committer name instead. Dirty files are committed first (`--no-dirty-commits` to stop that).
- Run it on a branch; `git diff main` is your review step. Never combine `--yes-always` with credentials or deploy scripts in the repo.
- Add only the files that need edits; the repo map supplies the rest. Use `/read-only` for schemas and conventions.
- Model aliases move as new models ship; run `aider --list-models` when a name is rejected.
- Each prompt sends file contents to the model provider; do not add secret files, and use a local model for private code.
- Edit formats (`--edit-format whole|diff|udiff|diff-fenced`) default per model; override only when edits fail to apply.

Files in this skill

  • SKILL.md4.3 KB
  • _scores.json1.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.