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.7 Package compiler and linker metadata toolkit
rust 1.98.1 Safe, concurrent, practical language

Uses from macOS: libffi

Binaries: aider

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-qmf3-4767-5fg3 (medium) LiteLLM: M2M JWT Handler Has Improper Authorization
GHSA-mf52-j94g-746m (medium) LiteLLM: PROXY_ADMIN database API Key Generator Has Insufficient Session Expiration
GHSA-4jcj-7x88-m979 (high) LiteLLM: MCP Proxy Has Improper Authentication
GHSA-j37q-q7p9-vpwm (high) LiteLLM: SSO Debug Flow Has Improper Authentication
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-6wvf-77m9-58rm (critical) LiteLLM vulnerable to server-side template injection in the /prompts/test endpoint
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...
PYSEC-2026-3785 (high) GitPython: Arbitrary local file content disclosure via [include] directive in untrusted .gitmodul...
PYSEC-2026-3786 (critical) GitPython: Dormant multi-line git-config values are corrupted into live injected directives (e.g....
PYSEC-2026-3787 (high) GitPython: clone_from()/clone() omit --separate-git-dir from unsafe_git_clone_options, enabling a...
PYSEC-2026-3788 (medium) GitPython: Incomplete unsafe_git_revision_options denylist omits --contents/-S, enabling arbitrar...
GHSA-3wxw-xv34-2frg (medium) GitPython: TagReference.create positional reference bypasses kwargs-only --file guard, enabling a...
GHSA-69x8-hrgq-fjj8 LiteLLM: Password hash exposure and pass-the-hash authentication bypass

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

Analytics:

30 days90 days365 days
Installs5362,17011,455
Installs (--HEAD)1322
Installs on Request5362,17011,454
Installs on Request (--HEAD)1322
Build Errors5
Build Errors (--HEAD)2