A tool to recover and reconstruct corrupted Apple Keynote presentation files.
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fix_keynote-0.3.0.tar.gz.
File metadata
- Download URL: fix_keynote-0.3.0.tar.gz
- Upload date:
- Size: 12.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7b253d82e3cf87dee0c7ff8fd7734568dcf74cc3b82d93396ddea68451168df6
|
|
| MD5 |
60bd89d95030a8dc48e3d4c3f5616026
|
|
| BLAKE2b-256 |
c98e39b730d31ad88058fd0d9fc9eefdfb37c456032b2542af9aae39b9eac25e
|
Provenance
The following attestation bundles were made for fix_keynote-0.3.0.tar.gz:
Publisher:
release.yml on boileaum/fix_keynote
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fix_keynote-0.3.0.tar.gz -
Subject digest:
7b253d82e3cf87dee0c7ff8fd7734568dcf74cc3b82d93396ddea68451168df6 - Sigstore transparency entry: 1065343748
- Sigstore integration time:
-
Permalink:
boileaum/fix_keynote@27cfe0f27104ed000b20d5dfefea30c9eb3ffda3 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/boileaum
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@27cfe0f27104ed000b20d5dfefea30c9eb3ffda3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file fix_keynote-0.3.0-py3-none-any.whl.
File metadata
- Download URL: fix_keynote-0.3.0-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9c2bc42e2ac2ff1e9cd3ac76d434cd6d6edb94eaae4be93c7b65136e977309f
|
|
| MD5 |
ad69ea7e0a945f7e0e77c20a115cdda6
|
|
| BLAKE2b-256 |
ac61b83244a785f1597a79a867d44bdc915d25615044ce8576ac33732c800a29
|
Provenance
The following attestation bundles were made for fix_keynote-0.3.0-py3-none-any.whl:
Publisher:
release.yml on boileaum/fix_keynote
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fix_keynote-0.3.0-py3-none-any.whl -
Subject digest:
b9c2bc42e2ac2ff1e9cd3ac76d434cd6d6edb94eaae4be93c7b65136e977309f - Sigstore transparency entry: 1065343753
- Sigstore integration time:
-
Permalink:
boileaum/fix_keynote@27cfe0f27104ed000b20d5dfefea30c9eb3ffda3 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/boileaum
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@27cfe0f27104ed000b20d5dfefea30c9eb3ffda3 -
Trigger Event:
push
-
Statement type: