A tool to help with copying and pasting code context into LLM chats
Project description
LLM Code Context
LLM Code Context is a Python-based tool designed to streamline the process of sharing code context with Large Language Models (LLMs). It allows developers to easily select, format, and copy relevant code snippets and project structure information, enhancing the quality of interactions with AI assistants in coding tasks.
This project was developed with significant input from Claude 3 Opus and Claude 3.5 Sonnet. All of the code that makes it into the repo is human curated (by me ๐).
Features
- File Selection: Offers a command-line interface for selecting files from your project.
- Intelligent Ignoring: Respects
.gitignore
rules and additional custom ignore patterns to exclude irrelevant files. - Customizable Output: Uses Jinja2 templates for flexible formatting of the selected code context.
- Folder Structure Visualization: Generates a textual representation of your project's folder structure.
- Clipboard Integration: Automatically copies the generated context to your clipboard for easy pasting.
- Configuration Management: Supports user-specific and project-specific configurations for a tailored experience.
Installation
Using pipx (Recommended)
pipx is a tool to help you install and run end-user applications written in Python.
- If you haven't installed pipx yet, follow the installation instructions in the pipx documentation.
- Once pipx is installed, you can install LLM Code Context:
pipx install llm-code-context
This will install LLM Code Context in an isolated environment and make its commands available in your shell.
Usage
LLM Code Context provides several command-line entry points for different functionalities:
-
Select files:
lcc-select
-
Generate context from selected files:
lcc-genfiles
-
Generate folder structure diagram:
lcc-dirtree
Typical workflow:
- Run
lcc-select
to choose the files you want to include in your context. - Run
lcc-genfiles
to process the selected files and copy the formatted context to your clipboard. - Paste the context into your conversation with the LLM.
Configuration
LLM Code Context uses three configuration files:
- User Configuration (
~/.llm-context/config.json
). Example:
{
"templates_path": "/path/to/your/templates"
}
- Project Configuration (
.llm-context/config.json
in your project root). Example:
{
"template": "all-file-contents.j2",
"gitignores": [".git", "node_modules"],
"root_path": "/path/to/your/project"
}
- Scratch Configuration (
.llm-context/scratch.json
in your project root). Example:- Keeps track of the currently selected files.
You can edit these files manually or use the provided interfaces to update them.
Project Structure
llm-code-context/
โโโ src/
โ โโโ llm_code_context/
โ โโโ __init__.py
โ โโโ config_manager.py
โ โโโ context_generator.py
โ โโโ file_selector.py
โ โโโ file_selector_ui.py
โ โโโ folder_structure_diagram.py
โ โโโ gitignore_parser.py
โ โโโ pathspec_ignorer.py
โ โโโ template_processor.py
โโโ templates/
โ โโโ all-file-contents.j2
โโโ tests/
โ โโโ test_pathspec_ignorer.py
โโโ .gitignore
โโโ README.md
โโโ poetry.lock
โโโ pyproject.toml
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.
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
Built Distribution
File details
Details for the file llm_code_context-0.0.3.tar.gz
.
File metadata
- Download URL: llm_code_context-0.0.3.tar.gz
- Upload date:
- Size: 11.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.4 Darwin/23.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bed1ccf93b153ed48179b8214e0a59813418405351a05a638762c28471a9029d |
|
MD5 | b29158c4fc3025b47c82afccfb3d29f1 |
|
BLAKE2b-256 | 30cf04f01c91c587b454ad835860f8f2bb53067e014d9e68fe7408f7305abf78 |
File details
Details for the file llm_code_context-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: llm_code_context-0.0.3-py3-none-any.whl
- Upload date:
- Size: 13.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.2 CPython/3.12.4 Darwin/23.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 875f8cc65ab33b626dab8a7db7880d2be56d4cb705cabd42e9ab8f5d6a8b3d77 |
|
MD5 | 2f543160336cffe349d9c051ece50b08 |
|
BLAKE2b-256 | b900f93a564c6a506b58df251e82aa00e07be30a1645d76d05f682a6f75ba963 |