Skip to main content

FixKeynote

FixKeynote is a tool intended to help recover corrupted Apple Keynote (.key) files. It works by extracting text, presenter notes, and images from the corrupted archive and then using AppleScript to create a new presentation with the recovered data.

Installation

Download the App

You can download the latest compiled version of FixKeynote from the Releases. Look for the latest release and download the FixKeynote.dmg bundle.

MacOS gatekeeper workaround

Because this app is not distributed via the Mac App Store and is not signed with a paid Apple Developer certificate, dragging it from the .dmg or downloading it might trigger a macOS security warning:

"Apple cannot check it for malicious software"

To bypass this one-time warning, open System Settings > Privacy & Security, scroll down, and click "Open Anyway".

How to Use FixKeynote

There are two main ways to use this tool: as a standalone macOS application or a command-line tool.

1. Using the macOS App (FixKeynote.app)

If you have the compiled Application bundle:

Drop your corrupted .key files into a folder named fix_keynote on your Desktop (~/Desktop/fix_keynote/). Then, simply double-click on FixKeynote.app. The application will automatically detect all .key files in that folder, extract their data, and reconstruct them next to the original files.

2. Using the Command Line (CLI)

Use uv to run the CLI directly on a specific file or an entire folder:

# Run on a specific file
uvx fix_keynote /path/to/corrupted_presentation.key

# Or process everything in ~/Desktop/fix_keynote/
uvx fix_keynote ~/Desktop/fix_keynote/

How to Build the macOS App

To build a standalone macOS application bundle (.app) so you can easily move it or place it in your Applications folder, we use PyInstaller.

Prerequisites

Make sure you have uv installed, then install the required build dependencies:

uv sync --group build

Build Command

You can easily build the FixKeynote.app bundle and copy it to your Desktop using the included Makefile. Run the following command at the root of the project:

make build

Output

Once the process is complete, your compiled application will be automatically copied to your Desktop (~/Desktop/FixKeynote.app).

You can clean the build artifacts later by running:

make clean

Metadata

Release files for fix-keynote 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fix-keynote 0.3.0
File Size Uploaded Provenance Actions
fix_keynote-0.3.0.tar.gz 12.0 kB With provenance Details for fix_keynote-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fix-keynote 0.3.0
File Interpreter ABI Platform Actions
fix_keynote-0.3.0-py3-none-any.whl Python 3 none any Details for fix_keynote-0.3.0-py3-none-any.whl

Total release size: 19.5 kB

Release files / fix_keynote-0.3.0.tar.gz

Download URL fix_keynote-0.3.0.tar.gz
Size 12.0 kB
Tags Source
SHA-256 checksum
How to use checksums
7b253d82e3cf87dee0c7ff8fd7734568dcf74cc3b82d93396ddea68451168df6
BLAKE2b-256 checksum
How to use checksums
c98e39b730d31ad88058fd0d9fc9eefdfb37c456032b2542af9aae39b9eac25e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 9, 2026.

Transparency log

Release files / fix_keynote-0.3.0-py3-none-any.whl

Download URL fix_keynote-0.3.0-py3-none-any.whl
Size 7.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b9c2bc42e2ac2ff1e9cd3ac76d434cd6d6edb94eaae4be93c7b65136e977309f
BLAKE2b-256 checksum
How to use checksums
ac61b83244a785f1597a79a867d44bdc915d25615044ce8576ac33732c800a29
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 9, 2026.

Transparency log

Security for fix-keynote 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for fix_keynote-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 9, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.3.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page