gitprint
Convert git repositories into beautifully formatted, printer-friendly PDFs.
Features
- Syntax-highlighted source code with 100+ languages supported
- Configurable color themes (InspiredGitHub, Solarized, base16, and more)
- Table of contents and directory tree visualization
- Single-file mode — print just one file, no cover page or TOC overhead
- Plain directory support — works on any folder, not just git repos
- Automatic binary and minified file detection and exclusion
- Glob-based include/exclude filtering
- Multiple paper sizes (A4, Letter, Legal) and landscape mode
- Branch and commit selection for printing specific revisions
- Embedded JetBrains Mono font for crisp code rendering
- Async pipeline — metadata, file reads, and highlighting run concurrently
Installation
With Nix
With Cargo
Usage
# Generate PDF from current directory (or git repo)
# Print a single file
# Print any directory (no git required)
# Output to a specific file
# Include only Rust and TOML files
# Exclude test files
# Use a different theme
# List available themes
# Use Letter paper in landscape
# Print a specific branch or commit
# Minimal output: no TOC, no file tree, no line numbers
CLI Reference
Convert git repositories into beautifully formatted PDFs
Usage: gitprint [OPTIONS] <PATH>
Arguments:
<PATH> Path to git repository, directory, or single file
Options:
-o, --output <OUTPUT> Output PDF file path
--include <INCLUDE> Glob patterns for files to include (repeatable)
--exclude <EXCLUDE> Glob patterns for files to exclude (repeatable)
--theme <THEME> Syntax highlighting theme [default: InspiredGitHub]
--font-size <FONT_SIZE> Code font size in points [default: 8]
--no-line-numbers Disable line numbers
--no-toc Disable table of contents
--no-file-tree Disable directory tree visualization
--branch <BRANCH> Use a specific branch
--commit <COMMIT> Use a specific commit
--paper-size <PAPER_SIZE> Paper size [default: a4] [possible values: a4, letter, legal]
--landscape Use landscape orientation
--list-themes List available syntax themes and exit
-h, --help Print help
-V, --version Print version
Development
Donate
If gitprint saves you time, consider sponsoring development:
GitHub Sponsors has zero platform fees — 100% goes to the developer.
License
MIT