A home for the Pokémon you keep coming back to.
A native SwiftUI save editor with personal journals, saved teams, and a little room for nostalgia.
↓ Download for Mac · Take a look · Get started · Support · Credits
macOS 14+ / Apple Silicon + Intel / Apple notarized / GPL-3.0-or-later
KeepSake brings PKHeX.Core and offline Auto-Legality to a native Mac interface. Edit your collection, find encounters, organize teams, and keep the memories that make those Pokémon yours.
| The editor | The keepsakes | Your Mac |
|---|---|---|
| Pokémon, boxes, stats, moves, trainer details and legality reports. | Companion journals, favorite Pokémon, team pages and custom covers. | Native SwiftUI, independent save windows, drag-and-drop and in-app updates. |
| Inventory, Pokédex, Mystery Gifts and game-specific tools. | Local display names and stories, separate from exported game data. | Game colors, personal presets, pixel sprites and HD portraits. |
| Your Mac | Choose this release asset |
|---|---|
| Apple Silicon · M-series | KeepSake-<version>-macOS-arm64.zip |
| Intel | KeepSake-<version>-macOS-x86_64.zip |
Get the latest signed release →
Unzip the download and move KeepSake.app to Applications. Both builds include their runtime; no separate .NET installation is required.
Save export hotfix: Use 0.42 or later when exporting Switch saves. Earlier versions could write invalid exports and automatic backups. Updating prevents the issue; it does not repair existing files. Keep your original saves.
Already using 0.39 or later? Choose KeepSake → Check for Updates to download, verify, install and relaunch. Settings → Updates & Backup offers daily automatic checks and optional automatic download/install on quit. Every open workspace can cancel quitting to protect unsaved edits.
Give companions their own stories, save your favorite teams, and choose covers that feel like you. Journal names, memories and styles stay in KeepSake without changing Pokémon data.
Search encounters and event gifts, inspect stats and legality, and use the tools available for your save’s game. Click a screenshot to see the full-size capture.
- Open a save or Pokémon file, or drag it into the window. Sample workspaces are also available.
- Select a Pokémon, make your edits, then Set to Slot to keep the edited Pokémon in the save.
- Choose Export Copy to write the edited save while keeping your original file intact.
- Use Save Party as Team to add your current party to the journal, then make the cover and story yours.
Choose File → New KeepSake Window (⌘N) for another independent save workspace. Journals and appearance preferences are shared. To move Pokémon between separate save windows, export and open a Pokémon file; direct cross-window Pokémon dragging is not supported.
Settings → Engine → PKHaX mode disables automatic legality checks and enables unrestricted ability choices, raw form IDs and stored party stats. The editor shows Unchecked while active. File-format limits remain; Auto-Legality stays available as a manual tool.
Settings → Files & Startup manages original-save backups and save discovery. Updates & Backup lets you choose a destination, including a folder in iCloud Drive, and create a dated backup containing journal pages, teams, basic appearance preferences and existing original-save backups.
Cloud transfer is managed by macOS. KeepSake confirms that files were written locally, not that they have finished uploading. Keychain is for credentials, not save storage. Backups do not include unsaved editor changes or arbitrary files elsewhere on your Mac.
To restore your journal, import Journal.json from My Journal; entries and teams merge using their modification dates. For a save, copy the appropriate .bak file out of Original Save Backups and open that copy in KeepSake. RESTORE.txt accompanies each backup. Appearance.plist records basic preferences for reference; it is not automatically imported.
Choose Help → KeepSake Support for backup tools, update checks and a link to Issues. Copy App Details includes only the app version, macOS version and architecture. Avoid posting personal saves or trainer details in public reports.
Requires Swift 6 tooling, the macOS SDK and .NET SDK 10.
KEEPSAKE_ARCH=arm64 KEEPSAKE_APP_PATH="$PWD/KeepSake-AppleSilicon.app" bash build.sh
KEEPSAKE_ARCH=x86_64 KEEPSAKE_APP_PATH="$PWD/KeepSake-Intel.app" bash build.shUse distinct output paths. The build script writes app bundles and applies a local ad-hoc signature. SIGNING.md explains Developer ID signing and notarization; credentials belong in Keychain. FEATURE-COVERAGE.md documents implementation coverage and native differences. Windows UI layout equivalence, LiveHeX and Windows plugins are outside this release's scope. Settings includes all ten PKHeX interface languages, independently of the game-data catalog language. Common editor labels and navigation reuse PKHeX translations; untranslated specialized tools and guidance fall back to English.
Made with love by Kai White.
- PKHeX: Kaphotics and contributors.
- Auto-Legality Mod: Archit Date (architdate), Kaphotics and contributors; bundled santacrab2 fork, MIT license.
- Legends: Arceus and Scarlet/Violet item sprites: lichen, via Arceus collection and Scarlet/Violet collection.
- Paldea badges: ProfessorMorDBG, Paldea Badges demake large.
- Gen 1–6 badges: JcFerggy, 16x16 Pokémon Badge Sprites.
- Gen 9 icon sprites: Ezerart, normal and shiny.
- Portrait collections: PKHeX contributors and PokeAPI/sprites; Pokémon artwork belongs to its respective rights holders.
- In-app updates: Sparkle contributors, MIT license.
KeepSake is an unofficial project distributed under GPL-3.0-or-later; see LICENSE and THIRD-PARTY-NOTICES.md. Pokémon and artwork belong to their respective owners. The source license does not relicense separate artwork.
KeepSake checks official PKHeX releases daily and opens draft Core update PRs with compatibility results. Updates are reviewed before a separately signed and notarized KeepSake release. How upstream updates work →












