explaingit

theadamdanielsson/overllm

Analysis updated 2026-05-18

2PythonAudience · developerComplexity · 2/5Setup · easy

TLDR

overllm is a local code linter that flags places in your codebase where an AI model call could be replaced by simpler, cheaper, deterministic code.

Mindmap

mindmap
  root((overllm))
    What it does
      Finds needless AI calls
      Static code analysis
      No network or API key
      Deterministic results
    Tech stack
      Python
      tree-sitter
      AST parser
    Use cases
      Pre-commit linting
      CI cost gating
      Legacy codebase adoption
    Audience
      Software developers
      AI app teams

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Scan a codebase before committing to catch AI calls used for tasks plain code already solves, like sorting or date parsing.

USE CASE 2

Add a pre-commit hook or CI check that fails when a new needless AI call is introduced.

USE CASE 3

Adopt the tool on an old codebase by snapshotting existing findings so only new issues are flagged going forward.

What is it built with?

Pythontree-sitterAST parsing

How does it compare?

theadamdanielsson/overllm0-bingwu-0/live-interpreter0cm-labs/tokenizer-benchmark
Stars222
LanguagePythonPythonPython
Setup difficultyeasymoderatemoderate
Complexity2/52/52/5
Audiencedevelopergeneralresearcher

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Runs locally with a single pip install, no API keys or external services required.

In plain English

overllm is a code checking tool that looks through your codebase to find places where you called an AI model, like GPT or Claude, to do something that plain code could already do just as well. If you asked an AI model to sort a list, extract a date from text, or parse JSON, those are things a normal programming function handles instantly and for free, without the delay, cost, or unpredictability of calling an AI service. It works by reading your source code with a real code parser rather than by running any AI model itself. For Python it uses the language's own built-in parser, and for JavaScript and TypeScript it uses a tool called tree-sitter. Because there is no model involved, it runs quickly, needs no internet connection or API key, and always gives the same result for the same code, which makes it fast enough to run automatically before every commit. When you point overllm at a file or folder, it prints out a short list of problems it found, such as an AI call being made inside a loop when it could be batched into one request, or a call whose only job is a mechanical task like sorting or counting. It stays quiet on clean code, meaning a well-written project will often produce no output at all, and it exits with an error code when it finds something, so it can block a commit or fail a CI check if you want that. overllm never sends your code anywhere. All of the analysis happens on your own machine, with no network calls and no telemetry, and the core tool is only a couple thousand lines of Python with no required external dependencies, so it can be read and verified easily. It recognizes AI calls from providers including OpenAI, Anthropic, Google, Mistral, Cohere, Groq, and several others, across both Python and JavaScript codebases. For an existing project with many pre-existing issues, overllm can save a one-time snapshot of current findings so that future checks only flag new problems rather than every old one at once. It can also automatically fix a small number of the safest, most obvious issues on its own when you run it with a fix option. It is installed with a single pip command and configured through a small settings file in your project.

Copy-paste prompts

Prompt 1
Install overllm and run it against my project to find unnecessary AI API calls.
Prompt 2
Explain what the llm-in-loop rule detects and how I should fix a flagged AI call inside a loop.
Prompt 3
Set up a baseline snapshot with overllm so my CI only flags new AI-call issues in an existing codebase.
Prompt 4
Teach overllm to recognize my custom AI wrapper function using the llm_calls configuration option.

Frequently asked questions

What is overllm?

overllm is a local code linter that flags places in your codebase where an AI model call could be replaced by simpler, cheaper, deterministic code.

What language is overllm written in?

Mainly Python. The stack also includes Python, tree-sitter, AST parsing.

How hard is overllm to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is overllm for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.