Skip to content

zozaai/gitex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

145 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

gitex logo

CI codecov

πŸ› οΈ Terminal tool to prep your codebase (whole or partial) for LLMs, clean, compress, and convert it into prompt-ready text! πŸš€πŸ“¦

gitex animated demo

Demo dependency slicing [select + "d"] >>> Picking all dependent scripts related to selected script

gitex animated demo

πŸ“₯ Installation

Install the package via pip:

pip install gitex

🐳 Docker install (no Python/pip)

If you only have Docker and want gitex as a normal command:

git clone https://github.com/zozaai/gitex
cd gitex
./scripts/install-gitex-docker.sh

πŸ“‹ Clipboard support (Linux)

Ubuntu/Debian

# Wayland (recommended):
sudo apt install -y wl-clipboard

# X11 alternatives:
sudo apt install -y xclip
# or
sudo apt install -y xsel

▢️ Usage

gitex helps you bundle your codebase into a single, LLM-friendly text format. It respects your .gitignore by default and provides several ways to filter content.

Basic Examples

gitex .                                 # Process current directory and copy to clipboard
gitex -i                                # Launch the interactive TUI to pick specific files/folders
gitex /path/to/repo --force             # Force process a directory even if it's not a Git repo
gitex . --no-files                      # Render the directory tree ONLY (omit file contents)

Advanced Filtering & Combinations

gitex . -a                              # Include hidden files (those starting with .)
gitex . -g                              # Ignore .gitignore rules (process everything)
gitex . -ag                             # Combine: Show hidden files AND ignore .gitignore
gitex . -iv                             # Interactive selection with verbose output to terminal
gitex . -v                              # Verbose: Print to terminal AND copy to clipboard
gitex . > codebase.txt                  # Redirect output to a text file

Intelligence Features

gitex . -ds                             # Extract only Python docstrings and signatures
gitex . --map-dependencies              # Analyze code relationships (imports, inheritance, calls)

πŸ™ Acknowledgments

This project draws inspiration from repo2txt by @abinthomasonline.
Big thanks for laying the groundwork for converting repositories into prompt-ready text!


πŸ“š Click to expand: Docstring Extraction Details

Python Docstring Extraction

Extract and format docstrings and function/class signatures from Python files, inspired by Sphinx. Perfect for providing high-level context to LLMs without implementation noise.

  • Extract from all Python files:
    gitex . --extract-docstrings
  • Extract from a specific class or function:
    gitex . --extract-docstrings gitex.renderer.Renderer
  • Include classes/functions even if they have no docstrings:
    gitex . --extract-docstrings --include-empty-classes
πŸ”— Click to expand: Dependency & Relationship Mapping Details

Architecture Analysis

Analyze and visualize code architecture, dependencies, and relationships in your codebase. Essential for understanding how components interact before diving into implementation details.

  • Full analysis: gitex . --map-dependencies
  • Focus on imports: gitex . --map-dependencies imports
  • Focus on inheritance: gitex . --map-dependencies inheritance
  • Focus on function calls: gitex . --map-dependencies calls

What it maps:

  • πŸ“¦ Import dependencies - Which files depend on which other files.
  • πŸ—οΈ Class inheritance hierarchies - Parent-child relationships between classes.
  • πŸ”„ Function call relationships - Which functions call which other functions.
  • πŸ“Š Summary statistics - Overview of codebase complexity and external dependencies.

About

πŸ› οΈ Terminal tool to prep your 🧠 codebase (whole or partial) for LLMs β€” clean, compress, and convert it into prompt-ready text! πŸš€πŸ“¦

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors