Efficiently extract, compress, and cache Git repository contexts for seamless integration with Large Language Models (LLMs).
- 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.
Install Siphon using pip
:
pip install siphon-cli
Navigate to your Git repository and run:
si -o context.txt
This command extracts the repository content into context.txt
.
-
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
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.
We welcome contributions from the community! To contribute:
-
Fork the repository.
-
Create a new branch:
git checkout -b feature/your-feature-name
-
Commit your changes:
git commit -am 'Add a new feature'
-
Push to the branch:
git push origin feature/your-feature-name
-
Open a Pull Request.
Please read our Contributing Guidelines for more details.
This project is licensed under the MIT License.
- Email: [email protected]
- GitHub: atxtechbro
- Project Link: https://github.com/atxtechbro/siphon