keynote-parser
A tool for manipulating Apple Keynote presentation files.
Decision gist · record as of 2026-08-14
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.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires libsnappy development headers; install via brew install snappy (macOS), apt-get install libsnappy-dev (Linux), or equivalent for your OS.
- 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.
License · maintenance · safety
MIT License (permissive) — MIT License (permissive) allows unrestricted use, modification, and distribution with minimal restrictions—suitable for both commercial and personal projects.
last release 2026-08-08 (6 days) · last repo commit 2026-08-09 · 209 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 74,420 downloads/mo, #14,838 on PyPI
Alternatives
Verify before relying
pip install keynote-parser
keynote-parser unpack MyPresentation.key
keynote-parser pack ./MyPresentation/- 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.
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 on this page. Verify before relying on it.
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
keynote-parser on PyPI
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.
Requires libsnappy development headers; install via brew install snappy (macOS), apt-get install libsnappy-dev (Linux), or equivalent for your OS.
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/
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 the current Python release >=3.9 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 7 packagesprotobuftqdmpython-snappyPyYAMLPillowfuturecolorama |
| Maintenance | Actively maintained 6 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 74,420 / month, #14,838 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Software Development :: Build Tools |
Evidence: keynote_parser-1.14.5.0-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “keynote file parser”
- keynote-parserUnpack, edit, and re-pack Apple Keynote .key files by converting…
- INIToolsINITools parses and manipulates INI-style configuration files through…
- iniparseiniparse is an INI file parser that preserves formatting (comments,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Build Tools packages
Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.
Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.
Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.
pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.
Install it if your team needs consistent, automated validation at commit time.
See also numbers-parser · yamlloader · mlx-whisper · yamlordereddictloader · yamlcore · coremltools · pyimg4 · mlx-audio · sigstore-protobuf-specs