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.3.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.3-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for llm_code_context_generator-0.1.3.tar.gz
Algorithm Hash digest
SHA256 cc6e3dda5b7ab5a352422ab6057b1dcaefbde3736ce80865c0c72a4ac0997a70
MD5 68db49c3ce7f25381af77572c17a7cc6
BLAKE2b-256 8c7672545fe7d9c942a4b14755ea76a5dc441038eb4e5b93a5af785a32906332

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for llm_code_context_generator-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 295e61805947f2ed585a3046a64dd431cec73239ee8b26d7c29bc47199cee223
MD5 f5443d97091ac91e342c49a2a5805f86
BLAKE2b-256 db639644df83f73ecec7b77d91f87ce0e829197f7ef807338ff76b3471c635d6

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