siphon

Siphon - Effortlessly extract, compress, and cache Git repository contexts for integration with LLMs.

Downloads
743
Stars
0

Siphon

Efficiently extract, compress, and cache Git repository contexts for seamless integration with Large Language Models (LLMs).


Table of Contents


Features

  • Efficient Extraction: Extracts and compresses repository contents while respecting .gitignore rules.
  • Customizable Filtering: Include or exclude files and directories with ease.
  • Multiple Output Formats: Supports text, tarball, and markdown formats optimized for LLM contexts.
  • Caching and Chunking: Pre-cache large repositories for faster querying.
  • Token Count Estimations: Get token counts for specific LLMs like GPT-3 and Claude.
  • Clipboard and Stdout Support: Streamline workflows with seamless copying options.
  • Modularity: Extend functionality with community-driven extensions.
  • Interactive Mode: Granular file selection through an interactive interface.

Installation

Install Siphon using pip:

pip install siphon-cli

Usage

Navigate to your Git repository and run:

si -o context.txt

This command extracts the repository content into context.txt.


Examples

  • Include Specific File Types:

    si -i "*.py" -o python_files.txt
    
  • Exclude Directories:

    si -e "tests/*" -o code_without_tests.txt
    
  • Interactive Mode:

    si --interactive -o selected_files.txt
    
  • Copy Output to Clipboard:

    si --clipboard
    

Arguments

  • path: Path to the Git repository (default: current directory).
  • -i, --include: Include file patterns (e.g., .py, src/).
  • -e, --exclude: Exclude file patterns (e.g., tests/, *.md).
  • -o, --output: Output file name (default: output.txt).
  • -f, --format: Output format (text, tar, markdown).
  • -c, --cache: Enable caching (future feature placeholder).
  • --tokenizer: Tokenizer for token count estimation (gpt3, claude).
  • --interactive: Interactive mode for file selection.
  • --clipboard: Copy output to clipboard.
  • --stdout: Print output to stdout.

Contributing

We welcome contributions from the community! To contribute:

  1. Fork the repository.

  2. Create a new branch:

    git checkout -b feature/your-feature-name
    
  3. Commit your changes:

    git commit -am 'Add a new feature'
    
  4. Push to the branch:

    git push origin feature/your-feature-name
    
  5. Open a Pull Request.

Please read our Contributing Guidelines for more details.


License

This project is licensed under the MIT License.


Contact

Package Rankings
Top 34.26% on Pypi.org