Skip to main content

A tool to generate comprehensive context for LLMs from any codebase.

Project description

LLM Code Context Generator

PyPI version PyPI - Python Version License: MIT

Demo of LLM Code Context Generator

A powerful command-line tool that scans any project, intelligently filters files, and combines all relevant source code into a single, clean file perfectly formatted for Large Language Models (LLMs).


The Problem

AI models like GPT-4, Claude, and Gemini are powerful, but they can't see your entire project. When you ask for help, you often get generic answers because the AI lacks the full context. Manually copying and pasting code is slow, messy, and nearly impossible for large projects.

The Solution

LLM Code Context Generator fixes this. It walks through your project directory, uses your .gitignore file and a custom config to skip irrelevant files, and creates one single, organized Markdown file.

You can paste this file into your favorite AI chat to give it the deep understanding it needs to provide truly helpful, project-aware answers.

Key Features

  • 🚀 Fast and Local: Runs entirely on your machine, ensuring your code stays private and the process is quick.
  • 🧠 Smart Filtering: Automatically understands and uses the rules from your project's .gitignore file.
  • ⚙️ Standardized Configuration: Configure the tool using the standard pyproject.toml file, keeping your project root clean.
  • 🤖 AI-Friendly Format: The output is clean Markdown with language-specific code blocks, making it easy for LLMs to parse.
  • ✅ Easy to Use: Install with a single command and run it from anywhere on your system.

Installation

You can install the tool directly from PyPI:

pip install llm-code-context-generator

After installation, the llmcontext command will be available in your terminal. You may need to restart your terminal for the command to be recognized the first time.

You can verify the installation by checking the help message:

llmcontext --help

How to Use

Using the tool is simple and straightforward.

Basic Usage

  1. Open your terminal and navigate to your project's main folder:
    cd /path/to/your/project
    
  2. Run the command:
    llmcontext
    

This will scan the current directory and create a context file named [your-project-name]_context.md.

Advanced Usage

Scanning a Different Directory

You can scan any project folder without cd-ing into it first:

llmcontext /path/to/another/project

Specifying an Output File

Use the -o or --output flag to set a custom name and location for the context file:

llmcontext . -o my-api-context.md

Configuration (via pyproject.toml)

For precise control, you can add a dedicated section to your project's pyproject.toml file. The tool will automatically find and use it. This is the recommended way to handle project-specific configurations, as it keeps your project directory clean and follows modern Python standards.

Sample Configuration

Add a [tool.llmcontext] section to your pyproject.toml file like this:

# In your pyproject.toml file

[tool.llmcontext]
# A list of top-level directories to exclusively include.
# If not empty, only these directories will be scanned.
allowed_dirs = ["src", "app", "core"]

# A list of directory names to ignore everywhere.
ignored_dirs = [
    "tests",
    "docs",
    "assets",
    "migrations"
]

# A list of exact filenames to ignore.
ignored_files = [
    "config.js",
    "docker-compose.yml",
    "manage.py"
]

# A list of file extensions to ignore.
ignored_extensions = [
    ".log",
    ".tmp",
    ".md",
    ".bak"
]

Configuration Keys Explained

  • allowed_dirs: (Whitelist) An array of strings. If you add folders here (e.g., "src"), the tool will only look inside those folders at the top level. This is great for focusing on just your source code.
  • ignored_dirs: (Blacklist) An array of strings. The tool will completely skip any folder with these names (e.g., "tests").
  • ignored_files: (Blacklist) An array of strings. The tool will skip any file that has one of these exact names (e.g., "docker-compose.yml").
  • ignored_extensions: (Blacklist) An array of strings. The tool will skip any file ending with one of these extensions (e.g., ".log", ".md").

Note: The tool applies ignore rules from .gitignore first, then applies the rules from your pyproject.toml file for even more control.

Contributing

Contributions, issues, and feature requests are welcome! Feel free to check the issues page.

License

This project is licensed under the MIT License.

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

llm_code_context_generator-0.1.2.tar.gz (7.9 kB view details)

Uploaded Source

Built Distribution

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

llm_code_context_generator-0.1.2-py3-none-any.whl (8.2 kB view details)

Uploaded Python 3

File details

Details for the file llm_code_context_generator-0.1.2.tar.gz.

File metadata

File hashes

Hashes for llm_code_context_generator-0.1.2.tar.gz
Algorithm Hash digest
SHA256 4dc8e644a5ccd6026b7d123cb572efcc1ffbb55ccc81c3772d3c34aa257fc6bd
MD5 d59a69e586d1d98fb7510445b7fb32bc
BLAKE2b-256 88844838513d6605aba6cca5a9cce5ad408dbd53d16b48292ac3c9462cdfc8cd

See more details on using hashes here.

File details

Details for the file llm_code_context_generator-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for llm_code_context_generator-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2c9f3bcb24b1445f57a9326e65fda1975c3ecad9348dcf02f8bf2c4dcbc44be3
MD5 721605531451aa889d0ae3e44939e736
BLAKE2b-256 6727ad2ba7c96a3581af521bc60e88faa6416c7781039dddf0ab39c8d79c7e4e

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