llm-context

Apache 2.0
152
  • Apple
  • Linux

local-only server

The server can only run on the client’s local machine because it depends on local resources.

LLM Context

LLM Context is a tool that helps developers quickly inject relevant content from code/text projects into Large Language Model chat interfaces. It leverages .gitignore patterns for smart file selection and provides both a streamlined clipboard workflow using the command line and direct LLM integration through the Model Context Protocol (MCP).

Note: This project was developed in collaboration with several Claude Sonnets - 3.5, 3.6 and 3.7 (and more recently Grok-3 as well), using LLM Context itself to share code during development. All code in the repository is human-curated (by me πŸ˜‡, @restlessronin).

Important: Profile Changes and Command-line Parameters

As of version 0.2.16, we've made some key improvements:

  1. Diagram File Filtering:
  • The -x flag (previously no_media setting) has been removed
  • Media/Binary files are now automatically filtered from diagram output using pattern-based ignores
  • You can customize which files are excluded from diagram using the diagram_files key in your profile's gitignores
  1. Profile Simplification:
  • System profiles have been reduced to just "lc-code" and "lc-gitignores"
  • The old "code-prompt" and "code-file" profiles are no longer needed as their functionality is now handled by command-line parameters
  • All system profiles are prefixed with "lc-" for clarity
  1. Command Parameters: Behavior options are controlled via command-line parameters:
  • -p: Include prompt instructions in context
  • -u: Include user notes in context
  • -f FILE: Write context to specified output file

Examples:

# Generate context with prompt included lc-context -p # Generate context with user notes and save to file lc-context -u -f project-context.md # Generate context with all options lc-context -p -u -f project-context.md

If you have customized profiles or have references to them in your workflows, please update them accordingly.

Important: Configuration File Format Change

Configuration files were converted from TOML to YAML in v 0.2.9. Existing users must manually convert any customizations in .llm-context/config.yaml files to the new .llm-context/config.yaml.

Why LLM Context?

For an in-depth exploration of the reasoning behind LLM Context and its approach to AI-assisted development, check out our article: LLM Context: Harnessing Vanilla AI Chats for Development

Current Usage Patterns

  • Direct LLM Integration: Native integration with Claude Desktop via MCP protocol
  • Chat Interface Support: Works with any LLM chat interface via CLI/clipboard
    • Optimized for interfaces with persistent context like Claude Projects and Custom GPTs
    • Works equally well with standard chat interfaces
  • Project Types: Suitable for code repositories and collections of text/markdown/html documents
  • Project Size: Optimized for projects that fit within an LLM's context window. Large project support is in development

Installation

Install LLM Context using uv:

uv tool install llm-context

To upgrade to the latest version:

uv tool upgrade llm-context

Warning: LLM Context is under active development. Updates may overwrite configuration files prefixed with lc-. We recommend all configuration files be version controlled for this reason.

Quickstart

MCP with Claude Desktop

Add to 'claude_desktop_config.json':

{ "mcpServers": { "CyberChitta": { "command": "uvx", "args": ["--from", "llm-context", "lc-mcp"] } } }

Once configured, you can start working with your project in two simple ways:

  1. Say: "I would like to work with my project" Claude will ask you for the project root path.
  2. Or directly specify: "I would like to work with my project /path/to/your/project" Claude will automatically load the project context.

CLI Quick Start and Typical Workflow

  1. Navigate to your project's root directory
  2. Initialize repository: lc-init (only needed once)
  3. (Optional) Edit .llm-context/config.yaml to customize ignore patterns
  4. Select files: lc-sel-files
  5. (Optional) Review selected files in .llm-context/curr_ctx.yaml
  6. Generate context: lc-context (with optional flags: -p for prompt, -u for user notes)
  7. Use with your preferred interface:
  • Project Knowledge (Claude Pro): Paste into knowledge section
  • GPT Knowledge (Custom GPTs): Paste into knowledge section
  • Regular chats: Use lc-context -p to include instructions
  1. When the LLM requests additional files:
    • Copy the file list from the LLM
    • Run lc-clip-files
    • Paste the contents back to the LLM

Core Commands

  • lc-init: Initialize project configuration
  • lc-set-profile <n>: Switch profiles (system profiles are prefixed with "lc-")
  • lc-sel-files: Select files for inclusion
  • lc-sel-outlines: Select files for outline generation
  • lc-context [-p] [-u] [-f FILE]: Generate and copy context
    • -p: Include prompt instructions
    • -u: Include user notes
    • -f FILE: Write to output file
  • lc-prompt: Generate project instructions for LLMs
  • lc-clip-files: Process LLM file requests
  • lc-changed: List files modified since last context generation
  • lc-outlines: Generate outlines for code files
  • lc-clip-implementations: Extract code implementations requested by LLMs (doesn't support C/C++)

Features & Advanced Usage

LLM Context provides advanced features for customizing how project content is captured and presented:

  • Smart file selection using .gitignore patterns
  • Multiple profiles for different use cases
    • System profiles (prefixed with "lc-") provide default functionality
    • User-defined profiles can be created independently or extend existing profiles
  • Code Navigation Features:
    1. Smart Code Outlines: Allows LLMs to view the high-level structure of your codebase with automatically generated outlines highlighting important definitions
    2. Definition Implementation Extraction: Paste full implementations of specific definitions that are requested by LLMs after they review the code outlines, using the lc-clip-implementations command
  • Customizable templates and prompts

See our User Guide for detailed documentation of these features.

Similar Tools

Check out our comprehensive list of alternatives - the sheer number of tools tackling this problem demonstrates its importance to the developer community.

Acknowledgments

LLM Context evolves from a lineage of AI-assisted development tools:

  • This project succeeds LLM Code Highlighter, a TypeScript library I developed for IDE integration.
  • The concept originated from my work on RubberDuck and continued with later contributions to Continue.
  • LLM Code Highlighter was heavily inspired by Aider Chat. I worked with GPT-4 to translate several Aider Chat Python modules into TypeScript, maintaining functionality while restructuring the code.
  • This project uses tree-sitter tag query files from Aider Chat.
  • LLM Context exemplifies the power of AI-assisted development, transitioning from Python to TypeScript and back to Python with the help of GPT-4 and Claude-3.5-Sonnet.

I am grateful for the open-source community's innovations and the AI assistance that have shaped this project's evolution.

I am grateful for the help of Claude-3.5-Sonnet in the development of this project.

License

This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.