| name | wechat-archive |
| description | Safely diagnose, synchronize, verify, and report a local macOS WeChat archive through the wechat MCP tools. Use when the user asks to archive, export, refresh, verify, or periodically synchronize their own WeChat history, including local text, image, voice, and video coverage. |
WeChat Archive
Use this Skill only for the user's own Mac, WeChat account, and local archive. The archive may contain other people's private data. Keep acquisition local and report structure, counts, coverage, hashes, and status by default rather than chat samples.
Before the first operation in a task, read references/safety.md. Read references/operations.md before a sync, verification, or scheduler-related request.
Tool surface
DeepSeek Harness exposes the server tools with the mcp__wechat__ namespace:
mcp__wechat__wechat_doctor: read-only environment and safety diagnosis.
mcp__wechat__wechat_status: read-only last-run and archive summary.
mcp__wechat__wechat_sync: deterministic local synchronization. This is the only archive-writing tool.
mcp__wechat__wechat_verify: read-only integrity and coverage verification.
If the host presents the raw MCP names instead, use wechat_doctor, wechat_status, wechat_sync, and wechat_verify with the same rules.
Required workflow
- Call
wechat_doctor before the first sync or whenever the WeChat build, account, source path, signature, or key state may have changed.
- Treat these states as stop conditions:
WECHAT_SIGNATURE_UNSAFE, WECHAT_RUNNING, WAL_PRESENT, SECRET_UNAVAILABLE, SOURCE_CHANGED_DURING_DECRYPT, SOURCE_CHANGED_DURING_SYNC, PROCESS_CHECK_FAILED, PERMISSION_DENIED, and LOCKED.
- Never work around a stop condition by killing WeChat, re-signing the app, ignoring WAL, changing permissions, guessing an account, or reading a secret. Explain the required human action.
- Call
wechat_sync only after the user explicitly asks to create or refresh the local archive. Pass its explicit confirmation field. Do not infer consent from an analysis or status request.
- After a successful or no-change sync, call
wechat_verify before reporting success.
- Report the exact run status, source scope, counts, coverage equation, unresolved media categories, archive alias, and verification result. Report archived media object/byte counts only when
media_binary_verified=true. Do not report a message sample unless the user separately asks for content analysis.
Product boundary
SOURCE_FAITHFUL_V1 preserves locally available raw image containers, validated image variants, MP4 files, and raw voice blobs as content-addressed objects. It does not promise that every object is playable or decoded. Never call the result complete multimodal while media_complete=false.
"Complete" can only concern one verified, checkpointed Mac database snapshot. It never means cloud history, deleted history, phone-only history, or media that WeChat has never downloaded locally.
The model-facing tools never capture a passphrase, attach LLDB, alter app signing, restore the official app, close WeChat, or accept arbitrary filesystem paths or SQL. Those actions remain outside the Plugin and require an explicit, supervised bootstrap procedure.
Periodic operation is a deterministic LaunchAgent invoking core sync followed by core verify. It is not a conversational reminder and does not depend on a live Harness session. A scheduled run safely skips when the source is not quiescent and records the stable reason for the next operator review.