Individual skill
wechat-decrypt
Read, search, summarize, export, and transcribe a user's own local WeChat 4.x history on macOS or Windows; diagnose setup and re-extract the device key after a WeChat update. Use for WeChat messages, chats, contacts, and local archives. Do not use for remote accounts or devices the user is not authorized to access.
SKILL.md
Source commit f0b3f9f95dda2d954ee3dbe1d139fb1944a5ecfd
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- Yes
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Network or broad shell
- Last checked
- Nov 5, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 88
- Repository last updated
- Oct 14, 2026
- License
- MIT
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- agent-skill Repository topic
- chat-export Repository topic
- decrypt Repository topic
- mcp Repository topic
- wechat Repository topic
- engineering Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
.github/workflows/tests.ymlasset · 1,394 bytes.gitignoreasset · 205 bytesLICENSEasset · 1,065 bytesNOTES.mddoc · 1,116 bytesREADME.mddoc · 10,559 bytesREADME_ZH.mddoc · 9,928 bytesSKILL.mdcore · 4,778 bytesSKILL.mdcore · 4,778 bytesSKILL.mdcore · 4,778 bytesagents/openai.yamlasset · 197 bytesappmsg.pyruns · 12,860 bytesconfig.pyruns · 1,325 bytescontacts.example.jsonasset · 138 bytescontacts.pyruns · 4,454 bytescrypto.pyruns · 2,425 bytesdb.pyruns · 11,005 bytesdocs/2026-06-05-windows-keyextract-findings.mddoc · 5,458 bytesdocs/2026-06-05-windows-port-design.mddoc · 6,290 bytesdocs/2026-06-05-windows-port-plan.mddoc · 29,436 bytesdocs/2026-06-06-windows-raw-key-journey.mddoc · 12,165 bytesdocs/chat-list-pagination.mddoc · 649 bytesdocs/media-manifest-proposal.mddoc · 5,419 bytesdocs/windows-data-root.mddoc · 732 bytesdocs/windows-wal-snapshots.mddoc · 990 bytese2e/README.mddoc · 1,386 bytese2e/check_consistency.pyruns · 4,378 bytese2e/test_e2e.pyruns · 6,102 bytesmessage.pyruns · 10,896 bytespyproject.tomlasset · 375 bytesreferences/db-repair.mddoc · 4,722 bytesreferences/export-transcription.mddoc · 3,287 bytesreferences/macos.mddoc · 2,945 bytesreferences/windows.mddoc · 4,496 bytesrequirements-windows.txtdoc · 120 bytesscripts/common/crypto_backend.pyruns · 1,085 bytesscripts/common/doctor.pyruns · 11,941 bytesscripts/common/export_chat.pyruns · 13,149 bytesscripts/common/export_media.pyruns · 2,912 bytesscripts/common/media_manifest.pyruns · 12,485 bytesscripts/common/migrate_private_state.pyruns · 4,532 bytesscripts/common/query.pyruns · 25,926 bytesscripts/common/read_doc.pyruns · 7,498 bytesscripts/common/rebuild_from_factory.pyruns · 5,689 bytesscripts/common/repair_factory.pyruns · 4,690 bytesscripts/common/salvage_btree.pyruns · 6,454 bytesscripts/common/salvage_export.pyruns · 7,182 bytesscripts/common/salvage_rebuilt.pyruns · 5,749 bytesscripts/common/sqlcipher_decrypt.pyruns · 3,537 bytesscripts/common/transcribe_db.pyruns · 5,811 bytesscripts/common/transcript_render.pyruns · 2,267 bytesscripts/common/verify_key.pyruns · 1,894 bytesscripts/common/voice_decode.pyruns · 704 bytesscripts/common/wal_snapshot.pyruns · 4,102 bytesscripts/legacy/extract_key.ps1runs · 1,488 bytesscripts/legacy/extract_key_frida.ps1runs · 792 bytesscripts/legacy/find_key.ps1runs · 7,561 bytesscripts/legacy/find_rawkey_follow.pyruns · 2,281 bytesscripts/legacy/find_rawkey_v2.pyruns · 2,598 bytesscripts/legacy/find_rawkey_via_salt.pyruns · 2,389 bytesscripts/legacy/frida_aob.pyruns · 1,340 bytesscripts/legacy/frida_attach_main.pyruns · 2,852 bytesscripts/legacy/frida_attach_race.pyruns · 2,104 bytesscripts/legacy/frida_brute_k1.pyruns · 2,547 bytesscripts/legacy/frida_brute_rpc.pyruns · 2,454 bytesscripts/legacy/frida_diag_read.pyruns · 1,950 bytesscripts/legacy/frida_disasm.pyruns · 1,364 bytesscripts/legacy/frida_entry_listen.pyruns · 1,349 bytesscripts/legacy/frida_entry_verify.pyruns · 2,274 bytesscripts/legacy/frida_entry_verify_race.pyruns · 2,779 bytesscripts/legacy/frida_enum_dll.pyruns · 1,159 bytesscripts/legacy/frida_enum_modules.pyruns · 1,364 bytesscripts/legacy/frida_find_sha512.pyruns · 1,308 bytesscripts/legacy/frida_find_via_kdfiter.pyruns · 1,615 bytesscripts/legacy/frida_follow_ptr.pyruns · 2,264 bytesscripts/legacy/frida_hook_alloc.pyruns · 2,332 bytesscripts/legacy/frida_hook_bcrypt.pyruns · 2,339 bytesscripts/legacy/frida_hook_entry_race.pyruns · 2,354 bytesscripts/legacy/frida_hook_pbkdf2.pyruns · 1,491 bytesscripts/legacy/frida_hook_sha512.pyruns · 2,155 bytesscripts/legacy/frida_hook_sha512_v2.pyruns · 1,557 bytesscripts/legacy/frida_hook_test.pyruns · 1,077 bytesscripts/legacy/frida_memwatch.pyruns · 2,434 bytesscripts/legacy/frida_memwatch_attach.pyruns · 1,683 bytesscripts/legacy/frida_probe.pyruns · 1,581 bytesscripts/legacy/frida_probe2.pyruns · 1,943 bytesscripts/legacy/frida_sha512_entry_schtask.pyruns · 2,288 bytesscripts/legacy/frida_sha512_race.pyruns · 2,366 bytesscripts/legacy/frida_spawn_antidbg.pyruns · 2,584 bytesscripts/legacy/frida_spawn_hook.pyruns · 1,827 bytesscripts/legacy/frida_xref.pyruns · 1,904 bytesscripts/legacy/hook_sqlite3_key_win.jsruns · 1,049 bytesscripts/legacy/transcribe.swiftruns · 2,021 bytesscripts/legacy/transcribe_voice.shruns · 10,000 bytesscripts/legacy/verify_keys.pyruns · 952 bytesscripts/macos/extract_key.shruns · 2,359 bytesscripts/macos/hook_pbkdf.jsruns · 3,119 bytesscripts/windows/decrypt_all.pyruns · 5,063 bytesscripts/windows/decrypt_read.pyruns · 1,707 bytesscripts/windows/extract_raw_key.pyruns · 10,206 bytesserver.pyruns · 2,606 bytessetup.ps1runs · 4,607 bytessetup.shruns · 5,105 bytestests/conftest.pyruns · 2,225 bytestests/js/windows_extractor_harness.cjsruns · 4,180 bytestests/test_app_messages.pyruns · 9,936 bytestests/test_chat_list_pages.pyruns · 1,731 bytestests/test_config.pyruns · 812 bytestests/test_consistency_checker.pyruns · 446 bytestests/test_contact_ambiguity.pyruns · 3,892 bytestests/test_crypto.pyruns · 1,083 bytestests/test_db_backend.pyruns · 4,191 bytestests/test_doctor.pyruns · 2,754 bytestests/test_export_safety.pyruns · 722 bytestests/test_media_collisions.pyruns · 1,866 bytestests/test_media_manifest.pyruns · 14,364 bytestests/test_original_attachment_directory.pyruns · 2,412 bytestests/test_query_shards.pyruns · 3,203 bytestests/test_query_windows.pyruns · 1,308 bytestests/test_search_completeness.pyruns · 2,913 bytestests/test_search_streaming.pyruns · 2,284 bytestests/test_sender_identity.pyruns · 3,757 bytestests/test_sqlcipher_errors.pyruns · 1,463 bytestests/test_state_migration.pyruns · 1,894 bytestests/test_system_messages.pyruns · 6,438 bytestests/test_text_preservation.pyruns · 458 bytestests/test_transcribe_backend.pyruns · 2,430 bytestests/test_wal_snapshot.pyruns · 7,346 bytestests/test_windows_data_root.pyruns · 1,854 bytestests/test_windows_extractor.pyruns · 12,380 bytestests/test_windows_page_authentication.pyruns · 3,213 bytes
Read excerpt
# WeChat local history
Operate only on local WeChat data the user is authorized to access. Keep keys, decrypted databases, voice caches, and exports local. Never print a raw key or include one in chat, logs, commands, or reports.
## Resolve the runtime
Use the directory containing this `SKILL.md` as `SKILL_DIR`; never assume a fixed installation path.
- macOS: prefer `$SKILL_DIR/.venv/bin/python`, otherwise `python3`.
- Windows: prefer `$SKILL_DIR\.venv\Scripts\python.exe`, otherwise `python`.
Before reading chat data, run the read-only diagnostic:
```bash