WeChat Archive for DeepSeek Hanress
Englisch | 简体中文
Ein lokal-first, fail-closed WeChat-Archiv-Plugin für macOS. Es verbindet vier begrenzte Operationen mit DeepSeek Harness – Diagnose, Statusprüfung, Synchronisierung und Verifizierung – und enthält eine Agent Skill sowie einen optionalen macOS LaunchAgent für unbeaufsichtigte Läufe.
Version 0.1.0 kann jede Msg_*-Tabelle in jedem gefundenen message_N.db-Shard aus einem ruhenden, checkpointierten Mac-WeChat-Datenbank-Snapshot scannen. Es speichert wiederspielbare, verifizierbare JSONL-Deltas und bewahrt lokal verfügbare Bildcontainer, MP4-Dateien und Voice-BLOBs als private, inhaltsadressierte Objekte.
Release-Status: Die Implementierung und die synthetischen Sicherheitstests sind abgeschlossen, aber eine echte Chat-Synchronisierung wurde während der Erstellung dieses Releases nicht ausgeführt (
NOT_RUN). Die Synchronisierung bleibt standardmäßig deaktiviert, und es wird kein LaunchAgent automatisch installiert.
Mac WeChat source
|
v
deterministic Python core ----> private state + JSONL deltas + media objects
| |
+---- stdio MCP ---- DeepSeek Harness +---- replay/hash verification
|
+---- one-shot scheduler ---- optional macOS LaunchAgentWas es bietet
Surface | Operation | Schreibt Archivdaten? |
MCP |
| Nein – prüft die App, Quelle, WAL, Geheimnis und Berechtigungen |
MCP |
| Nein – meldet begrenzte operative Metadaten |
MCP |
| Ja – erfordert sowohl Server-Opt-in als auch |
MCP |
| Nein – spielt den Nachrichtenverlauf erneut ab und verifiziert Hashes und Abdeckung |
Agent Skill |
| Fürt das Modell durch den erforderlichen Sicherheits-Workflow |
Scheduler |
| Nur nachdem ein Mensch den LaunchAgent installiert hat |
MCP-Ergebnisse offenbaren Status, Zählwerte, Abdeckung und Integritätsinformationen. Sie offenbaren keine Kontaktnamen, Kontokennungen, Nachrichteninhalte, Geheimnisse oder privaten Datenbankpfade.
Related MCP server: WeChat MCP Server
Integritäts- und Datenschutzgrenzen
Tool-Argumente können kein Konto, keinen Dateisystempfad, keine SQL-Anweisung, keine ausführbare Datei und kein Geheimnis auswählen.
Das Plugin erfasst niemals einen Schlüssel, hängt LLDB nicht an, signiert WeChat nicht neu, ersetzt WeChat nicht, beendet die App nicht und ignoriert keine WAL.
Die Synchronisierung schlägt fehl, ohne einen neuen Snapshot zu veröffentlichen, wenn WeChat läuft, eine WAL transaktionale Frames enthält oder einen fehlerhaften kurzen Header aufweist, die App die festgepinnte offizielle Signatur nicht besitzt, das Geheimnis ungültig ist oder sich die Quelle während der Erfassung ändert.
Jede verschlüsselte Datenbank wird unabhängig schlüsselabgeleitet und HMAC-verifiziert. Entschlüsselte Staging-Dateien sind privat, werden mit SQLite
quick_checkgeprüft und nach dem Lauf entfernt.Unveränderliche JSONL-Deltas werden vor dem Commit ihrer Indextransaktion per fsync gesichert. Die Verifizierung spielt die vollständige Historie erneut ab und hasht jedes registrierte Medienobjekt, einschließlich historischer Objekte.
Geheimnisse gehören in die macOS-Keychain. Sie gehören niemals in Tool-Parameter, Befehlargumente, Umgebungsvariablen, Logs, in Git eingecheckte Konfiguration oder Release-Dateien.
Was SOURCE_FAITHFUL_V1 bedeutet
Bilder behalten immer ihre rohen .dat-Byes. Eine dekodierte Bildvariante wird nur geschrieben, wenn eine starke Datei-signatur oder eine eindeutige Ein-Byte-XOR-Transformation sie validiert. Vidoes müssen eine MP4-fty-ignatur tragen. Sprach-BLOBs werden erhalten, ohne Transkriptions- oder Wiedergabekompatibilität zu beanspruchen.
Emoji-Extraktion, allgemeine Anhänge, nicht auf diesen Mac heruntergeladene Medien und einige private Container bleiben ungelöst. Folglich ist das öffentliche Ergebnis bewusst media_complete=false. SOURCE_FAITHFUL_V1 bedeutet, dass lokal verfügbare Quellbyes erhalten und verifiziert wurden; es bedeutet nicht einen vollständig dekodierten oder abspielbaren multimodalen Export.
Ebenso kann „vollständig“ nur einen einzigen verifizierten, ruhenden Mac-Datenbank-Snapshot beschreiben. Es umfasst niemals gelöschte Verläufe, Nur-Cloud- oder Nur-Telefon-Verläufe oder Inhalte, die WeChat nie lokal gespeichert hat.
Anforderungen
macOS
Python 3.10 oder neuer
Node.js 24 oder neuer
pnpm 11
uvlibzstdzum Dekodieren zstd-komprimierter Nachrichten-Payloads; ohne dieses bleiben die ursprünglichen komprimierten Byes als base64 erhaltenEine offizielle WeChat-Instalation und Zugriff auf Ihre eigenen lokalen Kontodaten
Verwenden Sie dieses Projakt nur mit Daten, zu deren Archivirung Sie berechtigt sind. Ein Chat-Archiv enthält private Informationsen anderer Personen, selbst wenn es zu Ihrem eigenen Konto gehört; halten Sie das Archiv lokal, zugriffskontrolliert und außerhalb von Git.
Installieren Sie den Kern und den MCP-Server
Von einer ausgecheckten Kopie dieses Reositorys:
cd /path/to/wechat-archive
PROJECT_DIR="$(pwd -P)"
CONFIG_PATH="${HOME}/Library/Application Support/WeChatArchive/config.json"
uv venv
uv pip install -e '.[test]'
pnpm --dir mcp-server install --frozen-lockfile
mkdir -p "$(dirname "$CONFIG_PATH")"
chmod 700 "$(dirname "$CONFIG_PATH")"
cp config.example.json "$CONFIG_PATH"
chmod 600 "$CONFIG_PATH"Bearbeiten Sie die private Konfiguration mithilfe von config.example.json als Schema. Sowohl source.root als auch archive.root müssen absolute, kanonische, getrennte Pfade sein. Das Archiv-Wurzelverzeichnis darf nicht innerhalb des Quellbaums liegen. Die Produktionskonfiguration sollte den Keychain-Anbieter verwenden. Der file-Anbieter existiert nur für die Migration von einer bestehenden, benutzereigenen reglären Datei mit Modus 0600; Symlinks werden abgelehnt.
Schlüsselbeschaffung und Anwendungsreparatur liegen bewusst außerhalb dieses Plugins. Folgen Sie der überwachten Grence in docs/BOOTSTRAP.md, anstatt einen Schlüssel in die Shell-Historie zu legen oder einen Agenten zu bitten, WeChat zu modifizieren.
Führen Sie zuerst den schreibgeschützten Preflight aus:
.venv/bin/wechat-archive --config "$CONFIG_PATH" doctorDer Befehl schreibt genau ein wechat-archive.command/v1-JSON-Objekt nach stdout. Nur READY erlaubt eine separat bestätigte Synchronisierung. Siehe Architektur und Integrität für das Zustandsmodell.
Installieren Sie in DeepSeek Harness
Der Installer ist ein Probelauf (Dry-run), sofern nicht --install angegeben ist:
python3 scripts/install_dsh.py
python3 scripts/install_dsh.py --installEr verwaltet nur einen markierten Block im Harness-Profil und einen ~/.dsh/skills/wechat-archve-ymlink zu diesem Checkout. Er verändert weder den DeePSeek-Harness-Quellcheckout noch überschreibt er eine nicht zusammenhängende Skill. Vor einer Live-Profilbearbeitung erstellt er ein Backup mit Modus 0600.
Harness stellt diese Namen bereit:
mcp__wechat__wechat_doctormcp__wechat__wechat_statusmcp__wechat__wechat_syncmcp__wechat__wechat_veriy
Das gebündelte sichere Overlay setzt WECHAT_ARCHIVE_ALLOW_SYNC=0. Die Instalation aktiviert daher schreibgeschützte Diagnose und Statusprüfung, nicht die Synchronisierung. Nachdem alle Echtmaschinen-Prüfungen bestanden sind, muss eine Bedienperson das Server-Opt-in explizit auf 1 setzen, den MCP-Prozess neu starten und wechat_sync weiterhin mit confirm=true aufrufen.
Auch die Entfernung ist standardmäßig ein Probelauf (Dry-run):
python3 scripts/uninstall_dsh.py
python3 scripts/uninstall_dsh.py --uninstallOptionale periodische Synchronisierung
Geplante Erfassung ruft den deterministischen Kern direkt auf; sie verlässt sich nicht auf einen Browser-Tab, ein Sprachmodell oder eine laufende Harness-Konversation. Die folgenden Befehlle rendern und prüfen nur einen täglichen 03:15- LaunchAgent. Sie installieren ihn nicht:
REVIEW_DIR="${TMPDIR:-/tmp}/wechat-archive-review"
REVIEW_PLIST="${REVIEW_DIR}/local.wechat-archive.sync.plist"
mkdir -p "$REVIEW_DIR"
python3 scripts/render_launchagent.py \
--project-root "$PROJECT_DIR" \
--python "$PROJECT_DIR/.venv/bin/python" \
--config "$CONFIG_PATH" \
--hour 3 --minute 15 \
--sync-timeout-seconds 1800 \
--verify-timeout-seconds 7200 \
--output "$REVIEW_PLIST"
plutil -lint "$REVIEW_PLIST"
python3 scripts/install_launchagent.py --plist "$REVIEW_PLIST"Der letzte Befehl ist weiterhin ein Probelauf (Dry-run). Nur die folgende explizite Aktion installiert und bootstrapt den Auftrag:
python3 scripts/install_launchagent.py --plist "$REVIEW_PLIST" --installInstallieren Sie ihn erst, wenn doctor READY meldet und eine manuell bestätigte sync mit anschließender verify erfolgreich ist. Jeder geplante Lauf fürt zuerst die Synchronisierung und danach die vollständige Verifizierung durch. Wenn WeChat aktiv ist oder eine WAL nicht leer ist, beendet sich der Lauf sicher und kann zum nächsten geplanten Zeitpunkt erneut versucht werden.
Synchronisierung und vollständige Verifizierung haben getrennte begrenzte Timeouts: standardmäßig 30 Minuten bzw. zwei Stunden, konfigurierbar bis zu acht Stunden. Die vollständige Verifizierung liest alle historischen Medienobjekte; wählen Sie ihr Timeout also anhand der Archivgröße.
Verifizierung und Release-Prüfungen
Alle Reository-Tests verwenden synthetische Fixtures. Verwenden Sie keine echten Chatdaten als Ersatz.
.venv/bin/python -m pytest -q
pnpm --dir mcp-server test
python3 scripts/check_manifest.py --scan-content
python3 scripts/build_release.py \
--output "${TMPDIR:-/tmp}/wechat-archive-0.1.0.tar.gz"Eine erfolgreiche Prozessbeendigung ist kein ausreichender Nachweis für ein echtes Archiv. Die Akzeptanzbedingung ist SYNCED oder NO_CHANGE, unmittelbar gefolgt von VERIFIED, mit der erwarteten Quellabdeckung. Siehe die vollständigen Akzeptanzprüfungen.
Lizenz und Arbeiten Dritter
Projektcode wird unter der MIT-Lizenz veröffenlicht. Auditierte oder referenzierte Upstream-Projekte und ihre Lizenzen sind in THIRD_PARTY_NOTICES.md aufgelistet. Echte Chats, Datenbanken, Schlüssel, Medien, Logs, lokale Konfiguration und historische Übergabearchive sind niemals Teil des Re leases.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides read-only access to local Beeper message history on macOS, enabling users to search conversations, read messages, and list recent chats through natural language queries. Supports both SQLite and IndexedDB storage formats with privacy-focused local-only operation.1
- AlicenseAqualityFmaintenanceEnables Claude Code to read encrypted WeChat chat history from local database, search messages, view sessions and contacts.418Do What The F*ck You Want To Public
- AlicenseNot gradedqualityCmaintenanceEnables Claude to access and search local messages and contacts across multiple platforms (iMessage, Discord, Gmail, Slack) via a local-first datastore, ensuring data never leaves the Mac.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to read, search, and send iMessages, manage contacts, and access attachments on macOS.16MIT
Related MCP Connectors
Let ChatGPT, Claude & Cursor use your Mac: email, calendar, iMessage, Teams, files. Local, free.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Permission boundary receipts for ChatGPT agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/BENZEMA216/wechat-archive-harness'
If you have feedback or need assistance with the MCP directory API, please join our Discord server