Mpvault archive
Local-first WeChat public-account and Weibo archiver for verified Markdown/JSONL knowledge bases and AI agents.
npx -y skills add GongziTANG/persona-vault --skill mpvault-archiveAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 18 days oldThe repository was created 18 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Turn all accessible historical articles from a WeChat public account into a resumable, locally imaged, searchable, verified Markdown knowledge vault. Use when Codex is asked to 导出公众号、抓取微信公众号历史文章、把公众号转成 Markdown、建立公众号知识库、搜索已归档文章、续传公众号下载、核验公众号归档完整性, or operate MPVault with a target original ID such as gh_xxx.
SKILL.md
4.2 KB, as published. Nobody here has run it
Build an MPVault Knowledge Vault
Create a local archive with explicit evidence for exported, deleted, unavailable, and failed records. Treat manifest.json and verification.json as completion evidence; never infer success merely from a command exiting.
Preflight
- Obtain the target original ID (
gh_...), optional display name, and output directory from the request or existing context. - Resolve MPVault from an installed
mpvaultcommand,MPVAULT_ROOT, or a local checkout whosepackage.jsonname ismpvault. If none exists, ask the user to install or provide the official MPVault checkout; never guess a repository or machine-specific path. - Confirm Node.js 22 or newer with
node --version. When using a checkout, runnpm installin its repository root. - Use the installed
mpvaultcommand, or run everynpm exec mpvaultcommand with the resolved checkout as working directory. Do not require global npm installation or sudo. - Keep
.wechat-session/, exports, QR codes, cookies, tokens, account identifiers, article content, and absolute local paths out of GitHub issues, commits, and external messages.
Authenticate
Run:
npm exec mpvault -- login
Keep the process active while it polls. When it prints QR_READY <absolute-path>, show that local image to the user in commentary and ask them to scan it. Tell them to select a public account or service account, not a mini program. Wait for LOGIN_OK.
Reuse a valid local session. If it expires, run login again without deleting the export directory.
Lock the target and export
Run:
npm exec mpvault -- export \
--account gh_xxx \
--name "公众号名" \
--output "/absolute/output/path"
Require the original ID to match exactly. Use the display name only to assist search. Keep the default 5-second list delay unless the user requests otherwise. On interruption or 200013 rate limiting, wait and rerun the identical command so the checkpoint resumes.
Verify independently
Always run after export:
npm exec mpvault -- verify --output "/absolute/output/path"
Require all of the following before reporting completion:
listCompletedis true.failedandpendingcounts are zero.missingFiles,emptyFiles,emptyBodyFiles, andmissingImagesare empty.imageFailuresis zero.okis true.
Treat deleted and explicitly unavailable WeChat records as valid terminal states. Report their counts separately; do not describe them as exported articles.
Search the vault
When the user asks to find archived content, run:
npm exec mpvault -- search \
--output "/absolute/output/path" \
--query "关键词一 关键词二" \
--limit 20
Use --json for downstream automation. Explain that multiple terms use AND matching and title matches rank higher.
Report safely
Report the requested operational result in the conversation, but never publish account identifiers, article content, export counts tied to a private target, credentials, or local absolute paths to a public repository. For a private user report, include list/exported/deleted/unavailable/failed counts, image reference count, verification result, output path, and date range when available.
Decide on OCR
Keep OCR off unless requested. Recommend selective auto OCR for image-share or image-dominant articles, not promotional posters, QR codes, and decorative images. Preserve OCR as derived data and never let OCR failure invalidate the source archive. Read docs/OCR-STRATEGY.md before implementing it.
Recover from edge cases
Read references/recovery.md when target matching, pagination, special messages, empty Markdown, rate limiting, or verification fails. Preserve checkpoints and unknown failures; do not relabel parser failures as unavailable content.