Repository Analysis

Aider-AI/aider

aider is AI pair programming in your terminal

17.4 Moderate AI signal View on GitHub

Analysis Overview

This report presents the forensic synthetic code analysis of Aider-AI/aider, a Python project with 47,361 GitHub stars. SynthScan v2.0 examined 92,495 lines of code across 372 source files, recording 1178 pattern matches distributed across 22 syntactic categories. The overall adjusted score of 17.4 places this repository in the Moderate AI signal band.

The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).

17.4
Adjusted Score
17.4
Raw Score
100%
Time Factor
2026-05-22
Last Push
47.4K
Stars
Python
Language
92.5K
Lines of Code
372
Files
1.2K
Pattern Hits
2026-07-14
Scan Date
0.09
HC Hit Rate

What These Metrics Mean

Adjusted Score
Primary synthetic code indicator. Raw score normalised per 1,000 lines of code and multiplied by the temporal discount factor. This is the definitive comparative metric — use it to rank repositories by AI authorship density.
Raw Score
The unmodified sum of all severity-weighted, context-multiplied pattern match scores before temporal discounting. Reflects the absolute signal strength independent of when the repository was last active.
Time Factor
The temporal discount multiplier (0–100%) applied to the raw score. Repositories last updated before ChatGPT's launch (Nov 2022) receive a 5% factor. Full signal is only assigned to repositories active in the post-adoption era (Jan 2024+).
Pattern Hits
Total count of individual pattern matches across all files and categories. A high hit count with a low score may indicate a very large codebase with isolated AI snippets; a low count with a high score indicates dense, concentrated AI signatures.
HC Hit Rate
High+Critical pattern hits per file, averaged across the repository. This orthogonal signal catches repositories where a few files are densely packed with high-severity AI tells — a strong indicator even when the normalised score appears moderate due to codebase size.
Lines of Code / Files
Total lines and files analysed. The scanner examines 94 file extensions. These denominators are used to normalise the score, enabling fair comparison between repositories of vastly different sizes.

Score History

This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.

Severity Breakdown

Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.

CRITICAL 4HIGH 29MEDIUM 190LOW 955

Directory Score Breakdown

This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.

Pattern Findings

The scanner identified 1178 distinct pattern matches across 22 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.

Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.

Hyper-Verbose Identifiers405 hits · 335 pts
SeverityFileLineSnippetContext
LOWbenchmark/benchmark.py43def find_latest_benchmark_dir():CODE
LOWbenchmark/problem_stats.py16def get_dirs_from_leaderboard():CODE
LOWbenchmark/problem_stats.py62def analyze_exercise_solutions(dirs=None, topn=None, copy_hard_set=False):CODE
LOWbenchmark/refactor_tools.py23def verify_full_func_at_top_level(tree, func, func_children):CODE
LOWbenchmark/refactor_tools.py43def verify_old_class_children(tree, old_class, old_class_children):CODE
LOWbenchmark/test_benchmark.py20 def test_cleanup_test_output_lines(self):CODE
LOWaider/repomap.py629 def get_ranked_tags_map_uncached(CODE
LOWaider/repomap.py832def get_supported_languages_md():CODE
LOWaider/models.py437 def apply_generic_model_settings(self, model):CODE
LOWaider/models.py712 def fast_validate_environment(self):CODE
LOWaider/models.py934 def github_copilot_token_to_open_ai_key(self, extra_headers):CODE
LOWaider/models.py1282def get_model_settings_as_yaml():CODE
LOWaider/models.py223 def get_model_from_cached_json_db(self, model):STRING
LOWaider/models.py276 def fetch_openrouter_model_info(self, model):STRING
LOWaider/onboarding.py44def try_to_select_default_model():CODE
LOWaider/onboarding.py214def start_openrouter_oauth_flow(io, analytics):CODE
LOWaider/deprecated.py1def add_deprecated_model_args(parser, group):CODE
LOWaider/deprecated.py86def handle_deprecated_model_args(args, io):CODE
LOWaider/io.py1054 def get_default_notification_command(self):CODE
LOWaider/voice.py116 def raw_record_and_transcribe(self, history, language):CODE
LOWaider/mdstream.py122 def _render_markdown_to_lines(self, text):CODE
LOWaider/utils.py148def split_chat_history_markdown(text, include_tool=False):CODE
LOWaider/run_cmd.py26def get_windows_parent_process_name():CODE
LOWaider/main.py43def check_config_files_for_yes(config_files):CODE
LOWaider/main.py217def write_streamlit_credentials():CODE
LOWaider/main.py305def generate_search_path_list(default_file, git_root, command_line_file):CODE
LOWaider/main.py1183def is_first_run_of_new_version(io, verbose=False):CODE
LOWaider/linter.py272def find_filenames_and_linenums(text, fnames):CODE
LOWaider/commands.py702 def completions_raw_read_only(self, document, complete_event):CODE
LOWaider/args_formatter.py74 def _format_action_invocation(self, action):STRING
LOWaider/args_formatter.py168 def _format_action_invocation(self, action):STRING
LOWaider/args_formatter.py224 def _format_action_invocation(self, action):STRING
LOWaider/report.py157def report_uncaught_exceptions():CODE
LOWaider/coders/single_wholefile_func_coder.py41 def add_assistant_reply_to_cur_messages(self, edited):CODE
LOWaider/coders/single_wholefile_func_coder.py49 def render_incremental_response(self, final=False):CODE
LOWaider/coders/wholefile_func_coder.py52 def add_assistant_reply_to_cur_messages(self, edited):CODE
LOWaider/coders/wholefile_func_coder.py60 def render_incremental_response(self, final=False):CODE
LOWaider/coders/search_replace.py448def git_cherry_pick_osr_onto_o(texts):STRING
LOWaider/coders/search_replace.py485def git_cherry_pick_sr_onto_so(texts):STRING
LOWaider/coders/search_replace.py565def flexible_search_and_replace(texts, strategies):STRING
LOWaider/coders/wholefile_coder.py16 def render_incremental_response(self, final):CODE
LOWaider/coders/base_coder.py659 def get_read_only_files_content(self):CODE
LOWaider/coders/base_coder.py684 def get_ident_filename_matches(self, idents):CODE
LOWaider/coders/base_coder.py763 def get_readonly_files_messages(self):CODE
LOWaider/coders/base_coder.py1702 def add_assistant_reply_to_cur_messages(self):CODE
LOWaider/coders/base_coder.py1977 def live_incremental_response(self, final):CODE
LOWaider/coders/base_coder.py1983 def render_incremental_response(self, final):CODE
LOWaider/coders/base_coder.py1994 def calculate_and_show_tokens_and_cost(self, messages, completion=None):CODE
LOWaider/coders/base_coder.py2070 def compute_costs_from_tokens(CODE
LOWaider/coders/base_coder.py2128 def get_multi_response_content_in_progress(self, final=False):CODE
LOWaider/coders/base_coder.py2143 def get_inchat_relative_files(self):CODE
LOWaider/coders/base_coder.py2169 def get_addable_relative_files(self):CODE
LOWaider/coders/editblock_func_coder.py87 def render_incremental_response(self, final=False):CODE
LOWaider/coders/chat_chunks.py28 def add_cache_control_headers(self):CODE
LOWaider/coders/udiff_coder.py201def flexi_just_search_and_replace(texts):CODE
LOWaider/coders/udiff_coder.py243def cleanup_pure_whitespace_lines(lines):CODE
LOWaider/coders/patch_coder.py412 def _parse_update_file_sections(CODE
LOWaider/coders/editblock_coder.py157def replace_most_similar_chunk(whole, part, replace):STRING
LOWaider/coders/editblock_coder.py243def replace_part_with_missing_leading_whitespace(whole_lines, part_lines, replace_lines):CODE
LOWaider/coders/editblock_coder.py276def match_but_for_leading_whitespace(whole_lines, part_lines):CODE
345 more matches not shown…
Self-Referential Comments113 hits · 316 pts
SeverityFileLineSnippetContext
MEDIUMbenchmark/problem_stats.py318 # Create a set of (exercise, language) pairs from hard_setCOMMENT
MEDIUMbenchmark/rsync.sh13# Create a temporary file for rsync exclude patternsCOMMENT
MEDIUMaider/repomap.py585 # Create a cache keyCOMMENT
MEDIUMaider/waiting.py78 self.frame_idx = Spinner.last_frame_idx # Initialize from class variableCODE
MEDIUMaider/commands.py709 # Create a new Document object with the text after the commandCOMMENT
MEDIUMaider/coders/search_replace.py711 # Create a 2D table with directories along the right and methods along the topSTRING
MEDIUMaider/coders/search_replace.py729 # Create a results matrixSTRING
MEDIUMtests/basic/test_reasoning.py42 # Create a mock hash objectCOMMENT
MEDIUMtests/basic/test_reasoning.py136 # Create a mock hash objectCOMMENT
MEDIUMtests/basic/test_reasoning.py224 # Create a mock hash objectCOMMENT
MEDIUMtests/basic/test_reasoning.py321 # Create a mock hash objectCOMMENT
MEDIUMtests/basic/test_reasoning.py432 # Create a mock hash objectCOMMENT
MEDIUMtests/basic/test_reasoning.py528 # Create a mock hash objectCOMMENT
MEDIUMtests/basic/test_repomap.py22 # Create a temporary directory with sample files for testingCOMMENT
MEDIUMtests/basic/test_repomap.py164 # Create a temporary directory with a sample Python file containing identifiersCOMMENT
MEDIUMtests/basic/test_repomap.py247 # Create a temporary directory with sample files for testingSTRING
MEDIUMtests/basic/test_aws_credentials.py20 # Create a model instanceCOMMENT
MEDIUMtests/basic/test_aws_credentials.py52 # Create a model instanceCOMMENT
MEDIUMtests/basic/test_aws_credentials.py84 # Create a model instanceCOMMENT
MEDIUMtests/basic/test_aws_credentials.py115 # Create a model instanceCOMMENT
MEDIUMtests/basic/test_aws_credentials.py147 # Create a model instanceCOMMENT
MEDIUMtests/basic/test_watch.py24 # Create a temporary gitignore file with test patternsCOMMENT
MEDIUMtests/basic/test_watch.py76 # Create a test directory structureCOMMENT
MEDIUMtests/basic/test_editor.py87 # Create a temporary Python script that logs its argumentsCOMMENT
MEDIUMtests/basic/test_find_or_blocks.py81 # Create a StringIO object to capture the outputCOMMENT
MEDIUMtests/basic/test_editblock.py326 # Create a few temporary filesSTRING
MEDIUMtests/basic/test_editblock.py334 # Initialize the Coder object with the mocked IO and mocked repoSTRING
MEDIUMtests/basic/test_editblock.py364 # Create a few temporary filesSTRING
MEDIUMtests/basic/test_editblock.py372 # Initialize the Coder object with the mocked IO and mocked repoSTRING
MEDIUMtests/basic/test_editblock.py399 # Create a few temporary filesSTRING
MEDIUMtests/basic/test_editblock.py409 # Initialize the Coder object with the mocked IO and mocked repoSTRING
MEDIUMtests/basic/test_exceptions.py93 # Create an APIConnectionError with OpenrouterException messageCOMMENT
MEDIUMtests/basic/test_model_info_manager.py14 # Create a temporary directory for cacheCOMMENT
MEDIUMtests/basic/test_model_info_manager.py44 # Create a cache fileCOMMENT
MEDIUMtests/basic/test_io.py367 # Create a message with invalid Unicode that can't be encoded in UTF-8COMMENT
MEDIUMtests/basic/test_deprecated.py120 # Create a mock IO instanceCOMMENT
MEDIUMtests/basic/test_repo.py447 # Create a temporary directoryCOMMENT
MEDIUMtests/basic/test_repo.py589 # Create a new repoCOMMENT
MEDIUMtests/basic/test_repo.py646 # Create a new repoCOMMENT
MEDIUMtests/basic/test_repo.py649 # Create a file to commitCOMMENT
MEDIUMtests/basic/test_commands.py224 # Create a directory and add files to it using pathlibCOMMENT
MEDIUMtests/basic/test_commands.py998 # Create a directory structure with filesCOMMENT
MEDIUMtests/basic/test_commands.py1135 # Define a command that prints to stderr and exits with non-zero statusCOMMENT
MEDIUMtests/basic/test_commands.py1419 # Create a subdirectory and a test file within itCOMMENT
MEDIUMtests/basic/test_commands.py1457 # Create a test file in the repoCOMMENT
MEDIUMtests/basic/test_commands.py1494 # Create a test file in a subdirectoryCOMMENT
MEDIUMtests/basic/test_commands.py1596 # Create a test file in the user's home directoryCOMMENT
MEDIUMtests/basic/test_commands.py336 # Create a new file foo.bad which will fail to decode as utf-8COMMENT
MEDIUMtests/basic/test_commands.py349 # Create a file in the temporary directoryCOMMENT
MEDIUMtests/basic/test_commands.py526 # Create a small repository with a few filesCOMMENT
MEDIUMtests/basic/test_commands.py918 # Create a test image fileCOMMENT
MEDIUMtests/basic/test_commands.py1063 # Create a test fileCOMMENT
MEDIUMtests/basic/test_commands.py1295 # Create a file that matches the gitignore patternCOMMENT
MEDIUMtests/basic/test_commands.py1387 # Create a test fileCOMMENT
MEDIUMtests/basic/test_commands.py2112 # Create a temporary file with commandsCOMMENT
MEDIUMtests/basic/test_commands.py2152 # Create the initial CoderCOMMENT
MEDIUMtests/basic/test_models.py161 # Create a model instance to test the parse_token_value methodCOMMENT
MEDIUMtests/basic/test_main.py466 # Create a dirty file in the rootCOMMENT
MEDIUMtests/basic/test_main.py476 # Create a subdirectoryCOMMENT
MEDIUMtests/basic/test_main.py163 # Create an ignored fileCOMMENT
53 more matches not shown…
Excessive Try-Catch Wrapping137 hits · 193 pts
SeverityFileLineSnippetContext
MEDIUMbenchmark/benchmark.py46 print("Error: No benchmark directories found under tmp.benchmarks.")CODE
MEDIUMbenchmark/benchmark.py67 print("Error: No benchmark directories found from the last 24 hours.")CODE
MEDIUMbenchmark/benchmark.py84 print("Error: No .md files found in recent benchmark directories.")CODE
LOWbenchmark/benchmark.py335 except Exception as e:CODE
MEDIUMbenchmark/benchmark.py336 print(f"Error loading model settings: {e}")CODE
LOWbenchmark/benchmark.py669 except Exception:CODE
MEDIUMbenchmark/benchmark.py666def run_test(original_dname, testdir, *args, **kwargs):CODE
LOWaider/repomap.py287 except Exception as err:CODE
LOWaider/repomap.py349 except Exception: # On Windows, bad ref to time.clock which is deprecated?CODE
MEDIUMaider/repomap.py169def get_rel_fname(self, fname):CODE
LOWaider/versioncheck.py90 except Exception as err:STRING
MEDIUMaider/models.py203def _update_cache(self):CODE
MEDIUMaider/models.py322 print("Error fetching openrouter info:", str(e))STRING
LOWaider/models.py654 except Exception as err:CODE
LOWaider/models.py668 except Exception as err:CODE
LOWaider/models.py1105 except Exception as e:CODE
LOWaider/models.py1128 except Exception as e:CODE
LOWaider/models.py215 except Exception as ex:STRING
LOWaider/models.py256 except Exception as ex:STRING
LOWaider/models.py321 except Exception as e:STRING
LOWaider/openrouter.py25 except Exception: # noqa: BLE001CODE
LOWaider/openrouter.py123 except Exception as ex: # noqa: BLE001CODE
MEDIUMaider/openrouter.py114def _update_cache(self) -> None:CODE
LOWaider/onboarding.py39 except Exception:CODE
LOWaider/onboarding.py208 except Exception as e:CODE
LOWaider/onboarding.py279 except Exception as e:CODE
LOWaider/onboarding.py321 except Exception:CODE
LOWaider/onboarding.py374 except Exception as e:CODE
MEDIUMaider/onboarding.py175def exchange_code_for_key(code, code_verifier, io):CODE
LOWaider/io.py66 except Exception:CODE
LOWaider/io.py140 except Exception: # On Windows, bad ref to time.clock which is deprecatedCODE
LOWaider/io.py360 except Exception as err:CODE
LOWaider/io.py449 except Exception as e:CODE
LOWaider/io.py679 except Exception as err:CODE
LOWaider/io.py1099 except Exception as e:CODE
MEDIUMaider/io.py435def read_image(self, filename):CODE
LOWaider/__init__.py8except Exception:CODE
LOWaider/__init__.py17 except Exception:CODE
MEDIUMaider/voice.py112 print(f"Error: {e}")CODE
MEDIUMaider/voice.py161 print(f"Error converting audio: {e}")CODE
LOWaider/voice.py164 except Exception as e:CODE
LOWaider/voice.py172 except Exception as err:CODE
LOWaider/mdstream.py146 except Exception:CODE
LOWaider/copypaste.py35 except Exception as e:CODE
LOWaider/waiting.py96 except Exception:CODE
LOWaider/utils.py221 except Exception:CODE
LOWaider/run_cmd.py38 except Exception:CODE
LOWaider/run_cmd.py85 except Exception as e:CODE
MEDIUMaider/run_cmd.py11def run_cmd(command, verbose=False, error_print=None, cwd=None):CODE
MEDIUMaider/args.py927 print(f"Error: Unsupported shell '{shell}'.", file=sys.stderr)CODE
MEDIUMaider/args.py934 print("Error: Please specify a shell for completion.", file=sys.stderr)CODE
LOWaider/watch.py118 except Exception:CODE
LOWaider/watch.py159 except Exception as e:CODE
LOWaider/editor.py64 except Exception:CODE
MEDIUMaider/main.py386 print(f"Error loading {fname}: {e}")CODE
MEDIUMaider/main.py88def make_new_repo(git_root, io):CODE
MEDIUMaider/main.py1226def check_and_load_imports(io, is_first_run, verbose=False):CODE
LOWaider/main.py55 except Exception:CODE
LOWaider/main.py349 except Exception as e:CODE
LOWaider/main.py385 except Exception as e:CODE
77 more matches not shown…
Over-Commented Block181 hits · 165 pts
SeverityFileLineSnippetContext
LOWrequirements.txt1# This file was autogenerated by uv via the following command:COMMENT
LOWrequirements.txt21 # viaCOMMENT
LOWrequirements.txt41backoff==2.2.1COMMENT
LOWrequirements.txt61charset-normalizer==3.4.6COMMENT
LOWrequirements.txt81 # -r requirements/requirements.inCOMMENT
LOWrequirements.txt101 # -c requirements/common-constraints.txtCOMMENT
LOWrequirements.txt121 # viaCOMMENT
LOWrequirements.txt141 # mixpanelCOMMENT
LOWrequirements.txt161 # -c requirements/common-constraints.txtCOMMENT
LOWrequirements.txt181 # viaCOMMENT
LOWrequirements.txt201 # viaCOMMENT
LOWrequirements.txt221 # viaCOMMENT
LOWrequirements.txt241 # -r requirements/requirements.inCOMMENT
LOWrequirements.txt261 # viaCOMMENT
LOWrequirements.txt281pycparser==3.0COMMENT
LOWrequirements.txt301 # viaCOMMENT
LOWrequirements.txt321 # viaCOMMENT
LOWrequirements.txt341 # mixpanelCOMMENT
LOWrequirements.txt361shtab==1.8.0COMMENT
LOWrequirements.txt381 # -r requirements/requirements.inCOMMENT
LOWrequirements.txt401 # litellmCOMMENT
LOWrequirements.txt421 # tree-sitter-language-packCOMMENT
LOWrequirements.txt441 # huggingface-hubCOMMENT
LOWrequirements.txt461 # -r requirements/requirements.inCOMMENT
LOWrequirements.txt481# This is the one networkx dependency that we need.COMMENT
LOWaider/args_formatter.py21# Sample aider .env file.COMMENT
LOWaider/coders/search_replace.py181# This is great, because once we sync up after a big gap the nearbyCOMMENT
LOWaider/resources/__init__.py1# This ensures that importlib_resources.files("aider.resources")COMMENT
LOWaider/resources/model-settings.yml1581# temperature: 0.7COMMENT
LOWaider/website/install.sh961 fiCOMMENT
LOWaider/website/install.sh981 # other env-vars than $HOME, they are more likely to be only set temporarilyCOMMENT
LOWaider/website/install.sh1001 #COMMENT
LOWaider/website/install.sh1241 # After each GitHub Action, the contents will be added to PATH.COMMENT
LOWaider/website/docs/config/aider_conf.md61# Note: You can only put OpenAI and Anthropic API keys in the YAMLCOMMENT
LOWaider/website/docs/config/aider_conf.md81#openai-api-key: xxxCOMMENT
LOWaider/website/docs/config/aider_conf.md101## Set an environment variable (to control API settings, can be used multiple times)COMMENT
LOWaider/website/docs/config/aider_conf.md121#list-models: xxxCOMMENT
LOWaider/website/docs/config/aider_conf.md141#thinking-tokens: xxxCOMMENT
LOWaider/website/docs/config/aider_conf.md161## Specify the model to use for editor tasks (default depends on --model)COMMENT
LOWaider/website/docs/config/aider_conf.md181COMMENT
LOWaider/website/docs/config/aider_conf.md201#input-history-file: .aider.input.historyCOMMENT
LOWaider/website/docs/config/aider_conf.md221## Enable/disable pretty, colorized output (default: True)COMMENT
LOWaider/website/docs/config/aider_conf.md241COMMENT
LOWaider/website/docs/config/aider_conf.md261# Git settings:COMMENT
LOWaider/website/docs/config/aider_conf.md281## Enable/disable commits when repo is found dirty (default: True)COMMENT
LOWaider/website/docs/config/aider_conf.md301COMMENT
LOWaider/website/docs/config/aider_conf.md321#lint: falseCOMMENT
LOWaider/website/docs/config/aider_conf.md341#test: falseCOMMENT
LOWaider/website/docs/config/aider_conf.md361############COMMENT
LOWaider/website/docs/config/aider_conf.md381COMMENT
LOWaider/website/docs/config/aider_conf.md401#apply-clipboard-edits: falseCOMMENT
LOWaider/website/docs/config/aider_conf.md421## Specify the input device name for voice recordingCOMMENT
LOWaider/website/docs/config/aider_conf.md441#read:COMMENT
LOWaider/website/docs/config/aider_conf.md461## Load and execute /commands from a file on launchCOMMENT
LOWaider/website/docs/config/aider_conf.md481COMMENT
LOWaider/website/docs/config/aider_conf.md501# Deprecated model settings:COMMENT
LOWaider/website/docs/config/aider_conf.md521## Use gpt-4-1106-preview model for the main chat (deprecated, use --model)COMMENT
LOWaider/website/docs/config/dotenv.md41##########################################################COMMENT
LOWaider/website/docs/config/dotenv.md61#############COMMENT
LOWaider/website/docs/config/dotenv.md81COMMENT
121 more matches not shown…
Redundant / Tautological Comments114 hits · 151 pts
SeverityFileLineSnippetContext
LOWbenchmark/refactor_tools.py83 # Check if the first argument is 'self' and if it's not usedCOMMENT
LOWaider/repomap.py234 # Check if the file is in the cache and if the modification time has not changedCOMMENT
LOWaider/repomap.py611 # Check if the result is in the cacheCOMMENT
LOWaider/models.py1211 # Check if this is a Bedrock model and ensure boto3 is installedCOMMENT
LOWaider/models.py1217 # Check if this is a Vertex AI model and ensure google-cloud-aiplatform is installedCOMMENT
LOWaider/onboarding.py55 # Check if the user is on a free tierCOMMENT
LOWaider/onboarding.py156 # Check if the port is available by trying to bind to itCOMMENT
LOWaider/onboarding.py294 # Check if server failed during startupCOMMENT
LOWaider/deprecated.py103 # Check if any deprecated args are usedCOMMENT
LOWaider/deprecated.py111 # Check if there's a shorter alias for this modelCOMMENT
LOWaider/io.py51 # Check if it's a valid hex color (3 or 6 hex digits)COMMENT
LOWaider/io.py670 # Check if we were interrupted by a file changeCOMMENT
LOWaider/io.py716 # Check if line is exactly "tag}"COMMENT
LOWaider/io.py721 # Check if line is exactly "}"COMMENT
LOWaider/mdstream.py183 # Set min_delay to render time plus a small bufferCOMMENT
LOWaider/run_cmd.py70 bufsize=0, # Set bufsize to 0 for unbuffered outputCODE
LOWaider/watch.py114 # Check if file contains AI markersCOMMENT
LOWaider/main.py785 # Check if an OpenRouter model was selected/specified but the key is missingCOMMENT
LOWaider/main.py794 # Check if the key is now present after the flow.COMMENT
LOWaider/main.py830 # Check if deprecated remove_reasoning is setCOMMENT
LOWaider/commands.py597 # Check if the file was in the repo in the previous commitCOMMENT
LOWaider/commands.py103 # Check if the current edit format is the default for the old modelCOMMENT
LOWaider/commands.py1302 # Check if a file with the same name already exists in the chatCOMMENT
LOWaider/report.py102 # Check if VERSION_CHECK_FNAME exists and delete it if soCOMMENT
LOWaider/scrape.py115 # Check if the content is HTML based on MIME type or contentSTRING
LOWaider/coders/udiff_coder.py351 # Check if standard git diff prefixes are present (or /dev/null) and strip themCOMMENT
LOWaider/coders/patch_coder.py386 # Check if file exists in the context provided (should not for Add).COMMENT
LOWaider/coders/patch_coder.py404 # Check if we consumed the whole input or stopped earlyCOMMENT
LOWaider/coders/patch_coder.py449 # Check if all scope lines match sequentially from temp_indexCOMMENT
LOWaider/coders/patch_coder.py612 # Check if target exists before overwriting/movingCOMMENT
LOWaider/coders/editblock_coder.py467 # Check if the next line or the one after that is an editblockCOMMENT
LOWaider/website/install.sh408 # Add the updater to the list of binaries to installCOMMENT
LOWaider/website/install.sh1037 # Check if the install layout should be changed from `flat` to `cargo-home`COMMENT
LOWaider/website/install.sh1312 # Check if the line is already in the rcfileCOMMENT
LOWaider/website/assets/sample.aider.conf.yml116## Check if model accepts settings like reasoning_effort/thinking_tokens (default: True)COMMENT
LOWtests/basic/test_repomap.py40 # Check if the result contains the expected tags mapCOMMENT
LOWtests/basic/test_repomap.py206 # Check if the result contains the expected tags map with identifiersSTRING
LOWtests/basic/test_repomap.py239 # Check if the result contains each specific file in the expected tags map without ctagsSTRING
LOWtests/basic/test_repomap.py267 # Check if the result contains the expected tags mapSTRING
LOWtests/basic/test_repomap.py432 # Check if the result contains all the expected files and symbolsCOMMENT
LOWtests/basic/test_repomap.py478 if os.name == "nt": # Check if running on WindowsCODE
LOWtests/basic/test_editblock.py567# Check if exactly one argument is providedCOMMENT
LOWtests/basic/test_model_info_manager.py71 # Set verify_ssl to False before any cache operationsCOMMENT
LOWtests/basic/test_commands.py212 # Check if no files have been added to the chat sessionCOMMENT
LOWtests/basic/test_commands.py234 # Check if the files have been added to the chat sessionCOMMENT
LOWtests/basic/test_commands.py561 # Check if the output includes repository map informationCOMMENT
LOWtests/basic/test_commands.py567 # Check if the output includes information about all added filesCOMMENT
LOWtests/basic/test_commands.py570 # Check if the total tokens and remaining tokens are reportedCOMMENT
LOWtests/basic/test_commands.py1008 # Check if all .txt files were added to abs_read_only_fnamesCOMMENT
LOWtests/basic/test_commands.py1029 # Check if the appropriate error message was displayedCOMMENT
LOWtests/basic/test_commands.py1405 # Check if the file was removed from abs_read_only_fnamesCOMMENT
LOWtests/basic/test_commands.py1442 # Check if the file was removed from abs_read_only_fnamesCOMMENT
LOWtests/basic/test_commands.py1467 # Check if the external file was added to abs_read_only_fnamesCOMMENT
LOWtests/basic/test_commands.py1479 # Check if the file was removed from abs_read_only_fnamesCOMMENT
LOWtests/basic/test_commands.py1587 # Check if all files were removed from abs_read_only_fnamesCOMMENT
LOWtests/basic/test_commands.py1606 # Check if the file was added to abs_read_only_fnamesCOMMENT
LOWtests/basic/test_commands.py46 # Check if both files have been created in the temporary directoryCOMMENT
LOWtests/basic/test_commands.py178 # Check if the Python files have been added to the chat sessionCOMMENT
LOWtests/basic/test_commands.py182 # Check if the text file has not been added to the chat sessionCOMMENT
LOWtests/basic/test_commands.py196 # Check if no files have been added to the chat sessionCOMMENT
54 more matches not shown…
Deep Nesting78 hits · 71 pts
SeverityFileLineSnippetContext
LOWbenchmark/benchmark.py43CODE
LOWbenchmark/benchmark.py136CODE
LOWbenchmark/benchmark.py162CODE
LOWbenchmark/problem_stats.py62CODE
LOWbenchmark/refactor_tools.py113CODE
LOWbenchmark/plots.py301CODE
LOWaider/repomap.py365CODE
LOWaider/repomap.py576CODE
LOWaider/repomap.py748CODE
LOWaider/models.py184CODE
LOWaider/models.py743CODE
LOWaider/models.py838CODE
LOWaider/models.py1039CODE
LOWaider/openrouter.py96CODE
LOWaider/deprecated.py86CODE
LOWaider/io.py186CODE
LOWaider/io.py523CODE
LOWaider/io.py807CODE
LOWaider/io.py928CODE
LOWaider/io.py1054CODE
LOWaider/io.py1088CODE
LOWaider/diffs.py105CODE
LOWaider/voice.py40CODE
LOWaider/copypaste.py18CODE
LOWaider/copypaste.py23CODE
LOWaider/utils.py112CODE
LOWaider/repo.py433CODE
LOWaider/args.py911CODE
LOWaider/watch.py284CODE
LOWaider/watch.py257CODE
LOWaider/main.py43CODE
LOWaider/main.py155CODE
LOWaider/main.py335CODE
LOWaider/help.py33CODE
LOWaider/commands.py799CODE
LOWaider/commands.py912CODE
LOWaider/commands.py1278CODE
LOWaider/commands.py1497CODE
LOWaider/commands.py1638CODE
LOWaider/gui.py301CODE
LOWaider/args_formatter.py41CODE
LOWaider/args_formatter.py105CODE
LOWaider/report.py94CODE
LOWaider/scrape.py143CODE
LOWaider/coders/wholefile_coder.py22CODE
LOWaider/coders/base_coder.py876CODE
LOWaider/coders/base_coder.py1419CODE
LOWaider/coders/base_coder.py1783CODE
LOWaider/coders/base_coder.py1900CODE
LOWaider/coders/udiff_coder.py403CODE
LOWaider/coders/patch_coder.py96CODE
LOWaider/coders/patch_coder.py290CODE
LOWaider/coders/patch_coder.py412CODE
LOWaider/coders/patch_coder.py549CODE
LOWaider/coders/editblock_coder.py439CODE
LOWaider/coders/editblock_coder.py41CODE
LOWtests/basic/test_deprecated.py26CODE
LOWtests/basic/test_deprecated.py76CODE
LOWtests/basic/test_commands.py680CODE
LOWtests/basic/test_commands.py754CODE
18 more matches not shown…
Hallucination Indicators4 hits · 50 pts
SeverityFileLineSnippetContext
CRITICALaider/commands.py607 local_head = self.coder.repo.repo.git.rev_parse("HEAD")CODE
CRITICALaider/commands.py610 remote_head = self.coder.repo.repo.git.rev_parse(f"origin/{current_branch}")CODE
CRITICALaider/commands.py628 self.coder.repo.repo.git.checkout("HEAD~1", file_path)CODE
CRITICALaider/commands.py644 self.coder.repo.repo.git.reset("--soft", "HEAD~1")CODE
Magic Placeholder Names8 hits · 45 pts
SeverityFileLineSnippetContext
HIGHaider/website/examples/census.md55# Replace 'your_api_key' with your actual API keyCOMMENT
HIGHaider/website/examples/census.md56api_key = 'your_api_key'CODE
HIGHaider/website/examples/census.md75Replace `'your_api_key'` with the API key you obtained from the Census Bureau's website. This example retrieves the totaCODE
HIGHaider/website/examples/census.md97Once you have your API key, you can use it in your Python code to access the American Community Survey data, as shown inCODE
HIGHaider/website/examples/census.md112# Replace 'your_api_key' with your actual API keyCOMMENT
HIGHaider/website/examples/census.md113api_key = 'your_api_key'CODE
HIGHaider/website/examples/census.md133Save this code in a new file named `getdata.py`. Remember to replace `'your_api_key'` with your actual API key obtained CODE
HIGHaider/website/examples/census.md149api_key = 'your_api_key'CODE
Cross-File Repetition9 hits · 45 pts
SeverityFileLineSnippetContext
HIGHaider/coders/ask_prompts.py0these files have been *added these files to the chat* so we can see all of their contents. *trust this message as the trSTRING
HIGHaider/coders/architect_prompts.py0these files have been *added these files to the chat* so we can see all of their contents. *trust this message as the trSTRING
HIGHaider/coders/context_prompts.py0these files have been *added these files to the chat* so we can see all of their contents. *trust this message as the trSTRING
HIGHaider/coders/ask_prompts.py0i am working with you on code in a git repository. here are summaries of some files present in my git repo. if you need STRING
HIGHaider/coders/architect_prompts.py0i am working with you on code in a git repository. here are summaries of some files present in my git repo. if you need STRING
HIGHaider/coders/context_prompts.py0i am working with you on code in a git repository. here are summaries of some files present in my git repo. if you need STRING
HIGHaider/coders/wholefile_func_prompts.py0act as an expert software developer. take requests for changes to the supplied code. if the request is ambiguous, ask quSTRING
HIGHaider/coders/single_wholefile_func_prompts.py0act as an expert software developer. take requests for changes to the supplied code. if the request is ambiguous, ask quSTRING
HIGHaider/coders/editblock_func_prompts.py0act as an expert software developer. take requests for changes to the supplied code. if the request is ambiguous, ask quSTRING
Modern AI Meta-Vocabulary14 hits · 41 pts
SeverityFileLineSnippetContext
MEDIUMaider/coders/base_coder.py1816 # Still calculate costs for context window errorsCOMMENT
MEDIUMaider/website/_includes/model-warnings.md2## Unknown context window size and token costsCOMMENT
MEDIUMaider/website/_posts/2024-11-21-quantization.md152## Setting Ollama's context window sizeCOMMENT
MEDIUMaider/website/_posts/2024-06-02-main-swe-bench.md36## Interactive, not agenticCOMMENT
MEDIUMaider/website/_posts/2025-01-28-deepseek-down.md191 num_ctx: 8192 # How large a context window?CODE
MEDIUMaider/website/_posts/2024-05-22-swe-bench-lite.md35## Interactive, not agenticCOMMENT
MEDIUMaider/website/_posts/2024-05-22-swe-bench-lite.md166## Repository map, not RAGCOMMENT
MEDIUMaider/website/docs/config/aider_conf.md126## Specify a file with context window and costs for unknown modelsCOMMENT
MEDIUMaider/website/docs/config/dotenv.md106## Specify a file with context window and costs for unknown modelsCOMMENT
MEDIUMaider/website/docs/troubleshooting/edit-errors.md47## Local models: context window and quantizationCOMMENT
MEDIUMaider/website/docs/troubleshooting/token-limits.md42## Input tokens & context window sizeCOMMENT
MEDIUMaider/website/docs/llms/ollama.md27# Start your ollama server, increasing the context window to 8k tokensCOMMENT
MEDIUMaider/website/docs/llms/ollama.md53## Setting the context window sizeCOMMENT
MEDIUMaider/website/assets/sample.aider.conf.yml72## Specify a file with context window and costs for unknown modelsCOMMENT
Synthetic Comment Markers8 hits · 40 pts
SeverityFileLineSnippetContext
HIGHHISTORY.md190- Commit messages generated by aider are no longer forced to be entirely lowercase, by Peter Hadlaw.CODE
HIGHHISTORY.md202- Commit messages generated by aider are now lowercase, by Anton Ödman.CODE
HIGHHISTORY.md1376- New `--commit` cmd line arg, which just commits all pending changes with a sensible commit message generated by gpt-3.CODE
HIGHaider/waiting.py126 # Subtract 2 as requested, to leave a margin or prevent cursor wrapping issuesCOMMENT
HIGHaider/repo.py157 - aider_edits=True: Changes were generated by Aider (LLM).STRING
HIGHaider/website/HISTORY.md213- Commit messages generated by aider are no longer forced to be entirely lowercase, by Peter Hadlaw.CODE
HIGHaider/website/HISTORY.md225- Commit messages generated by aider are now lowercase, by Anton Ödman.CODE
HIGHaider/website/HISTORY.md1399- New `--commit` cmd line arg, which just commits all pending changes with a sensible commit message generated by gpt-3.CODE
Unused Imports41 hits · 39 pts
SeverityFileLineSnippetContext
LOWbenchmark/refactor_tools.py9CODE
LOWbenchmark/rungrid.py6CODE
LOWaider/versioncheck.py10CODE
LOWaider/sendchat.py1CODE
LOWaider/openrouter.py9CODE
LOWaider/io.py38CODE
LOWaider/llm.py5CODE
LOWaider/diffs.py4CODE
LOWaider/voice.py12CODE
LOWaider/mdstream.py14CODE
LOWaider/repo.py23CODE
LOWaider/args.py19CODE
LOWaider/exceptions.py3CODE
LOWaider/editor.py18CODE
LOWaider/main.py1265CODE
LOWaider/main.py1266CODE
LOWaider/help.py12CODE
LOWaider/linter.py14CODE
LOWaider/commands.py27CODE
LOWaider/reasoning_tags.py5CODE
LOWaider/gui.py11CODE
LOWaider/args_formatter.py5CODE
LOWaider/scrape.py9CODE
LOWaider/scrape.py144CODE
LOWaider/coders/patch_prompts.py3CODE
LOWaider/coders/help_coder.py1CODE
LOWaider/coders/wholefile_func_coder.py3CODE
LOWaider/coders/wholefile_coder.py5CODE
LOWaider/coders/editblock_fenced_coder.py1CODE
LOWaider/coders/editblock_func_coder.py3CODE
LOWaider/coders/udiff_coder.py5CODE
LOWtests/basic/test_watch.py3CODE
LOWtests/basic/test_find_or_blocks.py11CODE
LOWtests/basic/test_editblock.py6CODE
LOWtests/basic/test_editblock.py6CODE
LOWtests/basic/test_editblock.py10CODE
LOWtests/basic/test_linter.py5CODE
LOWtests/basic/test_run_cmd.py1CODE
LOWtests/basic/test_coder.py11CODE
LOWtests/browser/test_browser.py21CODE
LOWscripts/redact-cast.py8CODE
Fake / Example Data16 hits · 23 pts
SeverityFileLineSnippetContext
LOWaider/mdstream.py19Lorem Ipsum is simply dummy text of the printing and typesetting industry.CODE
LOWaider/mdstream.py20Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,CODE
LOWaider/mdstream.py24the 1960s with the release of Letraset sheets containing Lorem Ipsum passages,CODE
LOWaider/mdstream.py26including versions of Lorem Ipsum.CODE
LOWaider/main.py1169 if hasattr(switch, "placeholder") and switch.placeholder is not None:CODE
LOWtests/basic/test_onboarding.py54 self.assertTrue(check_openrouter_tier("fake_key"))CODE
LOWtests/basic/test_onboarding.py57 headers={"Authorization": "Bearer fake_key"},CODE
LOWtests/basic/test_onboarding.py68 self.assertFalse(check_openrouter_tier("fake_key"))CODE
LOWtests/basic/test_onboarding.py74 self.assertTrue(check_openrouter_tier("fake_key"))CODE
LOWtests/basic/test_onboarding.py83 self.assertTrue(check_openrouter_tier("fake_key"))CODE
LOWtests/basic/test_models.py51 mock_environ.get.return_value = "dummy_value"CODE
LOWscripts/clean_metadata.py188 dummy_key = "zzzdummykey"CODE
LOWscripts/clean_metadata.py189 litellm_entry_copy[dummy_key] = TrueCODE
LOWscripts/clean_metadata.py190 aider_entry_copy[dummy_key] = TrueCODE
LOWscripts/clean_metadata.py198 litellm_json_filtered = [line for line in litellm_json_lines if dummy_key not in line]CODE
LOWscripts/clean_metadata.py199 aider_json_filtered = [line for line in aider_json_lines if dummy_key not in line]CODE
Cross-Language Confusion3 hits · 22 pts
SeverityFileLineSnippetContext
HIGHaider/history.py72 # Precompute token limit (fallback to 4096 if undefined)COMMENT
HIGHaider/coders/udiff_coder.py351 # Check if standard git diff prefixes are present (or /dev/null) and strip themCOMMENT
HIGHtests/basic/test_commands.py1136 test_cmd = "echo 'error output' >&2 && exit 1"CODE
Dead Code11 hits · 22 pts
SeverityFileLineSnippetContext
MEDIUMbenchmark/benchmark.py661CODE
MEDIUMbenchmark/benchmark.py662CODE
MEDIUMbenchmark/benchmark.py663CODE
MEDIUMaider/coders/wholefile_func_coder.py49CODE
MEDIUMaider/coders/wholefile_func_coder.py50CODE
MEDIUMaider/coders/editblock_func_coder.py62CODE
MEDIUMaider/coders/editblock_func_coder.py64CODE
MEDIUMaider/coders/editblock_func_coder.py84CODE
MEDIUMaider/coders/editblock_func_coder.py85CODE
MEDIUMaider/coders/editblock_coder.py185CODE
MEDIUMaider/coders/editblock_coder.py186CODE
AI Structural Patterns16 hits · 16 pts
SeverityFileLineSnippetContext
LOWbenchmark/benchmark.py162CODE
LOWbenchmark/benchmark.py1055CODE
LOWaider/repomap.py802CODE
LOWaider/repomap.py47CODE
LOWaider/repomap.py784CODE
LOWaider/io.py237CODE
LOWaider/repo.py62CODE
LOWaider/repo.py488CODE
LOWaider/help.py30CODE
LOWaider/commands.py53CODE
LOWaider/commands.py797CODE
LOWaider/coders/search_replace.py138CODE
LOWaider/coders/wholefile_coder.py144CODE
LOWaider/coders/base_coder.py299CODE
LOWaider/coders/editblock_func_coder.py93CODE
LOWaider/coders/udiff_coder.py247CODE
AI Slop Vocabulary4 hits · 10 pts
SeverityFileLineSnippetContext
LOWaider/report.py95 # If it's a KeyboardInterrupt, just call the default handlerCOMMENT
MEDIUMaider/coders/patch_coder.py445 # A more robust finder could handle nested scopes like the reference @@ @@COMMENT
LOWaider/coders/editblock_coder.py210 # no dots in this edit block, just return NoneCOMMENT
MEDIUMaider/website/install.sh1293 # the more robust line to rcfiles, but when telling the user to apply the changeCOMMENT
Verbosity Indicators4 hits · 8 pts
SeverityFileLineSnippetContext
LOWtests/basic/test_io.py75 # Step 3: Mock the commands objectCOMMENT
LOWtests/basic/test_io.py100 # Step 5: Set up test casesCOMMENT
LOWtests/basic/test_io.py108 # Step 6: Iterate through test casesCOMMENT
LOWtests/basic/test_io.py88 # Step 4: Create an instance of AutoCompleterCOMMENT
Structural Annotation Overuse4 hits · 8 pts
SeverityFileLineSnippetContext
LOWtests/basic/test_io.py75 # Step 3: Mock the commands objectCOMMENT
LOWtests/basic/test_io.py100 # Step 5: Set up test casesCOMMENT
LOWtests/basic/test_io.py108 # Step 6: Iterate through test casesCOMMENT
LOWtests/basic/test_io.py88 # Step 4: Create an instance of AutoCompleterCOMMENT
Modern Structural Boilerplate5 hits · 6 pts
SeverityFileLineSnippetContext
LOWaider/openrouter.py43 def set_verify_ssl(self, verify_ssl: bool) -> None:CODE
LOWaider/openrouter.py114 def _update_cache(self) -> None:CODE
LOWaider/__init__.py20__all__ = [__version__]CODE
LOWaider/llm.py47__all__ = [litellm]CODE
LOWaider/coders/__init__.py18__all__ = [CODE
Docstring Block Structure1 hit · 5 pts
SeverityFileLineSnippetContext
HIGHtests/help/test_help.py18 Execute a function with exponential backoff retry logic. Args: func: Function to execute STRING
Overly Generic Function Names2 hits · 3 pts
SeverityFileLineSnippetContext
LOWtests/basic/test_repomap.py168 def my_method(self, arg1, arg2):CODE
LOWtests/basic/test_repomap.py171def my_function(arg1, arg2):CODE