From john-skills
Converts Git repositories (local directories or GitHub URLs) into single text files optimized for LLM analysis using GitIngest. Handles private repos with tokens and options like --include-gitignored.
npx claudepluginhub jbdamask/john-claude-skills --plugin john-skillsThis skill uses the workspace's default tool permissions.
Convert any Git repository into a prompt-friendly text file for LLM consumption. GitIngest extracts the structure and contents of a repository into a single text file that can be easily processed by language models.
Packs repositories into single AI-friendly files for LLM analysis like Claude/ChatGPT/Gemini, with token counting, file filtering, comment removal, security checks, and remote repo support.
Generates llms.txt file from repo structure per llmstxt.org spec, with project summary and categorized file links for LLM repo navigation. Invoke manually via /create-llms or auto when relevant.
Explores and analyzes local or remote repositories (GitHub, GitLab, Bitbucket) using read-only Claude Code CLI to answer questions on structure, API, architecture, and implementation.
Share bugs, ideas, or general feedback.
Convert any Git repository into a prompt-friendly text file for LLM consumption. GitIngest extracts the structure and contents of a repository into a single text file that can be easily processed by language models.
This skill requires the gitingest Python package.
First, check if gitingest is already installed and accessible:
which gitingest || echo "NOT_FOUND"
Also check common venv locations:
ls ~/.venvs/gitingest/bin/gitingest 2>/dev/null || echo "NOT_IN_VENVS"
If gitingest is not found, ask the user how they'd like to install it:
Ask: "The gitingest package is required but not installed. How would you like to install it?"
Options:
If user chooses the convenience option:
Once gitingest is available, determine what the user wants to ingest:
https://github.com/owner/repoRun gitingest using the path determined in steps 1-2. Examples use <gitingest> as placeholder for the actual path:
For a local directory:
<gitingest> /path/to/repository -o output.txt
For a GitHub repository:
<gitingest> https://github.com/owner/repo -o output.txt
For the current directory:
<gitingest> . -o output.txt
| Option | Description |
|---|---|
-o <file> | Output to specified file (use - for stdout) |
-t <token> | GitHub token for private repos |
--include-gitignored | Include files normally ignored by .gitignore |
--include-submodules | Process git submodules |
Private repositories: If the user needs to ingest a private repo, they must provide a GitHub token:
<gitingest> https://github.com/owner/private-repo -t <GITHUB_TOKEN> -o output.txt
Or set the environment variable:
export GITHUB_TOKEN=<token>
<gitingest> https://github.com/owner/private-repo -o output.txt
GitIngest produces a text file containing:
After running, confirm success and report:
gitingest.com/owner/repo)