Turn Outlook .msg files into clean Markdown, HTML, text, JSON, EML, and PDF.
Project description
UnMsg
Turn Outlook
.msgfiles into clean Markdown, HTML, text, JSON, EML, and PDF — with attachments and inline images extracted alongside. Drag, drop, click Convert, done.
UnMsg is a small, friendly desktop app (and CLI) for getting your email out
of Outlook's .msg format and into formats you can actually read, search, and
keep. Everything happens on your machine — your messages never leave it, and
there is no telemetry of any kind.
Why
Every other option is a brittle script, a paid utility, a sketchy web converter
that wants your email, or one pip install away from being your problem. UnMsg
is the thing you can install in two minutes and use forever.
Status
v0.6.0 — the 1.0 polish step. The public Python API is now stable, the project has a documentation site, CI runs on Ubuntu/Windows/macOS, and the test suite covers ≥ 90% of the code. The Windows installer is still unsigned for one more release — SmartScreen will warn on first run; if you'd rather not click past that, the docs explain how to build the installer yourself. v1.0.0 ships when the installer is code‑signed.
Documentation
Full docs — getting started, CLI reference, desktop app guide, the privacy
statement, and the auto‑generated API reference — live at
dog-broad.github.io/unmsg (built
from docs/).
Planned features
- Drag-and-drop
.msgfiles and folders - Convert to Markdown, HTML, single-file HTML, plain text, JSON metadata, EML, and PDF/PDF-A
- Extract attachments and inline images, with
cid:references rewritten - Predictable, sortable output folders (
{date}_{subject}by default) - A scriptable CLI and a small Python API
- Deterministic output and per-batch manifests for archiving
- Fully offline. No accounts, no uploads, no analytics — ever.
License
MIT.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file unmsg-0.6.2.tar.gz.
File metadata
- Download URL: unmsg-0.6.2.tar.gz
- Upload date:
- Size: 104.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99c1e2a343526524f0174b7dfe3fb094da5daedc51d7538d03a0e294166a58aa
|
|
| MD5 |
6f5002643aa7c7b8c3e1f03539855282
|
|
| BLAKE2b-256 |
e59d646ce36c9fd8a38553cfad943b6a25d15cb476048cf914ccccaacf40b018
|
Provenance
The following attestation bundles were made for unmsg-0.6.2.tar.gz:
Publisher:
release.yml on dog-broad/unmsg
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
unmsg-0.6.2.tar.gz -
Subject digest:
99c1e2a343526524f0174b7dfe3fb094da5daedc51d7538d03a0e294166a58aa - Sigstore transparency entry: 1678611708
- Sigstore integration time:
-
Permalink:
dog-broad/unmsg@4af14447494b81af78c17278692037b78da8b9b5 -
Branch / Tag:
refs/tags/v0.6.2 - Owner: https://github.com/dog-broad
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4af14447494b81af78c17278692037b78da8b9b5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file unmsg-0.6.2-py3-none-any.whl.
File metadata
- Download URL: unmsg-0.6.2-py3-none-any.whl
- Upload date:
- Size: 87.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f790a42059d5c347285cbdf9e1a30e010a4ebc5badae11f3743c79e3868725ed
|
|
| MD5 |
009fa16f84a0866eeee5c65704db8583
|
|
| BLAKE2b-256 |
fb9b14e493a0a5b1b0b6aff61eb11bb9e07c8024834cd4c8fa43d5d3e9fc99f9
|
Provenance
The following attestation bundles were made for unmsg-0.6.2-py3-none-any.whl:
Publisher:
release.yml on dog-broad/unmsg
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
unmsg-0.6.2-py3-none-any.whl -
Subject digest:
f790a42059d5c347285cbdf9e1a30e010a4ebc5badae11f3743c79e3868725ed - Sigstore transparency entry: 1678612049
- Sigstore integration time:
-
Permalink:
dog-broad/unmsg@4af14447494b81af78c17278692037b78da8b9b5 -
Branch / Tag:
refs/tags/v0.6.2 - Owner: https://github.com/dog-broad
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@4af14447494b81af78c17278692037b78da8b9b5 -
Trigger Event:
push
-
Statement type: