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

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

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for llm_code_context_generator-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d3c7b1d198a5efdb41c3a793115416c206b5c2c2a0cc3c1cab42792c5ad4d25a
MD5 f188753387dd5e86a476ed260d4a6b16
BLAKE2b-256 b0c1919453b6944656013c045b2720ab909ada58a64a1b6af7c673f9b44594b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for llm_code_context_generator-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c4862eb777b64b476759adc83d5342cffabbdb83e3f82de49daea9640cb0ead6
MD5 46f8703276dbf645ff9a1c0182c6ca0f
BLAKE2b-256 84ad82a9a7a9cdf454e774b80f6fe0a9616780129ef7abc2dd52885284d1906a

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