Download for Windows

Open an RSMF file in your browser

Last updated 11 September 2026

You have a file ending in .rsmf. Windows does not know what it is, your mail program thinks it is a message with an attachment that will not open, and the person who sent it assumed you had somewhere to load it. RSMF is the Relativity Short Message Format: the container eDiscovery platforms use to take in text messages as records, each with its sender, its time and its attachments, rather than as a PDF somebody has to read. Outside one of those platforms, nothing opens it.

Inside, it is simpler than it looks. An .rsmf is an ordinary mail message whose last part is a ZIP archive called rsmf.zip, and that archive holds one file called rsmf_manifest.json, with every message in it, plus the attachments the messages refer to. The viewer below takes it apart and shows the conversation. So can you, by hand, and that comes first.

Looking inside it by hand

The archive is base64 text between the line Content-Transfer-Encoding: base64 and the closing boundary line. On Windows, in PowerShell, in the folder that holds the file:

$text  = Get-Content .\conversation.rsmf -Raw
$start = $text.IndexOf("base64") + 6
$end   = $text.LastIndexOf("--RSMFEML--")
[IO.File]::WriteAllBytes("$PWD\rsmf.zip", [Convert]::FromBase64String($text.Substring($start, $end - $start)))
Expand-Archive .\rsmf.zip -DestinationPath .\rsmf

On a Mac, in Terminal:

awk '/Content-Transfer-Encoding: base64/{f=1;next} /^--RSMFEML--/{f=0} f' conversation.rsmf | tr -d '\r' | base64 -d > rsmf.zip
unzip rsmf.zip -d rsmf

RSMFEML is the boundary name Relativity's own generator and ChatExport both use; a file from another tool names its boundary in the Content-Type header near the top, and the same commands work with that name in place of it. What comes out is a folder with rsmf_manifest.json, which any text editor opens, and the attachments under the names the manifest gives them. That is the whole file. Nothing in it is encrypted or hidden, and nothing above needs software you do not already have.

Open it here

Your browser can do the same unpacking. Drop the file below: it is read and taken apart by the browser on your own computer, and it is not sent anywhere. A bare rsmf.zip works too, if somebody has already extracted one.

What the report says, and what it does not

Above the conversation the viewer prints what the file says about itself: the generator and version named in its headers, how many events the manifest holds and whether the header agrees, and the places where the manifest and the archive disagree with each other. Each line is a fact you could check by hand with the commands above:

  • Attachments named but absent. The manifest lists a file the archive does not contain. The message shows, its photo does not, and an import will notice the same thing.
  • Participants that are not declared. A message, an edit or a reaction names a participant id the manifest never introduces, so there is no name to put on it.
  • Timestamps that do not read as dates. The format asks for ISO 8601. Anything else is shown as written, at the end of the thread, rather than guessed at.
  • More than 10,000 events. Not a fault. Relativity recommends splitting a longer conversation across files, and a reader about to import one will want to know.

That is the whole of it. This page does not run Relativity's own checking tool, and it cannot tell you whether Relativity, Reveal or any other platform will accept the file. It reads the file as written and reports what is in it. When every line comes back clean, that means the file is consistent with itself, which is worth knowing and is all it means.

It also says nothing about who wrote the messages. A file that opens perfectly, with every attachment in place, is a well-formed file. Whether the conversation in it happened is a different question, and it is not one a viewer can answer.

The file's fingerprint

The viewer also prints the SHA-256 of the file you dropped, the same 64-character value certutil or shasum would give. If the file came with a checksum, in a .sha256 file beside it or in the message that carried it, compare the two. A match means the file has not changed by a byte since that checksum was recorded; a difference anywhere means it is not the same file. What a match proves, and what it does not, is set out on the checksum page, which is written for exactly that situation.

A file to try

Download a sample .rsmf and drop it above. It is the same invented conversation as the other sample exports on this site, a separated parent collecting what was said about money and weekends; every name, number and message in it is fictional. Things to look for: a message that was edited, with its earlier wording under the bubble; a message that was deleted and is still in the record; three photos, shown in place; and a report with nothing in it.

What this page does not read

  • zip64 archives, the extension for archives past 4 GB or 65,535 files. The page says so rather than misreading them; the commands above extract them without trouble.
  • Compression other than stored or deflate. Both RSMF generators we have seen use one of the two. An entry in another method is named in the report and left closed.
  • Older browsers. Inflating a compressed archive uses a browser feature that arrived in Chrome 103, Firefox 113 and Safari 16.4. On anything older the drop field stays hidden and this page is the by-hand instructions, which is what it is first anyway.
  • Very large files. The whole file is held in the browser's memory while it is open. A few hundred megabytes is fine on an ordinary laptop; past that, use the commands.

Where these files come from

Any platform that exports short messages for review can write RSMF, and so can ChatExport, on a Windows PC, from an iPhone backup: it is one of the five formats the program writes, alongside the PDF most people file, and it is in the ordinary licence rather than a business tier. The pricing page says what that licence covers.

Still unsure

Write to support@getchatexport.com with what the report says. A file that will not open is usually something dull, a copy that did not finish or a mail system that rewrapped an attachment, and it is worth knowing which before anyone argues about it.