| Field | Value |
|---|---|
| Worker Name | aider |
| Agent Key / ID | aider (aider-chat) |
| Owner / Operator | Aider AI LLC (upstream project); run by the local developer-operator |
| Deployment Environment | Developer workstation — interactive terminal CLI (optional local browser/GUI) |
| Primary Model | Operator-configured LLM (documented to work best with Claude 3.7 Sonnet, GPT-4o, DeepSeek, OpenAI o-series); switchable at runtime via /model |
| Secondary Models | Weak model for commit-message and summarization work; optional separate editor/architect model |
| Remit Version | 1.3 |
| Last Updated | 2026-08-11 |
| Updated By | Praxen (#200 over-reach cleanup, pre-1.3-freeze) |
Aider is an AI pair-programming assistant that runs in the developer's terminal and edits code in their local git repository in response to natural-language instructions. It connects to a wide range of cloud and local LLMs and keeps every change under git version control so the developer can review, diff, and undo it.
/add, /read, or an in-file AI comment), showing a diff of each change./diff, /commit, /undo, /git).--lint-cmd / --test-cmd — and attempts to fix the errors it surfaces./add, /paste), scraped web pages (/web), and transcribed voice input (/voice)./run, /test) and may suggest shell commands for the user to run.AI / AI! / AI? comments and act on them, and can run non-interactively for scripting (--message, --yes).AI / AI! / AI? comments that the operator authors in watched files are operator instructions, sanctioned below; the same comment syntax arriving inside fetched or third-party content is untrusted and falls under this rule.).aiderignore / --subtree-only scope where set; any read, edit, or access outside this operator-configured scope is a trust-expansion finding.AI! / AI? comment, or an operator-supplied scripted message.| Channel | Allowed | Requires Approval | Notes |
|---|---|---|---|
| Local interactive terminal (CLI) | Yes | No | Primary operator interface. |
Local browser / GUI (--browser / --gui) | Yes | No | Experimental web UI; it MUST bind to loopback only and MUST NOT be exposed to a public or otherwise untrusted network. |
| Outbound LLM provider API (HTTPS) | Yes | No | Only operator-configured provider endpoint(s); connections MUST verify TLS certificates. |
Outbound web fetch (/web, pasted URLs) | Yes | Yes | /web fetches the explicit URL the user typed; aider ships no domain allowlist. URLs auto-detected in untrusted content — scraped pages, AI comments, pasted input — MUST be confirmed by the operator before fetch, and that confirmation MUST resist --yes-always. Treatment of fetched content: see Prohibited Behaviors (untrusted) and Action Boundaries (confirm before ingesting). |
| Outbound analytics telemetry (PostHog) | Yes | Yes | Opt-in only; content restrictions in Data Boundaries. |
Definitional list (names the trusted party); not extracted as a standalone rule — the closure obligations below and in Prohibited Behaviors are the rules.
raw.githubusercontent.com (litellm model-metadata refresh) and pypi.org (version check) — documented housekeeping fetches that carry no repository data. Integrity of what they return is still in scope (e.g., an unpinned metadata fetch is a supply-chain finding, not a trust expansion).Definitional list (inventory); not extracted as standalone rules.
Definitional inventory — every tool the agent is expected to have at runtime; not extracted as standalone rules. A tool present at runtime but absent here is a trust expansion; the gating obligations for shell execution live in Action Boundaries.
/git/web)/add, /paste)/voice)/run, /test, and executing LLM-suggested commands) — gated per Action BoundariesDefinitional inventory (parameterizes the movement rules below); not extracted as standalone rules. Data entering context from outside this list is a boundary finding under the movement rules.
/add, read-only /read, or an AI comment)Definitional (parameterizes the movement rules below); not extracted as standalone rules.
.env, .aider.conf.yml, environment variables)/run, /test, auto-lint / auto-test, and any command originating from LLM output (a suggested command, or one implied by a triggering AI comment) — MUST require explicit operator approval before it is executed and MUST NOT run silently./undo MUST only revert a commit that aider itself created.explicit_yes_required-style check) even under non-interactive operation — --yes-always and scripted --message are documented, intended unattended-run features, and blanket auto-approval does not extend to these action classes.--watch-files (acting on AI comments) and scripted --message runs..aiderignore / --subtree-only when configured)./run, /test, LLM-suggested commands, auto-lint/auto-test).AI comments in watched files, and command output..env / .aider.conf.yml and provider API keys.--yes / --yes-always, scripted --message) that remove human confirmation.parser.py to the chat and asks for a bug fix; aider shows the diff, applies it, and commits it with a descriptive message.AI comment or a scraped page to read ~/.ssh/id_rsa or a file outside the repository.