DuckyTools
Home AI & Writing Chat Transcript Formatter

Chat Transcript Formatter AI & Writing

Turn a copied chat conversation into clean markdown, JSON messages, or a plain transcript.

Chat Transcript Formatter is a free online tool that turn a copied chat conversation into clean markdown, JSON messages, or a plain transcript. It produces markdown, JSON messages array, Plain transcript, YAML.. It runs entirely in your web browser using plain JavaScript, so files are processed on your own device and never uploaded to a server. There is no sign-up, no file size limit imposed by the site, no watermark and no paid tier.

Price
Free — no account, no quota, no watermark
Category
AI & Writing
Where it runs
In your browser, on your device
Files uploaded
None
Output
Markdown, JSON messages array, Plain transcript, YAML
Technology
plain JavaScript
Settings
3
Works offline
Yes, after the first visit

About Chat Transcript Formatter

Copying a conversation out of a chat interface gives you an undifferentiated wall of text with the speaker labels inline. This splits it back into turns and re-emits it as markdown for a document, as a `messages` array ready for an API call, or as a plain transcript. Multi-line answers stay attached to the turn they belong to, which is where naive line-splitting falls over.

How to use it

  1. Paste the text you want to run through chat transcript formatter.
  2. Set output as, speaker labels, comma separated and strip markdown from message bodies.

The 3 settings

SettingWhat it doesDefault
Output asChoose from 4: Markdown, JSON messages array, Plain transcript, YAML.Markdown
Speaker labels, comma separatedFree text.User, Assistant, System, Human, AI, Me, You, ChatGPT, Claude
Strip markdown from message bodiesOn or off. Off by default.Off

Under the hood

Runs onplain JavaScript — runs the whole thing
ProducesMarkdown, JSON messages array, Plain transcript, YAML
ControlsOutput as, Speaker labels, comma separated, Strip markdown from message bodies

Questions

What speaker labels does it recognize?

User, Assistant, System, Human, AI, Me, You and the common product names, all editable. A label is only treated as one when it starts a line and is followed by a colon, dash or em dash — so the word "user" inside a sentence is left alone.

Why does the JSON output use different role names?

Because the APIs expect `system`, `user` and `assistant`. Whatever label your transcript used is mapped onto those three, so the output can be sent as-is.

Can I use this to replay a conversation?

The JSON is the right shape for a messages array, yes. Do check it before sending — a transcript copied from a web interface can contain rendered artifacts and truncated code blocks that were never in the original.