
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
github.com/coderamp-labs/gitingest
Advanced tools
Turn any Git repository into a prompt-friendly text ingest for LLMs.
You can also replace hub with ingest in any GitHub URL to access the corresponding digest.
gitingest.com · Chrome Extension · Firefox Add-on
Deutsch | Español | Français | 日本語 | 한국어 | Português | Русский | 中文
Gitingest is available on PyPI.
You can install it using pip:
pip install gitingest
or
pip install gitingest[server]
to include server dependencies for self-hosting.
However, it might be a good idea to use pipx to install it.
You can install pipx using your preferred package manager.
brew install pipx
apt install pipx
scoop install pipx
...
If you are using pipx for the first time, run:
pipx ensurepath
# install gitingest
pipx install gitingest
The extension is open source at lcandy2/gitingest-extension.
Issues and feature requests are welcome to the repo.
The gitingest command line tool allows you to analyze codebases and create a text dump of their contents.
# Basic usage (writes to digest.txt by default)
gitingest /path/to/directory
# From URL
gitingest https://github.com/coderamp-labs/gitingest
# or from specific subdirectory
gitingest https://github.com/coderamp-labs/gitingest/tree/main/src/gitingest/utils
For private repositories, use the --token/-t option.
# Get your token from https://github.com/settings/personal-access-tokens
gitingest https://github.com/username/private-repo --token github_pat_...
# Or set it as an environment variable
export GITHUB_TOKEN=github_pat_...
gitingest https://github.com/username/private-repo
# Include repository submodules
gitingest https://github.com/username/repo-with-submodules --include-submodules
By default, files listed in .gitignore are skipped. Use --include-gitignored if you
need those files in the digest.
By default, the digest is written to a text file (digest.txt) in your current working directory. You can customize the output in two ways:
--output/-o <filename> to write to a specific file.--output/-o - to output directly to STDOUT (useful for piping to other tools).See more options and usage details with:
gitingest --help
# Synchronous usage
from gitingest import ingest
summary, tree, content = ingest("path/to/directory")
# or from URL
summary, tree, content = ingest("https://github.com/coderamp-labs/gitingest")
# or from a specific subdirectory
summary, tree, content = ingest("https://github.com/coderamp-labs/gitingest/tree/main/src/gitingest/utils")
For private repositories, you can pass a token:
# Using token parameter
summary, tree, content = ingest("https://github.com/username/private-repo", token="github_pat_...")
# Or set it as an environment variable
import os
os.environ["GITHUB_TOKEN"] = "github_pat_..."
summary, tree, content = ingest("https://github.com/username/private-repo")
# Include repository submodules
summary, tree, content = ingest("https://github.com/username/repo-with-submodules", include_submodules=True)
By default, this won't write a file but can be enabled with the output argument.
# Asynchronous usage
from gitingest import ingest_async
import asyncio
result = asyncio.run(ingest_async("path/to/directory"))
from gitingest import ingest_async
# Use await directly in Jupyter
summary, tree, content = await ingest_async("path/to/directory")
This is because Jupyter notebooks are asynchronous by default.
Build the image:
docker build -t gitingest .
Run the container:
docker run -d --name gitingest -p 8000:8000 gitingest
The application will be available at http://localhost:8000.
If you are hosting it on a domain, you can specify the allowed hostnames via env variable ALLOWED_HOSTS.
# Default: "gitingest.com, *.gitingest.com, localhost, 127.0.0.1".
ALLOWED_HOSTS="example.com, localhost, 127.0.0.1"
The application can be configured using the following environment variables:
The project includes a compose.yml file that allows you to easily run the application in both development and production environments.
The compose.yml file uses YAML anchoring with &app-base and <<: *app-base to define common configuration that is shared between services:
# Common base configuration for all services
x-app-base: &app-base
build:
context: .
dockerfile: Dockerfile
ports:
- "${APP_WEB_BIND:-8000}:8000" # Main application port
- "${GITINGEST_METRICS_HOST:-127.0.0.1}:${GITINGEST_METRICS_PORT:-9090}:9090" # Metrics port
# ... other common configurations
The file defines three services:
app: Production service configuration
prod profilerestart: unless-stoppedapp-dev: Development service configuration
dev profileminio: S3-compatible object storage for development
dev profile (only available in development mode)minioadminminioadminMINIO_ROOT_USER: Custom admin username (default: minioadmin)MINIO_ROOT_PASSWORD: Custom admin password (default: minioadmin)gitingest-bucket (configurable via S3_BUCKET_NAME)gitingest (configurable via S3_ACCESS_KEY)gitingest123 (configurable via S3_SECRET_KEY)S3_ENDPOINT: URL of the MinIO serverS3_ACCESS_KEY: Access key for the S3 bucketS3_SECRET_KEY: Secret key for the S3 bucketS3_BUCKET_NAME: Name of the S3 bucketS3_REGION: Region for the S3 bucket (default: us-east-1)S3_ALIAS_HOST: Public URL/CDN for accessing S3 resources (default: "127.0.0.1:9000/gitingest-bucket")To run the application in development mode:
docker compose --profile dev up
To run the application in production mode:
docker compose --profile prod up -d
To build and run the application:
docker compose --profile prod build
docker compose --profile prod up -d
Gitingest aims to be friendly for first time contributors, with a simple Python and HTML codebase. If you need any help while working with the code, reach out to us on Discord. For detailed instructions on how to make a pull request, see CONTRIBUTING.md.
Check out the NPM alternative 📦 Repomix: https://github.com/yamadashy/repomix
FAQs
Unknown package
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.