--- id: keynote-parser version: "1.14.5.0" license: MIT License license_treatment: permissive maintenance: active --- # keynote-parser — A tool for manipulating Apple Keynote presentation files. License: permissive · Maintenance: active · Downloads: 74.4K/mo ## What it is and what it does keynote-parser is a command-line tool and Python library that converts Apple Keynote presentations from their proprietary binary format into editable YAML files and back. Keynote stores presentations as zip archives containing Snappy-compressed Protobuf files; this tool unpacks those into human-readable YAML, making presentations versionable in Git and scriptable via text editors or external tools. You can unpack a presentation, modify text or images in the resulting directory structure, then re-pack it into a working .key file. The package is built on top of protobuf, python-snappy, and PyYAML to handle decompression, deserialization, and format conversion. It includes a CLI with commands to unpack, pack, list archive contents, dump individual files, and perform bulk text or image replacement. The tool is actively maintained and supports Keynote version 14.4 as of April 2025, though backwards compatibility between keynote-parser versions and older Keynote file formats is not yet fully supported. Use it for: - Version Keynote presentations in Git with human-readable diffs instead of binary blobs. - Automate text replacement in Keynote files—e.g., update figures or data from external databases before presenting. - Batch-replace images across multiple presentations using a JSON replacements file. - Extract and inspect the structure and metadata of Keynote files programmatically. - Integrate Keynote editing into CI/CD pipelines or content generation workflows. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Unpack, edit, and re-pack Apple Keynote .key files by converting their proprietary compressed binary format into editable YAML, then back into working Keynote archives. Yes, if you need to version or automate Keynote presentations. The package is actively maintained, has low install friction, uses a permissive MIT license, and solves a real problem—making binary Keynote files editable and diffable. Be aware that backwards compatibility between keynote-parser versions is limited; if you upgrade the tool, older unpacked YAML files may not re-pack correctly. Requires libsnappy system libraries. ## Install pip install keynote-parser uv add keynote-parser poetry add keynote-parser ## Installing keynote-parser Before you install: Low install friction; pure Python wheel with seven runtime dependencies including protobuf, python-snappy, and PyYAML. Repository is active with a recent release (6 days old) and 209 stars. Requires Python 3.9 or later. License in practice: MIT License (permissive) allows unrestricted use, modification, and distribution with minimal restrictions—suitable for both commercial and personal projects. Quickstart: pip install keynote-parser keynote-parser unpack MyPresentation.key keynote-parser pack ./MyPresentation/ Requires libsnappy development headers; install via brew install snappy (macOS), apt-get install libsnappy-dev (Linux), or equivalent for your OS. Verify before relying: - Whether the package can reliably handle Keynote files from versions older than 14.4 or newer than the current release. - Performance characteristics when working with large presentations or high-resolution images. - Whether Git diffs on unpacked YAML files remain stable across keynote-parser version upgrades. ## Package facts - License: MIT License (permissive) - Python support: supports_current - Install friction: low - Maintenance: active - Downloads: 74.4K/month (top 15,000 on PyPI) - Known vulnerabilities: none known ## Tags keynote file parser, apple keynote editor, keynote .key unpacker, keynote yaml conversion, keynote file manipulation, keynote presentation editor, keynote text replacement, keynote-automation, presentation-tooling [View on SkillFed](https://skillfed.io/packages/keynote-parser) · [View on PyPI](https://pypi.org/project/keynote-parser/)