aider

Install command:
brew install aider

AI pair programming in your terminal

https://aider.chat/

License: Apache-2.0

Development: Pull requests

Formula JSON API: /api/formula/aider.json

Formula code: aider.rb on GitHub

Bottle (binary package) installation support provided for:

macOS on
Apple Silicon
tahoe
sequoia
sonoma
macOS on
Intel
sonoma
Linux ARM64
x86_64

Current versions:

stable 0.86.2
head ⚡️ HEAD

Depends on:

certifi 2026.7.22 Mozilla CA bundle for Python
freetype 2.14.3 Software library to render fonts
gcc 16.2.0 GNU compiler collection
jpeg-turbo 3.2.0 JPEG image codec that aids compression and decompression
libyaml 0.2.5 YAML Parser
openblas 0.3.34 Optimized BLAS library
python@3.12 3.12.14 Interpreted, interactive, object-oriented programming language

Depends on when building from source:

ninja 1.13.2 Small build system for use with gyp or CMake
pkgconf 3.0.5 Package compiler and linker metadata toolkit
rust 1.98.0 Safe, concurrent, practical language

Known vulnerabilities in the current version:

GHSA-w8v5-vhqr-4h9v DiskCache has unsafe pickle deserialization
CVE-2026-10175 Aider-AI Aider Architect Mode auth.py editor_coder.run code injection
CVE-2026-10177 Aider-AI Aider AWS EC2 Metadata Endpoint api_docs.py requests.get server-side request forgery
GHSA-w2fm-2cpv-w7v5 aiohttp allows unlimited trailer headers, leading to possible uncapped memory usage
GHSA-gc5v-m9x4-r6x2 (medium) Requests has Insecure Temp File Reuse in its extract_zipped_paths() utility function
GHSA-mf9w-mj56-hr94 (medium) python-dotenv: Symlink following in set_key allows arbitrary file overwrite via cross-device rena...
GHSA-hcc4-c3v8-rx92 AIOHTTP Affected by Denial of Service (DoS) via Unbounded DNS Cache in TCPConnector
GHSA-2vrm-gr82-f7m5 AIOHTTP has CRLF injection through multipart part content type header construction
GHSA-p998-jp59-783m AIOHTTP affected by UNC SSRF/NTLMv2 Credential Theft/Local File Read in static resource handler o...
GHSA-m5qp-6w8w-w647 (high) AIOHTTP has a Multipart Header Size Bypass
GHSA-3wq7-rqq7-wx6j AIOHTTP has late size enforcement for non-file multipart fields causes memory DoS
GHSA-966j-vmvw-g2g9 (medium) AIOHTTP leaks Cookie and Proxy-Authorization headers on cross-origin redirect
GHSA-mwh4-6h8g-pg8w AIOHTTP has HTTP response splitting via \r in reason phrase
GHSA-63hf-3vf5-4wqf (critical) AIOHTTP's C parser (llhttp) accepts null bytes and control characters in response header values -...
GHSA-c427-h43c-vf67 AIOHTTP accepts duplicate Host headers
GHSA-jg22-mg44-37j8 (medium) AIOHTTP is Vulnerable to Deserialization of Untrusted Data
GHSA-53mr-6c8q-9789 LiteLLM: Privilege escalation via unrestricted proxy configuration endpoint
GHSA-jjhc-v7c2-5hh6 LiteLLM: Authentication bypass via OIDC userinfo cache key collision
GHSA-whj4-6x5x-4v2j (high) FITS GZIP decompression bomb in Pillow
GHSA-wxxx-gvqv-xp7p (high) LiteLLM has a sandbox escape in custom-code guardrail
GHSA-xqmj-j6mv-4862 LiteLLM: Server-Side Template Injection in /prompts/test endpoint
GHSA-rpm5-65cw-6hj4 (high) GitPython has Command Injection via Git options bypass
GHSA-v4p8-mg3p-g94g (high) LiteLLM: Authenticated command execution via MCP stdio test endpoints
GHSA-x2qx-6953-8485 (high) GitPython: Unsafe option check validates multi_options before shlex.split transformation
GHSA-wjx4-4jcj-g98j (medium) Pillow has an integer overflow when processing fonts
GHSA-5xmw-vc9v-4wf2 (medium) Pillow has a heap buffer overflow with nested list coordinates
GHSA-r73j-pqj5-w3x7 (medium) Pillow has a PDF Parsing Trailer Infinite Loop (DoS)
GHSA-pwv6-vv43-88gr Pillow has an OOB Write with Invalid PSD Tile Extents (Integer Overflow)
GHSA-7545-fcxq-7j24 (high) GitPython reference APIs has a path traversal vulnerability that allows arbitrary file write and ...
GHSA-v87r-6q3f-2j67 (high) GitPython: Newline injection in config_writer().set_value() enables RCE via core.hooksPath
GHSA-qccp-gfcp-xxvc (medium) urllib3: Sensitive headers forwarded across origins in proxied low-level redirects
GHSA-mf9v-mfxr-j63j (high) urllib3: Decompression-bomb safeguards bypassed in parts of the streaming API
GHSA-5239-wwwm-4pmq (low) Pygments has Regular Expression Denial of Service (ReDoS) due to Inefficient Regex for GUID Matching
GHSA-65pc-fj4g-8rjx (medium) Internationalized Domain Names in Applications (IDNA): Specially crafted inputs to idna.encode() ...
GHSA-qrc4-49gv-mv9m (high) LiteLLM allows an authenticated internal_user to create API keys with access to routes that their...
GHSA-wpfp-gwwc-vwq6 (high) LiteLLM allows a user to modify their own user_role via the /user/update endpoint
GHSA-hg6j-4rv6-33pg AIOHTTP is vulnerable to cross-origin redirect with per-request cookies
GHSA-86qp-5c8j-p5mr (medium) Starlette has missing Host header validation that poisons request.url.path, bypassing path-based ...
GHSA-x746-7m8f-x49c (medium) Starlette: Arbitrary HTTP method dispatched to `HTTPEndpoint` attributes via `getattr`
GHSA-wqp7-x3pw-xc5r (high) Starlette: SSRF and NTLM credential theft via UNC paths in StaticFiles on Windows
GHSA-4xpc-pv4p-pm3w (critical) LiteLLM: Authentication Bypass via Host Header Injection
GHSA-2wc2-fm75-p42x (high) Soup Sieve has Memory Exhaustion via Large Comma-Separated Selector Lists
GHSA-836r-79rf-4m37 (high) Soup Sieve: Regular Expression Denial of Service (ReDoS) via Selector Parser
GHSA-m6qw-4cw2-hm4m aiohttp: CRLF injection in multipart headers
GHSA-62p4-gmf7-7g93 Pillow: Out-of-bounds read via attacker-controlled row stride on Pillow's mmap path (McIdas AREA ...
GHSA-8v84-f9pq-wr9x (high) Pillow `PcfFontFile._load_bitmaps()`: `Image.frombytes()` called without `_decompression_bomb_che...
GHSA-5x94-69rx-g8h2 (high) Pillow: `FontFile.compile()`: `Image.new()` called without `_decompression_bomb_check()`
GHSA-4fvr-rgm6-gqmc aiohttp: HTTP/1 Pipelined Requests Queue Without Limit
GHSA-xcgm-r5h9-7989 aiohttp: Incomplete websocket frame payloads bypass memory limits
GHSA-4m7w-qmgq-4wj5 aiohttp: TLS Server Hostname Override Is Ignored When Reusing HTTPS Connections
GHSA-hpj7-wq8m-9hgp aiohttp: DigestAuthMiddleware Applies Credentials to Cross-Origin Redirect Challenges
GHSA-63hw-fmq6-xxg2 aiohttp: C HTTP Parser Bypasses max_line_size for Fragmented Lines
GHSA-g3cq-j2xw-wf74 aiohttp: Unread Compressed Request Bodies Bypass client_max_size During Cleanup
GHSA-2fqr-mr3j-6wp8 aiohttp: Host-Only Cookies Become Domain Cookies After CookieJar Persistence
GHSA-9x8q-7h8h-wcw9 aiohttp: Payload Response Resources Are Not Closed After Mid-Body Disconnect
GHSA-jp82-jpqv-5vv3 (low) Starlette: Unvalidated request path concatenated into authority poisons request.url.hostname
GHSA-82w8-qh3p-5jfq (high) Starlette: request.form() limits silently ignored for application/x-www-form-urlencoded enable DoS
GHSA-45hq-cxwh-f6vc (high) Pillow `BdfFontFile`: `Image.new()` called without `_decompression_bomb_check()` — bomb protectio...
GHSA-phj9-mv4w-65pm (high) Pillow `GdImageFile._open()`: image dimensions accepted without `_decompression_bomb_check()`
GHSA-4x4j-2g7c-83w6 (medium) Pillow: WindowsViewer.get_command() OS command injection via unescaped shell path
GHSA-xj96-63gp-2gmr (high) Pillow: Heap out-of-bounds write in `ImageFilter.RankFilter` via integer overflow in `ImagingExpand`
GHSA-fj7v-r99m-22gq (medium) Pillow TGA RLE encoder can serialize up to ~57 KB of adjacent heap data into generated images
GHSA-6r8x-57c9-28j4 (high) Pillow: Heap out-of-bounds write `Image.paste()` / `Image.crop()` via signed coordinate overflow
GHSA-jjj6-mw9f-p565 (high) Pillow: Decompression Bomb DoS via PdfParser.PdfStream.decode()
GHSA-pg7v-jwj7-p798 (medium) Pillow EpsImagePlugin negative %%BeginBinary byte count causes infinite loop denial of service
GHSA-vjc4-5qp5-m44j Pillow JPEG2000 tiled decode retains a growing scratch buffer and can be used for denial of service
GHSA-9hw9-ch79-4vh6 (high) Pillow: Controlled heap out-of-bounds write in Pillow `ImageCmsTransform.apply()` via output mode...
GHSA-4g5m-c9r5-49xf LiteLLM: Local file read via request-supplied OIDC file references
GHSA-5jmr-gcrj-2c9q LiteLLM: Arbitrary file write via path traversal in Skills archive extraction
GHSA-72m8-9m7m-h278 LiteLLM: Custom Code Guardrails production endpoints bypass code safety checks
GHSA-7488-6r32-c95q LiteLLM: MCP Authentication Bypass via OAuth2 Passthrough Fallback
GHSA-mq44-7p77-q5h7 AIOHTTP: WebSocket client accepts compressed frames without negotiated permessage-deflate
GHSA-rwj8-pgh3-r573 (high) GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL
GHSA-956x-8gvw-wg5v (high) GitPython: command injection via unguarded Git options in `Repo.archive()`, `git.ls_remote()`, an...
GHSA-2f96-g7mh-g2hx (high) GitPython: Command Injection via git long-option prefix abbreviation bypass of CVE-2026-42215 blo...
GHSA-mv93-w799-cj2w (high) GitPython: Newline injection in config_writer() section parameter bypasses CVE-2026-42215 patch, ...
GHSA-3rp5-jjmw-4wv2 (high) GitPython: git-config section-name injection enables arbitrary config directives (core.sshCommand...
GHSA-mfx4-hv73-q22v AIOHTTP: HTTP request smuggling via WebSocket upgrade
GHSA-cq5v-8q36-5273 AIOHTTP: Out-of-bounds heap read in C HTTP response parser error path (malformed chunked response)
PYSEC-2026-2132 (high)
GHSA-539m-9xh6-q6rr (medium) GitPython: Incomplete unsafe_git_archive_options denylist omits --add-file / --add-virtual-file, ...
GHSA-3f7w-8rr8-f37f (high) GitPython: Unguarded git option forwarding in IndexFile.checkout() and TagReference.create() enab...
GHSA-p538-c434-8v24 (medium) GitPython: Arbitrary file truncation via git rev-list --output argument injection in unguarded Co...
GHSA-94p4-4cq8-9g67 (high) GitPython: Environment-variable exfiltration via Repo.create_remote() / Remote.add() URL (incompl...
GHSA-6p8h-3wgx-97gf (high) GitPython: Incomplete unsafe_git_clone_options denylist omits --template enabling arbitrary comma...
GHSA-fjr4-x663-mwxc (high) GitPython: Arbitrary file overwrite via git diff --output argument injection in Diffable.diff (ke...
GHSA-r9mr-m37c-5fr3 (high) GitPython: Unsafe git option guard bypass via single-character kwarg value token smuggling enable...
GHSA-hh9p-6wh2-4mfc (medium) GitPython: Arbitrary file read via --pathspec-from-file in IndexFile.remove() and Head.checkout()
GHSA-9rj7-rf2p-w77r (high) GitPython: Unguarded git option forwarding in Repo.init enables arbitrary command execution via -...
GHSA-4gmw-gg2m-w46p (high) GitPython: Unguarded git read-tree option forwarding in IndexFile.from_tree/reset/merge_tree enab...
GHSA-wvpp-8hx9-p66j (high) GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token ...
GHSA-jm78-9fvv-mhgr (high) GitPython: git-config OPTION-name injection via =/#/whitespace bypasses name validator, enabling ...
GHSA-hmq2-w58f-27jc (high) GitPython: Arbitrary Git Repository Creation Outside the Working Tree via Unvalidated .gitmodules...
GHSA-3f7w-8rr8-f37f (high) GitPython: Unguarded git option forwarding in IndexFile.checkout() and TagReference.create() enab...
GHSA-4gmw-gg2m-w46p (high) GitPython: Unguarded git read-tree option forwarding in IndexFile.from_tree/reset/merge_tree enab...
GHSA-539m-9xh6-q6rr (medium) GitPython: Incomplete unsafe_git_archive_options denylist omits --add-file / --add-virtual-file, ...
GHSA-69x8-hrgq-fjj8 LiteLLM: Password hash exposure and pass-the-hash authentication bypass
GHSA-6p8h-3wgx-97gf (high) GitPython: Incomplete unsafe_git_clone_options denylist omits --template enabling arbitrary comma...
GHSA-94p4-4cq8-9g67 (high) GitPython: Environment-variable exfiltration via Repo.create_remote() / Remote.add() URL (incompl...
GHSA-9rj7-rf2p-w77r (high) GitPython: Unguarded git option forwarding in Repo.init enables arbitrary command execution via -...
GHSA-fjr4-x663-mwxc (high) GitPython: Arbitrary file overwrite via git diff --output argument injection in Diffable.diff (ke...
GHSA-hh9p-6wh2-4mfc (medium) GitPython: Arbitrary file read via --pathspec-from-file in IndexFile.remove() and Head.checkout()
GHSA-hmq2-w58f-27jc (high) GitPython: Arbitrary Git Repository Creation Outside the Working Tree via Unvalidated .gitmodules...
GHSA-jm78-9fvv-mhgr (high) GitPython: git-config OPTION-name injection via =/#/whitespace bypasses name validator, enabling ...
GHSA-p538-c434-8v24 (medium) GitPython: Arbitrary file truncation via git rev-list --output argument injection in unguarded Co...
GHSA-r9mr-m37c-5fr3 (high) GitPython: Unsafe git option guard bypass via single-character kwarg value token smuggling enable...
GHSA-wvpp-8hx9-p66j (high) GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token ...

Data from Homebrew/advisory-database. Run brew vulns aider for a live check.

Analytics:

30 days90 days365 days
Installs6962,51811,629
Installs (--HEAD)1322
Installs on Request6962,51811,628
Installs on Request (--HEAD)1322
Build Errors13