% CHECKLIST(1) | User Commands % miss-sophie % September 2025
checklist — Aviation checklist management toolkit (YAML, ForeFlight .fmd, LaTeX)
checklist [COMMAND] [OPTIONS] [ARGS...]
A modular, extensible Python package and CLI for managing aircraft checklists. Supports conversion between YAML, ForeFlight .fmd, and LaTeX formats.
The checklist tool provides a workflow for maintaining aircraft checklists in a single editable YAML format, exporting them to ForeFlight’s encrypted .fmd format for mobile use, and rendering high-quality printable PDF documents using LaTeX.
Checklist data is authorable and version-controlled as YAML, then converted or rendered as needed:
- YAML: Human-editable source format (see YAML spec)
- ForeFlight .fmd: Encrypted binary format for ForeFlight mobile import (see ForeFlight format)
- LaTeX: Structured, styled printable checklists (see LaTeX class documentation)
Requirements:
- Python 3.8 or newer
- LaTeX environment (for PDF output;
xelatexrecommended) - ttfutils for custom fonts (optional)
Install the module and CLI:
git clone https://github.com/miss-sophie/checklists.git
cd checklists/checklist
pip install -e .Or, for a one-time install:
pip install .To install dependencies only:
pip install -r requirements.txtThe CLI script checklist will be available after install.
The CLI supports the following subcommands:
Import a ForeFlight
.fmdfile and convert to YAML.
Usage:
checklist import-fmd input.fmd output.yaml
input.fmd— Path to ForeFlight.fmdfileoutput.yaml— Destination for converted YAML
Export a YAML checklist file to ForeFlight
.fmdformat.
Usage:
checklist export-fmd input.yaml output.fmd
input.yaml— Source YAML checklistoutput.fmd— Destination ForeFlight file
Render a LaTeX
.texdocument from a YAML checklist for printing.
Usage:
checklist render-latex input.yaml output.tex [--papersize SIZE] [--use-sections] [--legal_disclaimer]
input.yaml— Source YAML checklistoutput.tex— Destination LaTeX file--papersize SIZE— Paper size (a4double,a5double,a6single, etc.; default:a6single)--use-sections— Add section headers for subgroups--legal_disclaimer— Include legal disclaimer on title page
- See yaml-format.md
- Top-level fields:
checklist_name,tailNumber,detail,schemaVersion,categories - Hierarchy: categories → groups → checklists → items
- See foreflight-format.md
- Encrypted JSON, AES-128 CBC, PKCS#7 padding
- Hierarchy matches YAML, with metadata and UUIDs for sync
- See latex-class.md
- Uses
checklist.clsclass for chapters, environments, metadata, and styling
checklist render-latex my_checklist.yaml my_checklist.tex --papersize a4double --use-sections
xelatex -output-directory=build my_checklist.texchecklist export-fmd my_checklist.yaml my_checklist.fmdchecklist import-fmd my_checklist.fmd my_checklist.yamlFor all commands:
--help— Show usage information
For render-latex:
--papersize SIZE— Choose document size/layout (see latex-class.md)--use-sections— Enable section headers per subgroup--legal_disclaimer— Add POH disclaimer box to title page
- Requires Python 3.8+
- Dependencies: PyYAML, pycryptodome, jinja2
- For LaTeX rendering: A working TeX/LaTeX environment (
xelatexrecommended) withttfutilsbeing present.
- yaml-format.md — YAML schema
- foreflight-format.md — ForeFlight file format details
- latex-class.md — LaTeX class documentation
- README.md — Project overview and example