{"id":31845868,"url":"https://github.com/chnapy/pkvault","last_synced_at":"2026-04-28T01:05:23.644Z","repository":{"id":317538225,"uuid":"1013102945","full_name":"Chnapy/PKVault","owner":"Chnapy","description":"Centralized pkm storage management \u0026 Pokedex app","archived":false,"fork":false,"pushed_at":"2026-04-25T11:56:20.000Z","size":31484,"stargazers_count":40,"open_issues_count":6,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-25T13:32:19.141Z","etag":null,"topics":["pkhex","pokedex","pokemon","save-editor","storage"],"latest_commit_sha":null,"homepage":"http://pkvault-demo.chnapy.dev","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Chnapy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-03T11:09:50.000Z","updated_at":"2026-04-25T11:46:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"1769deb4-200a-47e2-b24f-379952e4a240","html_url":"https://github.com/Chnapy/PKVault","commit_stats":null,"previous_names":["chnapy/pkvault"],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/Chnapy/PKVault","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chnapy%2FPKVault","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chnapy%2FPKVault/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chnapy%2FPKVault/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chnapy%2FPKVault/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Chnapy","download_url":"https://codeload.github.com/Chnapy/PKVault/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chnapy%2FPKVault/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32361478,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"ssl_error","status_checked_at":"2026-04-27T20:07:00.910Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["pkhex","pokedex","pokemon","save-editor","storage"],"created_at":"2025-10-12T08:20:12.431Z","updated_at":"2026-04-28T01:05:23.627Z","avatar_url":"https://github.com/Chnapy.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg height=\"200\" src=\"frontend\\public\\logo.svg\" alt=\"PKVault logo\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003ePKVault\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003e\n    \u003ca href=\"https://pkvault-demo.chnapy.dev\"\u003e\u003cb\u003eDEMO\u003c/b\u003e\u003c/a\u003e\n\u003c/h4\u003e\n\n\u003ch6 align=\"center\"\u003e\n    \u003ca href=\"https://github.com/Chnapy/PKVault/releases\"\u003e\u003cb\u003eRELEASES\u003c/b\u003e\u003c/a\u003e\n    \u0026nbsp;|\u0026nbsp;\n    \u003ca href=\"https://projectpokemon.org/home/files/file/5766-pkvault/\"\u003e\u003cb\u003ePROJECT POKEMON TOOL PAGE\u003c/b\u003e\u003c/a\u003e\n    \u0026nbsp;|\u0026nbsp;\n    \u003ca href=\"https://projectpokemon.org/home/forums/topic/67239-pkvault-centralized-pkm-storage-management-pokedex-app\"\u003e\u003cb\u003ePROJECT POKEMON DISCUSSION PAGE\u003c/b\u003e\u003c/a\u003e\n\u003c/h6\u003e\n\nPKVault is a Pokemon storage \u0026 save manipulation tool based on [PKHeX](https://github.com/kwsch/PKHeX).\nSimilar to Pokemon Home, offline as online.\n\nThis tool can be used as:\n\n- 📥 Desktop app\n  - Windows -\u003e [PKVault.exe](https://github.com/Chnapy/PKVault/releases/latest)\n  - Linux \u0026 SteamDeck -\u003e [pkvault.AppImage](https://github.com/Chnapy/PKVault/releases/latest) / [pkvault.deb](https://github.com/Chnapy/PKVault/releases/latest) / [pkvault.flatpak](https://github.com/Chnapy/PKVault/releases/latest) / [pkvault](https://github.com/Chnapy/PKVault/releases/latest)\n\n- 🐳 Docker web-app\n  - `image: ghcr.io/chnapy/pkvault` -\u003e check [below for usage](#docker-usage)\n\n![Platforms](https://img.shields.io/badge/Platform-Windows%20|%20Linux%20|%20SteamDeck%20|%20Docker-informational)\n![License](https://img.shields.io/badge/License-GPLv3-blue.svg)\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"img/snap_1.png\" alt=\"PKVault snapshot 1\" /\u003e\n    \u003cimg src=\"img/snap_2.png\" alt=\"PKVault snapshot 2\" style=\"display: inline-block; width: 24%\" /\u003e\n    \u003cimg src=\"img/snap_3.png\" alt=\"PKVault snapshot 3\" style=\"display: inline-block; width: 24%\" /\u003e\n    \u003cimg src=\"img/snap_4.png\" alt=\"PKVault snapshot 4\" style=\"display: inline-block; width: 24%\" /\u003e\n    \u003cimg src=\"img/snap_5.png\" alt=\"PKVault snapshot 5\" style=\"display: inline-block; width: 24%\" /\u003e\n\u003c/p\u003e\n\n## Bulk features\n\n- Storage \u0026 save manipulation\n  - compatible with all pokemon games, from first generation to **Pokemon Legends: Z-A**\n  - move pokemons between saves\n  - convert pokemon to any generation (ex. G7 to G2)\n  - store pokemons outside saves using banks \u0026 boxes\n  - allow use of multiple \"variants\" for stored pokemons\n  - move/delete actions\n  - edit pokemon moves, EVs \u0026 nickname\n  - evolve pokemons requiring trade or trade + held-item (ex. Kadabra -\u003e Alakazam)\n  - link a save pokemon with all his variants, sharing data like exp \u0026 EVs\n  - use of external PKM files, outside PKVault environment\n  - backup all saves \u0026 storage before any save action\n    - backups listing\n    - backups restore always possible\n- Centralized Pokedex based on all listed saves\n  - views with forms \u0026 genders\n  - multiple filters: species name, seen/caught/owned, types, ...\n    - possible living dex\n    - possible shiny dex\n- Dynamic saves listing based on paths \u0026 globs\n\n## Docker usage\n\nYou can use a plug'n'play docker image, compatible `Linux x86_64` and `Linux ARM` (like Raspberry Pis).\n\n`docker-compose.yml` example:\n\n```yml\nservices:\n  pkvault:\n    image: ghcr.io/chnapy/pkvault:latest # or specific version, like 1.5.1\n    restart: unless-stopped\n    ports:\n      - \"3000:3000\"\n    environment:\n      - LOG_FILE_COUNT_LIMIT=10     # removes extra log files, default: 10\n      - BACKUP_FILE_COUNT_LIMIT=30  # removes extra backup files, default: no limit\n    volumes:\n      - ./path/to/pkvault/data:/pkvault\n\n      # save paths sample\n      - ./path/to/saves:/data/saves\n      - ./path/to/other/saves:/data/other-saves\n      \n      # external-pkms path sample (optional)\n      - ./path/to/external-pkms:/data/external-pkms\n```\n\n\u003e Note: with this config sample, you can use in PKVault settings:\n\u003e - Saves files locations:\n\u003e   - /data/saves/ (or any subpath)\n\u003e   - /data/other-saves/ (or any subpath)\n\u003e - External PKM files locations:\n\u003e   - /data/external-pkms/ (or any subpath)\n\nPerfect for homelab context.\n\nOr using basic docker run:\n\n```\ndocker run \\\n  -p 3000:3000 \\\n  -v ./path/to/pkvault/data:/pkvault \\\n  -v ./path/to/saves:/data/saves \\\n  ghcr.io/chnapy/pkvault:latest\n```\n\n## [Functional documentation](./docs/functional/en/README.md)\n\n## [Technical documentation](./docs/technical/README.md)\n\nIncludes quick start.\n\n## [Contribute](./.github/CONTRIBUTING.md)\n\n## Licenses\n\nThis app (PKVault) is licensed under GPLv3 terms, as described in file [LICENSE](./LICENSE).\nYour can use this app for your own projects following license restrictions.\n\n- Backend / Desktop\n  - [PKHeX (Core part)](https://github.com/kwsch/PKHeX/tree/master/PKHeX.Core) - License GPLv3\n  - PokeApiNet - License MIT\n  - Versions \u0026 all others dependencies can be found into `*.csproj` files\n\n- Frontend\n  - Font \"Pixel Operator\" - from [onlinewebfonts](http://www.onlinewebfonts.com) - License CC BY 4.0\n  - Font \"Pokemon Emerald\" - from [fontstruct](https://fontstruct.com/fontstructions/show/1975556) by \"aztecwarrior28\" - License CC BY-SA 3.0\n  - [HackerNoon's Pixel Icon Library](https://github.com/hackernoon/pixel-icon-library) - License MIT\n  - Versions \u0026 all others dependencies can be found into [frontend/package.json](./frontend/package.json).\n\nAll image contents of game-icons, pokemons, types, items, move-categories are Copyright The Pokémon Company.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchnapy%2Fpkvault","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchnapy%2Fpkvault","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchnapy%2Fpkvault/lists"}