Skip to main content
Glama

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 LaunchAgent

Was es bietet

Surface

Operation

Schreibt Archivdaten?

MCP

wechat_doctor

Nein – prüft die App, Quelle, WAL, Geheimnis und Berechtigungen

MCP

wechat_status

Nein – meldet begrenzte operative Metadaten

MCP

wechat_sync

Ja – erfordert sowohl Server-Opt-in als auch confirm=true

MCP

wechat_veriy

Nein – spielt den Nachrichtenverlauf erneut ab und verifiziert Hashes und Abdeckung

Agent Skill

wechat-archve

Fürt das Modell durch den erforderlichen Sicherheits-Workflow

Scheduler

sync gefolgt von verify

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_check geprü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

  • uv

  • libzstd zum Dekodieren zstd-komprimierter Nachrichten-Payloads; ohne dieses bleiben die ursprünglichen komprimierten Byes als base64 erhalten

  • Eine 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" doctor

Der 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 --install

Er 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_doctor

  • mcp__wechat__wechat_status

  • mcp__wechat__wechat_sync

  • mcp__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 --uninstall

Optionale 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" --install

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

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides 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
  • A
    license
    A
    quality
    F
    maintenance
    Enables Claude Code to read encrypted WeChat chat history from local database, search messages, view sessions and contacts.
    4
    18
    Do What The F*ck You Want To Public
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables 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
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to read, search, and send iMessages, manage contacts, and access attachments on macOS.
    16
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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