# Wechat Archive

> 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.

- Skill: `benzema216/wechat-archive` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add benzema216/wechat-archive`
- Raw SKILL.md: https://api.skillmd.com/api/skills/benzema216/wechat-archive/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: benzema216 (https://skillmd.com/u/benzema216)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/benzema216/wechat-archive

---


# 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](references/safety.md). Read [references/operations.md](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

1. Call `wechat_doctor` before the first sync or whenever the WeChat build, account, source path, signature, or key state may have changed.
2. 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`.
3. 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.
4. 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.
5. After a successful or no-change sync, call `wechat_verify` before reporting success.
6. 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.

