# What Helper Applications Are Included With Fabric? A Complete Guide to the CLI Tools

> Discover the helper applications included with Fabric: to_pdf, code2context, and generate_changelog. Enhance your document conversion, codebase analysis, and changelog generation with these powerful CLI tools.

- Repository: [Daniel Miessler 🛡️/fabric](https://github.com/danielmiessler/fabric)
- Tags: how-to-guide
- Published: 2026-02-28

---

**Fabric ships with three standalone command-line helper applications—`to_pdf`, `code2context`, and `generate_changelog`—that extend the core framework's capabilities for document conversion, codebase analysis, and automated changelog generation.**

The `danielmiessler/fabric` repository provides these lightweight binaries as optional additions to the main `fabric` CLI. Understanding what helper applications are included with Fabric enables users to streamline specific AI-augmented workflows for document processing, software development, and release management.

## Overview of Fabric Helper Applications

Fabric's helper applications are specialized utilities built from the same Go codebase but distributed as separate binaries in the `cmd/` directory. Unlike the core `fabric` tool, which focuses on executing AI patterns, these utilities handle data preparation tasks such as converting LaTeX documents, extracting code context, and mining Git repository history.

## to_pdf: LaTeX to PDF Conversion

The **`to_pdf`** helper converts LaTeX (`.tex`) documents into PDF files by orchestrating the `pdflatex` command-line tool. Implemented in [`cmd/to_pdf/main.go`](https://github.com/danielmiessler/fabric/blob/main/cmd/to_pdf/main.go), this utility accepts input from either stdin or a file path, validates that `pdflatex` exists in your PATH, and writes the rendered output to a specified location (defaulting to `output.pdf`).

```bash

# Convert LaTeX from stdin

echo '\documentclass{article}\begin{document}Hello, world!\end{document}' | to_pdf

# Convert a specific .tex file

to_pdf report.tex

```

The tool automatically creates missing output directories and manages temporary files during the compilation process, ensuring clean execution regardless of the working environment.

## code2context: Codebase Context Generation

The **`code2context`** utility scans source directories and produces structured JSON representations suitable for LLM consumption. Located in [`cmd/code2context/main.go`](https://github.com/danielmiessler/fabric/blob/main/cmd/code2context/main.go), it traverses the supplied directory tree, extracting file paths, extensions, and optionally the first few lines of each file to build a comprehensive context payload.

```bash

# Generate context for a Go application

code2context -dir ./my-go-app -out ctx.json

# Pipe directly into a Fabric pattern

cat ctx.json | fabric --pattern create_coding_feature

```

This JSON output enables Fabric patterns such as `create_coding_feature` to reason about entire codebases without processing irrelevant files, optimizing token usage and response quality.

## generate_changelog: Automated Release Notes

The **`generate_changelog`** tool automates changelog creation by aggregating Git commit history and GitHub pull-request metadata. Defined in [`cmd/generate_changelog/main.go`](https://github.com/danielmiessler/fabric/blob/main/cmd/generate_changelog/main.go), it leverages the Git CLI and GitHub GraphQL API to collect data, caches results in a local SQLite database for incremental updates, and can invoke Fabric patterns to produce AI-enhanced summaries.

Configuration requirements and environment variables for GitHub API authentication are documented in [`cmd/generate_changelog/README.md`](https://github.com/danielmiessler/fabric/blob/main/cmd/generate_changelog/README.md).

```bash

# Generate changelog for current repository

generate_changelog --repo . --output CHANGELOG.md

```

## Installing Fabric Helper Applications

Each helper application is distributed as a separate Go module within the `cmd/` hierarchy, allowing granular installation via the standard Go toolchain:

```bash

# Install individual helpers

go install github.com/danielmiessler/fabric/cmd/to_pdf@latest
go install github.com/danielmiessler/fabric/cmd/code2context@latest
go install github.com/danielmiessler/fabric/cmd/generate_changelog@latest

```

These binaries operate independently of the core `fabric` installation and can be invoked directly from your shell or integrated into CI/CD pipelines for automated documentation workflows.

## Summary

- **Three standalone CLI tools**—`to_pdf`, `code2context`, and `generate_changelog`—complement the core Fabric framework with specialized preprocessing capabilities.
- **Source locations**: Each helper resides in its own subdirectory under `cmd/` (e.g., [`cmd/to_pdf/main.go`](https://github.com/danielmiessler/fabric/blob/main/cmd/to_pdf/main.go), [`cmd/code2context/main.go`](https://github.com/danielmiessler/fabric/blob/main/cmd/code2context/main.go)).
- **Installation**: Use `go install` with the specific import path to add individual helpers to your PATH without pulling the entire repository.
- **Integration**: Helpers output to stdout or files, enabling seamless piping into Fabric patterns or composition with standard Unix tools.
- **Dependencies**: `to_pdf` requires `pdflatex` in PATH; `generate_changelog` requires Git and optional GitHub API credentials for full functionality.

## Frequently Asked Questions

### What helper applications are included with Fabric?

Fabric includes three command-line helpers: `to_pdf` for LaTeX-to-PDF conversion, `code2context` for generating JSON representations of codebases, and `generate_changelog` for creating AI-enhanced release notes from Git history. These utilities are located in the `cmd/` directory of the `danielmiessler/fabric` repository and install as separate binaries.

### How do I install Fabric helper applications?

Install individual helpers using Go's toolchain with commands like `go install github.com/danielmiessler/fabric/cmd/to_pdf@latest`. This approach allows you to install only the utilities you need rather than fetching the entire Fabric ecosystem, keeping your environment lean while accessing specific functionality.

### Can I use code2context with any Fabric pattern?

While `code2context` outputs standard JSON that any pattern could theoretically parse, it is specifically designed to work with patterns like `create_coding_feature` that expect structured codebase context. The JSON schema includes file paths, extensions, and content snippets optimized for AI reasoning about software architectures.

### Does generate_changelog require GitHub API access?

The tool functions using local Git history alone, but requires GitHub API credentials—configured via environment variables detailed in [`cmd/generate_changelog/README.md`](https://github.com/danielmiessler/fabric/blob/main/cmd/generate_changelog/README.md)—to fetch pull-request metadata and generate AI-enhanced summaries. The changelog generator caches data in SQLite to minimize redundant API calls during incremental updates.