Skip to content

Latest commit

History

237 Commits

Folders and files

NameName
Last commit message
Last commit date

License: MPL-2.0

Universal Chat Extractor

OpenSSF Best Practices

Jonathan D.A. Jewell <jonathan@hyperpolymath.org> :toc: auto :toclevels: 3 :icons: font :source-highlighter: rouge :experimental:

Extract, parse, and export chat histories from multiple messaging platforms into unified formats.

Project Status

Important

Repository project specification - implementation pending.

This repository contains infrastructure and planning materials. Core application code will be uploaded shortly.

What Exists Now

ComponentStatus

Multi-forge mirroring

Configured for GitHub, GitLab, Codeberg, Bitbucket

CI/CD infrastructure

Security-hardened with SSH host key verification, SHA-pinned actions

Language policy

ReScript + Deno + Rust stack defined

Licensing

MPL-2.0

Vision

Universal Chat Extractor provides a unified tool for extracting chat data from various messaging platforms, normalizing it into a common schema, and exporting to multiple formats - all while respecting user privacy through local-only processing.

Target Platforms

  • WhatsApp (.txt export)

  • Telegram (JSON export)

  • Discord (JSON export)

  • Signal (backup format)

  • iMessage (SQLite database)

  • Facebook Messenger (JSON export)

  • Slack (JSON export)

Export Formats

  • JSON (structured)

  • CSV (tabular)

  • HTML (viewable)

  • Markdown

  • PDF

Technology Stack

LayerTechnology

Primary application code

ReScript (compiles to JS)

Runtime

Deno (not Node/npm/Bun)

Performance-critical components

Rust / WASM

Package management

Guix (primary), Nix (fallback), Deno imports

Quick Start

Note

Implementation pending. This section will be updated when core functionality is available.

Architecture

The system follows a plugin-based parser architecture:

┌─────────────────────────────────────────────────────────┐
│ CLI Interface │
├─────────────────────────────────────────────────────────┤
│ Parser Registry │
├──────────┬──────────┬──────────┬──────────┬────────────┤
│ WhatsApp │ Telegram │ Discord │ Signal │ ... │
│ Parser │ Parser │ Parser │ Parser │ │
├──────────┴──────────┴──────────┴──────────┴────────────┤
│ Unified Message Schema │
├─────────────────────────────────────────────────────────┤
│ Export Engine │
├──────────┬──────────┬──────────┬──────────┬────────────┤
│ JSON │ CSV │ HTML │ Markdown │ PDF │
└──────────┴──────────┴──────────┴──────────┴────────────┘

Privacy & Security

  • Local-only processing - no cloud uploads, no telemetry

  • Secure memory handling - sensitive data cleared after use

  • PII detection - optional anonymization mode

  • Encrypted exports - password-protected output files

  • No MD5/SHA1 - SHA256+ for all cryptographic operations

Repository Mirrors

This project is mirrored across multiple forges:

License

This project is licensed under the Mozilla Public License, v. 2.0. See the LICENSE file for details.

SPDX-License-Identifier: CC-BY-SA-4.0

Roadmap

See ROADMAP.adoc for detailed development phases and milestones.

Contributing

Contributions welcome. Please ensure:

  • Code follows the language policy (no TypeScript, no Node.js, no Go)

  • All commits include SPDX license headers

  • Dependencies are SHA-pinned

Architecture

See TOPOLOGY.md for a visual architecture map and completion dashboard.

About

Universal chat extraction tool

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages