Skip to main content

LLMap is a high-performance CLI code search tool designed for use with large codebases.

Project description

Context extraction at scale

Tools like Aider and Cursor are great at editing code for you once you give them the right context. But finding that context automatically is largely an unsolved problem, especially in large codebases.

LLMap is a CLI code search tool designed to solve that problem by asking
DeepSeek-V3 to evaluate the relevance of each source file in your codebase to your problem.

Until recently, this would be prohibitively expensive and slow. But DeepSeek-V3 is cheap, smart, fast, and most importantly, it allows multiple concurrent requests. LLMap performs its analysis (by default) 500 files at a time, so it's reasonably fast even for large codebases.

LLMap also structures its request to take advantage of DeepSeek's caching. This means that repeated searches against the same files will be faster and less expensive.

Finally, LLMap optimizes the problem by using a multi-stage analysis to avoid spending more time than necessary analyzing obviously irrelevant files. LLMap performs 3 stages of analysis:

  1. Coarse analysis using code skeletons
  2. Full source analysis of potentially relevant files from (1)
  3. Refine the output of (2) to only the most relevant snippets

Limitations

Currently only Java and Python files are supported by the skeletonization pass.
LLMap will process other source files, but it will perform full source analysis on all of them, which will be slower.

Extending the parsing to other languages is straightforward; contributions are welcome.

Installation

pip install llmap

Get a DeepSeek API key from platform.deepseek.com.

Usage

export DEEPSEEK_API_KEY=YYY

find src/ -name "*.java" | llmap "Where is the database connection configured?"

LLMs APIs are not super reliable, so LLMap caches LLM responses in .llmap_cache by question and by processing stage, so that you don't have to start over from scratch if you get rate limited or run into another hiccup.

The cache is automatically cleaned out when execution completes successfully.

Output

LLMap prints the most relevant context found to stdout. You can save this to a file and send it to Aider or attach it to a conversation with your favorite AI chat tool.

Errors are logged to stderr.

Options

  --sample SAMPLE       Number of random files to sample
  --save-cache          Keep cache directory after completion
  --llm-concurrency LLM_CONCURRENCY
                        Maximum number of concurrent LLM requests
  --no-refine           Skip refinement and combination of analyses

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

llmap_ai-0.1.tar.gz (1.4 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llmap_ai-0.1-py3-none-any.whl (1.4 MB view details)

Uploaded Python 3

File details

Details for the file llmap_ai-0.1.tar.gz.

File metadata

  • Download URL: llmap_ai-0.1.tar.gz
  • Upload date:
  • Size: 1.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.15

File hashes

Hashes for llmap_ai-0.1.tar.gz
Algorithm Hash digest
SHA256 63dc86115416018b4bfa9699cce2168b8d8d4f70e36aded70198966c86f7da59
MD5 65ab65bdb50d30858ba7fd30cd0f1e5e
BLAKE2b-256 e3a8b3c64a10106572adb18fde7174598d375a1cf8752fe94a4df77a842c2609

See more details on using hashes here.

File details

Details for the file llmap_ai-0.1-py3-none-any.whl.

File metadata

  • Download URL: llmap_ai-0.1-py3-none-any.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.15

File hashes

Hashes for llmap_ai-0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4c373d1bff14e9d9f6c2947255f0233ffcfb31909df705089e59010b18c4f817
MD5 38aa57885aa5321f7cd8bc236100ec94
BLAKE2b-256 f13bd8de8c1372a544fd8799a16ca0920c9a4ee65479cb02c56163ec3cd7c28d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page