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: iMessage RAG MCP
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 deployed
Maintenance
Related MCP Connectors
Mac & Windows: let ChatGPT, Claude & Cursor use your email, calendar, iMessage, Teams, files.
Work on your own computers from Claude or ChatGPT: run commands, edit and search files.
- DNS-DATA RemoteDeprecatedcom.dns-data
Connect AI assistants to authorized Windows and macOS devices for files, commands, and management.
Mail, Calendar, Messages, Notes, Contacts, Slack on your Mac for AI. Remote needs Pro or free trial.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables AI clients to read and search macOS Messages history through a read-only MCP interface.-
- FlicenseNot gradedqualityBmaintenanceEnables AI assistants to search and retrieve from your local macOS iMessage history using hybrid retrieval with context expansion, all processed locally without sending data off-device.-
- AlicenseAqualityBmaintenanceEnables AI agents on macOS to securely read and search the local Messages database, catch up on missed messages via a persistent inbox, and send texts or files to allowlisted chats, with optional voice note transcription and text-to-speech.1026 npmMIT
- AlicenseAqualityCmaintenanceEnables an agent to read the user's local Messages.app database on macOS, listing chats and threads and searching iMessage/SMS history entirely on localhost, with optional AppleScript sending gated behind an explicit flag. Access is read-only and scoped-shut by default, and replies can be optionally sent when send mode is enabled.4MIT